1258 lines
62 KiB
Plaintext
1258 lines
62 KiB
Plaintext
.Start.of.DemoNews.123..............................................Size:63,577
|
||
|
||
______/\___________________________ __ ________________ ___ /\_______
|
||
\____ \ ________ _ _ ______ \ / \| \ ________ | \/ ______/
|
||
/ | \ :) \ \_/ \ | \ / \ \ _) \ | \______ \
|
||
/ | \ \ | \ | \ / \ \ /~\ \ / \
|
||
\_____ /_______/___| /________/ \____\_____/_______/_________/________/
|
||
\_____/ |____/
|
||
|
||
| Subscribers : 2304
|
||
DemoNews #123 - 15 May 1996 | Last Issue : 2208
|
||
| Change : +96
|
||
DemoNews is a newsletter for the demo scene. | Archive Size : 2377M
|
||
It is produced by Hornet at ftp.cdrom.com. | Last Issue : 2645M
|
||
Our demo archive is located under /pub/demos. | Remaining : 611M
|
||
|
|
||
==[Contents]===================================================================
|
||
|
||
Calendar
|
||
Downloads
|
||
Uploads
|
||
Articles
|
||
Introduction................................Snowman
|
||
Announcing NAID 1996........................Struk
|
||
A Graphician's Tip Book - Part 1............Shaithis
|
||
Intro to 3D Graphics - Volume 05............Kiwidog
|
||
NAID: As if You Were Here...................White Noise
|
||
Imphobia 12 Voting..........................Darkness
|
||
FunktrackerGOLD for Linux...................Jason Nunn
|
||
Subscribing
|
||
Closing
|
||
|
||
|
||
==[Calendar]===================================================================
|
||
|
||
Date Event Location Concact Points (email has an '@')
|
||
--------- ---------------- --------- ----------------------------------------
|
||
31 May 96 Naid Canada naid@autoroute.net
|
||
www.autoroute.net/~naid
|
||
naid.conceptech.qc.ca
|
||
02 Jun 96 The Scene Singapore ckiang@singnet.com.sg
|
||
www.singnet.com.sg/~ckiang/tsc96.html
|
||
07 Jun 96 Abduction Finland maurala@cc.hut.fi
|
||
www.hut.fi/~maurala/abduction.html
|
||
19 Jul 96 Flag Hungary tomcat2@ursus.bke.hu
|
||
28 Jul 96 Summer Encounter Denmark rvc@vision.auc.dk
|
||
www.vision.auc.dk/diffusion/SE96
|
||
04 Aug 96 Summit Israel high.dive@kinneret.com
|
||
|
||
|
||
==[Downloads]==================================================================
|
||
|
||
Combined Demos 1 0197 nooon_st.zip Gfx 1 0036 airwar.zip
|
||
2 0175 animate.zip 2 0030 dst_frac.zip
|
||
1 0334 cp16.zip 3 0171 inside1.zip 3 0026 veced300.zip
|
||
2 0261 ft206.zip 4 0169 inside2.zip 4 0025 vamp10.zip
|
||
3 0235 cp17.zip 5 0168 contrast.zip 5 0023 scarlet.zip
|
||
4 0212 it202.zip 6 0156 fashion.a01 6 0019 girl3.zip
|
||
5 0197 nooon_st.zip
|
||
6 0185 scrmt321.zip Music 1 0334 cp16.zip Code 1 0177 3dsco20.zip
|
||
7 0177 3dsco20.zip 2 0261 ft206.zip 2 0110 mphong.zip
|
||
8 0175 animate.zip 3 0235 cp17.zip 3 0100 voxeltut.zip
|
||
9 0171 inside1.zip 4 0212 it202.zip 4 0087 ccard.doc
|
||
10 0169 inside2.zip 5 0185 scrmt321.zip 5 0081 voxelsp2.zip
|
||
11 0168 contrast.zip 6 0160 m4w230sx.zip 6 0077 tpp1src.zip
|
||
|
||
Total downloads this week : 69,058
|
||
|
||
|
||
==[Uploads]====================================================================
|
||
|
||
=----------------------------------------------------------(File Information)-=
|
||
|
||
Main site : USA ftp.cdrom.com/pub/demos
|
||
|
||
Mirrors : Sweden ftp.luth.se/pub/msdos/demos
|
||
S. Africa ftp.sun.ac.za/pub/msdos/demos
|
||
USA ftp.uwp.edu/pub/msdos/demos
|
||
USA ftp.co.iup.edu/code
|
||
|
||
Other sites: Belgium hagar.arts.kuleuven.ac.be/demos
|
||
Sweden ftp.arosnet.se/demo
|
||
|
||
Web pages : Denmark www.th-zwickau.de/~maz/sound.html
|
||
Canada datex.ca/trax
|
||
USA www.jax-inter.net/users/mblocker/demos
|
||
U.K. www.dcs.ed.ac.uk/~mxr/gfx
|
||
Belgium hagar.arts.kuleuven.ac.be/~sdog/party.html
|
||
|
||
All ratings are subjective.
|
||
|
||
=---------------------------------------------------------------------(Music)-=
|
||
/demos/music Size Rated Description
|
||
=------------------------------- ---- ----- ----------------------------------=
|
||
/disks/1996/e/eh-0496.zip 1482 * 04/96 Pack by Exploding Hedgehogs
|
||
/disks/1996/e/eh-best1.zip 806 *+ Best of...Vol. 1 by Exp. Hedgehogs
|
||
/disks/1996/n/no-image.zip 841 **+ Images by J. Redfern
|
||
/disks/1996/r/rpcarmgn.zip 1474 *+ Carmagnola by Red Power
|
||
/disks/1996/s/sdc-0003.zip 1291 **+ Volume 3 by SDC
|
||
/disks/1996/s/sdc-0004.zip 1239 **+ Volume 4 by SDC
|
||
/disks/1996/s/secworld.zip 372 **+ Secret Worlds by Resound
|
||
/disks/1996/t/tr-burn.zip 2086 *** Burning by Tracktor
|
||
/disks/1996/t/tr-subl1.zip 1497 *** [1/2] Sublevel by Tracktor
|
||
/disks/1996/t/tr-subl2.zip 1163 *** [2/2] Sublevel by Tracktor
|
||
/disks/1996/t/tripto1a.zip 1459 ***+ [1/2] Tripout Volume 1 by Trip
|
||
/disks/1996/t/tripto1b.zip 1485 ***+ [2/2] Tripout Volume 1 by Trip
|
||
/disks/1996/t/trx0496a.zip 1222 **+ [1/2] 04/96 Pack by Traxx
|
||
/disks/1996/t/trx0496b.zip 1256 **+ [2/2] 04/96 Pack by Traxx
|
||
/disks/1996/t/trxds001.zip 1140 ** Deranged Songs Volume 1 by Traxx
|
||
/disks/1996/u/u-flo.zip 761 *** Flo by Ultrabeat
|
||
/disks/1996/u/unify2.zip 1036 ***+ Unification 2 by Aim Higher
|
||
/disks/1996/w/wr-dipth.zip 593 **+ Diptheria by Wraith
|
||
/disks/1996/z/zinc-gtf.zip 858 ** Groovy Time Fabric by Zinc
|
||
/songs/1992/mod/p/pmb-rain.zip 143 **+ Cheek Rain by FX
|
||
/songs/1993/mod/d/dancextc.zip 105 **+ Dance Xtc by Dune
|
||
/songs/1994/mod/w/warsa-ny.zip 281 *** Warsaw-New York by DSX Design
|
||
/songs/1994/s3m/c/csp.zip 99 + Carmel Snack Pack by dintel
|
||
/songs/1994/s3m/h/hpl_32k.zip 15 *** Hpl-32k by Dune
|
||
/songs/1994/s3m/j/jumper.zip 177 **+ Jumper by Aphex
|
||
/songs/1994/s3m/m/mindcont.zip 75 **+ Mind Controller by Cyclone
|
||
/songs/1994/s3m/t/t10-nghb.zip 111 *** Top 10 Neighbours by dune
|
||
/songs/1994/xm/i/icedesrt.zip 344 **+ Ice Desert by Aphex
|
||
/songs/1994/xm/k/kz-geoma.zip 306 **** Geomancer by Kal Zakath
|
||
/songs/1994/xm/t/thegrdnb.zip 126 **+ The Garden Behind by Aphex
|
||
/songs/1995/s3m/0-9/0que.zip 87 ** -QUE by Dune
|
||
/songs/1995/s3m/a/arsa.zip 24 **+ Arsa Bamk by Dune
|
||
/songs/1995/s3m/c/cages.zip 89 **+ Crystal Cages by Cyclone
|
||
/songs/1995/s3m/c/ccs-glsw.zip 199 **** The GlassWalker by Aahz
|
||
/songs/1995/s3m/c/control.zip 162 *** Control E by Dune
|
||
/songs/1995/s3m/c/cover.zip 116 **** Cover of Darkness by Daedalus
|
||
/songs/1995/s3m/c/crimson.zip 70 + Crimson Fantasy by Son Zoo
|
||
/songs/1995/s3m/d/div-ultr.zip 156 *+ Decieving Delight by Diversion
|
||
/songs/1995/s3m/d/dmk-eco.zip 157 *** Ecolove Remix by Hector
|
||
/songs/1995/s3m/d/dmk-our.zip 146 **+ Our Time Alone by Hector
|
||
/songs/1995/s3m/d/dmk-yoot.zip 400 *** Big Yoots Forever by Hector
|
||
/songs/1995/s3m/f/first.zip 115 *** The First by Roxton-Pond
|
||
/songs/1995/s3m/f/frequent.zip 157 ***+ Frequent by Dune
|
||
/songs/1995/s3m/h/harmitus.zip 6 **** Harmitus Painaa Mieltani by Dune
|
||
/songs/1995/s3m/i/imadeths.zip 45 ** I Made This by Dune
|
||
/songs/1995/s3m/j/jeesmaan.zip 241 **** Jees Maan Mii Is Avaruus. by Dune
|
||
/songs/1995/s3m/l/lifeforc.zip 81 ***+ Life Force by Cyclone
|
||
/songs/1995/s3m/o/oceanic.zip 323 **** Oceanic by Griffin
|
||
/songs/1995/s3m/r/reoclasc.zip 25 ***+ Reoclassic Mokk by Dune
|
||
/songs/1995/s3m/s/southern.zip 101 ****+ Southern Pacific by Dune
|
||
/songs/1995/s3m/t/teknorap.zip 102 **** Last Train by Dune
|
||
/songs/1995/s3m/t/tension.zip 168 **+ Surface Tension by Cyclone
|
||
/songs/1995/s3m/u/uh-oh.zip 143 *** House Party MCXZorro by Dune
|
||
/songs/1995/s3m/v/victory2.zip 268 ***+ Final Victory by Daedalus
|
||
/songs/1995/s3m/w/waves.zip 74 ** Waves by Cyclone
|
||
/songs/1995/xm/d/d_1-te2.zip 27 * rave1 by dune/orange
|
||
/songs/1995/xm/n/ns.zip 42 *** Study Break by TJ
|
||
/songs/1995/xm/s/shield.zip 508 ***+ Shield of Protection by Lioz
|
||
/songs/1996/it/g/gem-resr.zip 447 *+ Resurrection by Galahad
|
||
/songs/1996/it/i/i-xtinct.zip 103 ** Xtinct FunkJungle by Motiv
|
||
/songs/1996/it/i/inthehal.zip 229 *+ In Hall..Mountain King by Sturm
|
||
/songs/1996/it/j/js-caway.zip 5 *** Chipping Away by Jestyr
|
||
/songs/1996/it/l/lwclouds.zip 125 * Long White Clouds by Sturm
|
||
/songs/1996/it/n/neb-crow.arj 170 ** Crow Supremacy by MikPos
|
||
/songs/1996/it/n/nf-knew.zip 82 *+ Knowing the Answer by NF
|
||
/songs/1996/it/o/orc.zip 213 ** The March of the orcs by Bishop
|
||
/songs/1996/it/w/winddown.zip 516 ***+ Wind Down by Reuben Fortier
|
||
/songs/1996/mod/a/amu.zip 80 **+ AM 1.R SZ by Lala & H.Robi
|
||
/songs/1996/mod/b/batucada.zip 205 ** Batucada by DJ Dero
|
||
/songs/1996/mod/b/beau_day.zip 195 **+ Beautiful Day by Smash
|
||
/songs/1996/mod/c/cyberspc.zip 82 ** CyberSpace by LaLa
|
||
/songs/1996/mod/d/dreamsre.zip 105 ** Dreams of Reality by Soundmaster
|
||
/songs/1996/mod/d/drumrunr.zip 150 *+ Drum Run Remix2 by Tronster
|
||
/songs/1996/mod/d/dungeonw.zip 101 *+ Dungeon Walk by LaLa
|
||
/songs/1996/mod/m/m_adult.lha 392 **+ Adults by Dreamfish
|
||
/songs/1996/mod/m/m_far.lha 263 *** Farawayadventure by Carebear
|
||
/songs/1996/mod/m/m_subi.lha 163 **+ Subi's Back by Subi
|
||
/songs/1996/mod/m/m_trib.lha 237 ***+ Tribute Remix by TheFoxII
|
||
/songs/1996/mod/p/pinochio.zip 79 *** Pinochio by Cortex
|
||
/songs/1996/mod/t/teknodan.zip 78 **+ Tekknodance by SoundMaster
|
||
/songs/1996/mod/t/tinytune.zip 10 **+ TinyTune by SoundMaster
|
||
/songs/1996/mod/y/ybkeep.zip 119 **+ The Keep by Yannis
|
||
/songs/1996/mod/y/ybroam.zip 66 *** Roaming the Ruins by Yannis
|
||
/songs/1996/mtm/k/k_rept.zip 290 **+ Reptillian by Quarex
|
||
/songs/1996/other/k/k_kitexp.zip 403 **+ Kitchen Experiment by Vivid (AMS)
|
||
/songs/1996/other/u/u_consol.zip 46 ** Consolidation by Lala (ULT)
|
||
/songs/1996/other/u/u_crimew.zip 124 ***+ Crimewave by Lala (ULT)
|
||
/songs/1996/other/u/u_illusi.zip 367 **+ Illusions of Love by Lala (ULT)
|
||
/songs/1996/other/u/u_moment.zip 145 ** Moments of Friendship by Lala(ULT)
|
||
/songs/1996/other/u/u_snowfl.zip 511 *** Snowflake Hymn by Lala (ULT)
|
||
/songs/1996/other/u/u_vastne.zip 315 ** The Vastness of Space by Lala(ULT)
|
||
/songs/1996/s3m/a/a_intro.zip 232 *** Introspection by Subliminal
|
||
/songs/1996/s3m/a/a_tback.zip 208 **+ No Turnin' Back by Subliminal
|
||
/songs/1996/s3m/a/a_unlmnd.zip 119 **+ Unlocked Mind by Subliminal
|
||
/songs/1996/s3m/a/aa-tranc.zip 129 *** Trance Dance? by Mindless
|
||
/songs/1996/s3m/a/agony.zip 195 * Agony by Dornbush & Fisher
|
||
/songs/1996/s3m/a/andrea.zip 262 * Andrea by Dornbush & Fisher
|
||
/songs/1996/s3m/a/andreabm.zip 227 * Andrea-BRemix by Dornbush+Fisher
|
||
/songs/1996/s3m/a/andreahh.zip 249 * Andrea HRemix by Dornbush+Fisher
|
||
/songs/1996/s3m/a/angtalk.zip 251 **+ Angel Talk by Intermission
|
||
/songs/1996/s3m/a/another.zip 160 **+ Another Lies by The Revelations
|
||
/songs/1996/s3m/a/ara_seek.zip 55 ** Seek by Ara
|
||
/songs/1996/s3m/a/ashit.zip 107 * AShit by Dornbush & Fisher
|
||
/songs/1996/s3m/b/battle.zip 133 ***+ Fight to the Finish by Nitro
|
||
/songs/1996/s3m/b/blast.zip 533 * Blast..Brains by Dornbush+Fisher
|
||
/songs/1996/s3m/b/bn-aevea.zip 276 ***+ Aevea by DJBeanz
|
||
/songs/1996/s3m/b/bronx.zip 521 ** Rumble in the Bronx by Stein
|
||
/songs/1996/s3m/b/bullet.zip 801 * Bullet with Butter.. by Stein
|
||
/songs/1996/s3m/b/bw-gtagt.zip 125 ***+ Goodbye to a good.. by Blackwolf
|
||
/songs/1996/s3m/c/ccs-caff.zip 250 ** Caffeine by Absalom
|
||
/songs/1996/s3m/c/ccs-dfub.zip 147 *** DasFunky UberAlles by Aahz
|
||
/songs/1996/s3m/c/ccs-enf.zip 193 *** Ebb & Flow by Absalom
|
||
/songs/1996/s3m/c/ccs-eps.zip 330 **** Epsilon Eclipse by Mayhem
|
||
/songs/1996/s3m/c/ccs-insm.zip 499 ***+ The Insomniac by Mayhem
|
||
/songs/1996/s3m/c/ccs-srq.zip 349 ***+ My Satin-Robed Queen by Mayhem
|
||
/songs/1996/s3m/c/ccs-ssre.zip 229 *** Sidestep Remix by Aahz
|
||
/songs/1996/s3m/c/ccs-wud.zip 256 ***+ Wake Up Dead by Aahz
|
||
/songs/1996/s3m/c/cyborgc.zip 173 + Cyborg Cop by uToPiA
|
||
/songs/1996/s3m/d/d_allend.zip 80 + All Good Things... by Noble Roman
|
||
/songs/1996/s3m/d/d_begin.zip 50 * Sad Beginnings by Noble Roman
|
||
/songs/1996/s3m/d/d_dont.zip 73 + Don't Bother Me by Noble Roman
|
||
/songs/1996/s3m/d/d_echoes.zip 162 + Echoes from Within by Noble Roman
|
||
/songs/1996/s3m/d/d_melody.zip 18 + Pianoic Melody by Noble Roman
|
||
/songs/1996/s3m/d/desire07.zip 238 + Desire by Sonzoo
|
||
/songs/1996/s3m/d/dickd1.zip 74 * Tyrone by Dick Ditties
|
||
/songs/1996/s3m/d/dmicnfm.zip 218 **+ Conformity by Stavross
|
||
/songs/1996/s3m/d/dmk-strv.zip 215 ***+ Striving for the Light by Hector
|
||
/songs/1996/s3m/d/ds-darkc.zip 118 *+ Dark, Cold, and Empty by Froyd
|
||
/songs/1996/s3m/d/ds-know.zip 197 ** Don't Know Her by Ez
|
||
/songs/1996/s3m/d/dvision.zip 135 ** Double Vision by Porus
|
||
/songs/1996/s3m/e/envy.zip 95 * Envy by Stein
|
||
/songs/1996/s3m/f/flying.arj 91 **+ Flying in the Sky by Love 4 All
|
||
/songs/1996/s3m/f/for_bles.zip 204 *+ Bless You by Fortune
|
||
/songs/1996/s3m/f/for_itts.zip 167 *+ Into the Shadow by Fortune
|
||
/songs/1996/s3m/f/for_prog.zip 113 *+ Progression by Fortune
|
||
/songs/1996/s3m/g/g_fntn2.zip 185 **+ (fount[)ag(ain]) by Q. Porcupine
|
||
/songs/1996/s3m/g/gem-tree.zip 81 *** Trees by OxideMan
|
||
/songs/1996/s3m/h/hide.zip 225 *+ Hide by Crimeday
|
||
/songs/1996/s3m/j/jacobs_l.zip 256 **** Jacob's Ladder by Ler
|
||
/songs/1996/s3m/j/java.zip 54 **+ Kingdom of Java by Fizz
|
||
/songs/1996/s3m/k/kguns.zip 65 **** Karate Guns PLUS! by Meat
|
||
/songs/1996/s3m/l/lg-oasis.arj 312 *** Oasis by Legend
|
||
/songs/1996/s3m/l/lnc-days.zip 212 **+ These Sunny Days by Linearic
|
||
/songs/1996/s3m/l/lnc-exp.zip 203 **+ Expedition to Unknown by Linearic
|
||
/songs/1996/s3m/l/lnc-jmca.zip 91 ** I Come From Jamaica by Linearic
|
||
/songs/1996/s3m/l/lnc-rock.zip 146 **+ Rockers Will Survive by Linearic
|
||
/songs/1996/s3m/l/lost.zip 139 ***+ Lost in a Cloud by Cardiac
|
||
/songs/1996/s3m/m/masked.zip 149 ** Masked message by Juggernaut
|
||
/songs/1996/s3m/m/mess.zip 118 **+ Total Mess by Juggernaut
|
||
/songs/1996/s3m/m/miracle.zip 97 ** The Miracle (Queen) by Zaigamor Spellweaver
|
||
/songs/1996/s3m/n/nex-cact.zip 377 **+ Plastic Cactus by Nexus
|
||
/songs/1996/s3m/n/nm-life.zip 222 *** Portrait of Life by Nomex
|
||
/songs/1996/s3m/n/noreturn.zip 103 ** There..no return... by Juggernaut
|
||
/songs/1996/s3m/o/outsider.zip 331 *** Outsider by Juggernaut
|
||
/songs/1996/s3m/o/oym-trf.zip 298 *+ Turbulent Rhythm Flow by Oyml A.
|
||
/songs/1996/s3m/o/oym-ttds.zip 110 ** Trippy Trippy Disco.. by Oyml A.
|
||
/songs/1996/s3m/p/pal_chem.zip 94 ** Chemistry of Hate by Paladin
|
||
/songs/1996/s3m/p/pal_wth.zip 158 *+ Welcome to Hell by Paladin
|
||
/songs/1996/s3m/p/peaceful.zip 68 *** Peaceful Journey 1.01 by Cyclone
|
||
/songs/1996/s3m/s/s-time.zip 184 *** Time Slips By by Gamera
|
||
/songs/1996/s3m/s/s_slides.zip 151 **+ Slides by Shudder
|
||
/songs/1996/s3m/s/slenter.zip 238 + Slenterpunk by Dornbush and Fisher
|
||
/songs/1996/s3m/s/smi_brmx.arj 164 * Boom Ring Mix by Joker
|
||
/songs/1996/s3m/s/smi_crn.arj 48 ** Cryin' (cover) by Joker
|
||
/songs/1996/s3m/s/smi_dcmp.arj 317 * Dance Computer by Joker
|
||
/songs/1996/s3m/s/sr_progr.zip 247 ** Progression by S.Roger
|
||
/songs/1996/s3m/s/sum-song.arj 119 **+ Summer Song by Fox
|
||
/songs/1996/s3m/t/tl-affli.zip 569 ***+ Affliction by Timelord
|
||
/songs/1996/s3m/t/tp5_dune.zip 389 ****+ World of Saracens by Dune
|
||
/songs/1996/s3m/w/wake.zip 186 ** Wake by Bishop
|
||
/songs/1996/s3m/x/x-files.zip 276 ***+ The X-files by Daedalus
|
||
/songs/1996/s3m/x/x96revol.zip 126 *** Revolution 2 by Maxtracker
|
||
/songs/1996/s3m/z/zeolite2.arj 149 **+ Zeolite Mix 2 by Utopia+Crimeday
|
||
/songs/1996/s3m/z/zn-1day.zip 141 **+ One day... by zinc
|
||
/songs/1996/xm/0-9/3xd578k9.zip 17 ***+ Gateway 20k Compo Songs by Dune
|
||
/songs/1996/xm/0-9/97-cross.zip 580 **+ Getting the Hang by Celorn K.
|
||
/songs/1996/xm/a/air-rt.zip 471 *** Runtime by Airon
|
||
/songs/1996/xm/a/apsbrain.zip 131 *** Brainchild by APS
|
||
/songs/1996/xm/a/asg.zip 605 * All System Go! by Eeli
|
||
/songs/1996/xm/b/baddream.zip 104 + ...Bad Dream by Dr. Westwood
|
||
/songs/1996/xm/b/ballad.zip 440 ***+ The Ballad of Romeo by doj/ct
|
||
/songs/1996/xm/b/beautif3.zip 1536 ** Beautiful life by K.O Xtrong
|
||
/songs/1996/xm/b/bodyheat.zip 148 ** Feel my Bodyheat by Igneous
|
||
/songs/1996/xm/b/boriqua.zip 737 ** RR Boriqua Anthem by K.O. Xtrong
|
||
/songs/1996/xm/c/cb-bubbl.arj 397 ** Whatever Bubbles by PeDRo
|
||
/songs/1996/xm/c/cb-draft.arj 193 ** Draft by Logos
|
||
/songs/1996/xm/c/cb-shake.arj 146 *+ Something to Shake by TruxX
|
||
/songs/1996/xm/c/cbk_brxb.zip 466 *+ Breax > Beats by Cubik
|
||
/songs/1996/xm/c/cbk_sday.zip 228 ** I Don't Like Sundays by Cubik
|
||
/songs/1996/xm/c/cbk_svu1.zip 51 *+ Sellout vs. Underground by Cubik
|
||
/songs/1996/xm/c/cc-rmwng.zip 87 **+ Raising My Wings by Cruel Creator
|
||
/songs/1996/xm/c/ccs-time.zip 625 **** Give Me Some Time by Aahz/Absalom
|
||
/songs/1996/xm/c/cemetery.zip 473 **+ Cemetary by Embrittlement
|
||
/songs/1996/xm/c/consolid.zip 39 *+ Consolidation by LaLa
|
||
/songs/1996/xm/d/dahouse.zip 349 + Rock Da House by Eye of Hurricane
|
||
/songs/1996/xm/e/e_asg.zip 605 * All Systems Go by Eeli
|
||
/songs/1996/xm/e/el-bp_ae.zip 308 **+ Bluefire Pop by Electric Lucidity
|
||
/songs/1996/xm/e/el-esotr.zip 255 **+ Esoteric by Electric Lucidity
|
||
/songs/1996/xm/e/el-thu.zip 442 **+ The Half Unknown by Electric Lucidity
|
||
/songs/1996/xm/e/elw-dead.zip 257 **** Deadlock by Elwood
|
||
/songs/1996/xm/e/elw-fall.zip 321 **** Fall from Sky by Elwood
|
||
/songs/1996/xm/e/elw-feat.zip 378 **** Feats of Valor by Elwood
|
||
/songs/1996/xm/e/elw-icom.zip 230 **** Inferiority Complex by Elwood
|
||
/songs/1996/xm/e/elw-litt.zip 283 ****+ Little Man by Elwood
|
||
/songs/1996/xm/e/elw-shad.zip 232 **** Into the Shadow by Elwood
|
||
/songs/1996/xm/e/elw-shot.zip 212 **** Shooting Star by Elwood
|
||
/songs/1996/xm/e/elw-swee.zip 320 ****+ Sweet Dreams by Elwood
|
||
/songs/1996/xm/e/es_wuf.zip 106 * Wolf Waltz by Estinor
|
||
/songs/1996/xm/e/evacuate.lzh 146 **+ Evacuate! by BMP
|
||
/songs/1996/xm/e/evoldork.zip 930 **+ Evol Dork by The Green Reaper
|
||
/songs/1996/xm/f/fantoz96.zip 182 **+ Fantozi Original by BassQ
|
||
/songs/1996/xm/f/fh-nrefl.zip 214 ** Nostalgic Reflection by FH
|
||
/songs/1996/xm/f/fsk_5min.zip 73 *** 5 Minutes of Morning by VadimVS
|
||
/songs/1996/xm/g/g_darkp.zip 300 ***+ Dark Promise by Hunz
|
||
/songs/1996/xm/g/g_sonido.zip 453 * Sonido Matanzero by Ryan
|
||
/songs/1996/xm/g/gentle.zip 283 ** Be Gentle With Me by Peter Kendell
|
||
/songs/1996/xm/g/gustoso.zip 95 *+ Gustoso by Pix
|
||
/songs/1996/xm/i/it-start.zip 52 **+ Startrekkin Forever by It-Alien...
|
||
/songs/1996/xm/j/jb-21stc.zip 552 **** 21st Century Dig.. by J. Bonnell
|
||
/songs/1996/xm/j/jb-bunkr.zip 252 ***+ The Bunker by John Bonnell
|
||
/songs/1996/xm/j/jb-uncle.zip 511 *** Uncle John by John Bonnell
|
||
/songs/1996/xm/j/jr-htheb.zip 374 **+ Huggy the Buggy by J.Rook
|
||
/songs/1996/xm/k/k_frothy.zip 264 ***+ Frothy Moo Jooce by Lord Pegasus
|
||
/songs/1996/xm/k/kb.zip 448 + Klondike Bar by Joe & Steve & Bob
|
||
/songs/1996/xm/k/koti_01.zip 285 *** Breakin' Thru by Kotivalo
|
||
/songs/1996/xm/k/koti_02.zip 345 **** Hypnosis by Kotivalo
|
||
/songs/1996/xm/k/koti_03.zip 301 *** When Twilight Comes by Kotivalo
|
||
/songs/1996/xm/k/koti_04.zip 153 **** Walking by Kotivalo
|
||
/songs/1996/xm/l/levi.zip 341 *** Powers of Levitation by Rascal
|
||
/songs/1996/xm/m/mo-mania.zip 540 ** Movie Mania by Igneous
|
||
/songs/1996/xm/n/n55-dawn.zip 372 ***+ Dawn by Xerxes
|
||
/songs/1996/xm/n/na_fate.zip 389 ***+ Fate by Gain
|
||
/songs/1996/xm/n/ng-freon.zip 81 ** Freone (oZone edit) by Demuc
|
||
/songs/1996/xm/n/ng-sl.zip 335 **+ Skyline (remix) by Solaris
|
||
/songs/1996/xm/n/no-hope.zip 170 ***+ Hope by Syrinx
|
||
/songs/1996/xm/o/o-paci.zip 301 **+ Pacific Ocean by Oona
|
||
/songs/1996/xm/o/o-re_hsi.zip 232 *** Intelligent reload by Oona
|
||
/songs/1996/xm/o/o_dbbrn.zip 373 **+ More db's than brains by Otis
|
||
/songs/1996/xm/o/o_phong.zip 459 **+ Trancehaded trip by Otis
|
||
/songs/1996/xm/o/o_trip2.zip 380 **+ The Trip part II by Otis
|
||
/songs/1996/xm/p/pahdistb.zip 299 ** Disturbance by PAH
|
||
/songs/1996/xm/p/para-vox.zip 648 **** Paranoia (voice mix) by Scirocco
|
||
/songs/1996/xm/p/paranoid.zip 297 *+ Paranoid by Green Reaper
|
||
/songs/1996/xm/p/pb_dance.zip 193 **+ Keep Dancin by Point Blank
|
||
/songs/1996/xm/p/pb_roll.zip 367 *** Destiny Roll by Point Blank
|
||
/songs/1996/xm/p/pmb-soun.zip 192 ** Sound of S.A by Snes
|
||
/songs/1996/xm/r/r_leap.zip 159 *+ Leapfrog by Ryan
|
||
/songs/1996/xm/r/r_true.zip 262 * True Remorse by Ryan
|
||
/songs/1996/xm/r/r_vict.zip 182 * Victory by Ryan
|
||
/songs/1996/xm/r/riversid.arj 365 *** Riverside Ballad by Soundmaster
|
||
/songs/1996/xm/r/ru-4ever.zip 267 ** Dream 4ever by DJ Rex
|
||
/songs/1996/xm/r/russia.zip 35 *+ Russian Feel by Sleepwalker
|
||
/songs/1996/xm/s/sc_impac.zip 155 ***+ Impact by Screamager
|
||
/songs/1996/xm/s/sensatio.zip 249 *** Sensations by Soundmaster
|
||
/songs/1996/xm/s/si-mroc1.zip 195 ** Modern Rock 1 by J. Bonnell
|
||
/songs/1996/xm/s/sky_ilde.zip 214 **+ Illogical Decision by D.J. YoYo
|
||
/songs/1996/xm/s/sky_inds.zip 513 **+ Industry of Noise by D.J. YoYo
|
||
/songs/1996/xm/s/sky_only.zip 192 ** Only You by D.J. YoYo
|
||
/songs/1996/xm/s/sky_open.zip 314 ** Open Your Mind by D.J. YoYo
|
||
/songs/1996/xm/s/sky_rain.zip 282 **+ Raindrops by D.J. YoYo
|
||
/songs/1996/xm/s/soda-ste.zip 92 **+ De Musica Ligera by Nadim Hobaica
|
||
/songs/1996/xm/s/spazm.zip 234 **+ Spazmodic..Vengeance by G. Reaper
|
||
/songs/1996/xm/s/stabbing.zip 184 * Backstabbing by Bombi D
|
||
/songs/1996/xm/s/symph.zip 114 ** Symphony in Her Mind by Saxy
|
||
/songs/1996/xm/t/tejin.zip 67 *+ TJ Intro Tune by Sleepwalker
|
||
/songs/1996/xm/t/thebegin.zip 268 **+ The Beginning by Humanoid
|
||
/songs/1996/xm/t/tom-divn.zip 450 *** Divna by Mateus
|
||
/songs/1996/xm/t/tom-poho.zip 301 ***+ Czech Pahoda 96 by Mateus
|
||
/songs/1996/xm/t/tricky.zip 246 **** Tricky by Balrog & Mellow-D
|
||
/songs/1996/xm/w/w-snowin.zip 213 **** Snowin' At Sahara by Weed
|
||
/songs/1996/xm/w/wasser.zip 393 ***+ Wenn das Wasser blubbert by DOJ
|
||
/songs/1996/xm/x/xs1.zip 844 * Excessive Force by Utopian Dreamer
|
||
/songs/1996/xm/x/xs2.zip 1120 + Excessive Trance by Utop.. Dreamer
|
||
/songs/1996/xm/x/xs3.zip 1038 * ??? by Utopian Dreamer
|
||
|
||
=------------------------------------------------------------------(Graphics)-=
|
||
/demos/graphics Size Rated Description
|
||
=----------------------------- ---- ----- ------------------------------------=
|
||
/images/1995/g/gfx_ddt.zip 276 **+ ENL95:grfx:02: Robots by Royal Ghost
|
||
/images/1995/g/gfx_lkr.zip 129 ** ENL95:grfx:XX: Check eyes by Hired
|
||
/images/1995/g/gfx_ovr.zip 90 ** ENL95:grfx:XX: Prince by Battle
|
||
| Master
|
||
/images/1995/g/gfx_qmg.zip 393 **+ ENL95:grfx:03: Ships by Queue Members
|
||
| Group
|
||
/images/1995/g/gfx_ren.zip 108 ***+ ENL95:grfx:01: Rave Babe by Ren of
|
||
| Scene Side
|
||
/images/1996/e/elements.arj 615 *+ Elements by MikPos
|
||
/images/1996/l/lt-jezth.zip 46 ** Jezeth by Light
|
||
/images/1996/l/lt-ltm.zip 134 ** Little Mistake by Light of Kosmic
|
||
/images/1996/l/lt-pfear.zip 157 *** Planetary Fear by Light
|
||
/people/h/hqn.gif 5 Harlequin / Success
|
||
/programs/editors/apaint01.arj 20 AnimPaint animation editor by Sphair
|
||
/programs/editors/bsdemo1a.zip 75 Blob Sculptor for 3ds by Steve Anger
|
||
|
||
|
||
==[Articles]===================================================================
|
||
|
||
=---------------------------------------------------(Introduction)--(Snowman)-=
|
||
|
||
Hello all, and welcome to DemoNews issue 123.
|
||
|
||
Much has happened in the past three weeks. Diablo and I set down some
|
||
concrete specifications on the new archive system. The Hornet Underground CD
|
||
went off to the happy mass-producers. The beta version of the Music Contest
|
||
4 rules were released to the public. A baby web interface was constructed on
|
||
our archive. A week was spent in contract negotiations with the NAID
|
||
organizers (concerning Walnut Creek's sponsorship and the NAID CD). At the
|
||
company, I got "promoted" to webmaster (maybe I should call it a lateral
|
||
move).
|
||
|
||
Trixter works on our demo for NAID while GD tries to coordinate efforts on
|
||
the MC4 intro. I try to review demos while brushing up on HTML 3.2
|
||
documentation. The RealAudio people keep calling me and asking if I like
|
||
their FreeBSD .ra server. Yes folks, it is that time of the year, the season
|
||
for excess stress and super-human productivity... Whew!
|
||
|
||
This world is a funny place sometimes. Every time I think my role is set in
|
||
the scene, it changes. Every time I think I've established permanence in
|
||
something I soon find flaws or ways to enhance it. Every time I think about
|
||
thinking, I get caught in this endless while(1) loop until someone breaks me.
|
||
|
||
Stress is an incredible catalyst in creative expression. It can make you
|
||
have wild, colorful, random, and in rare circumstances, logical thoughts.
|
||
Lately, I've caught myself thinking about (plotting? :)) the future of the
|
||
scene. It seemed a worthy subject and all, given that I've got to come up
|
||
with something interesting for this intro.
|
||
|
||
Now suspend for a moment (if you will) concrete and linear thinking. Take
|
||
off those shoes and go smoke if need be. Get relaxed and fresh... this is
|
||
gonna be deep.
|
||
|
||
Think of the demo scene as this big crystalline gem, floating in space.
|
||
Everyone's a light source, floating around weightless. Some of us find other
|
||
colors complementary to ourselves. We stick together and fly in ordered
|
||
patterns. For one reason or another, certain faces of this gem get more
|
||
light than others. Some colors apparently prefer to master a darker side of
|
||
the crystal rather than compete in a fray of luminescence.
|
||
|
||
Over time, new lights trickle in from afar. The gem gets brighter.
|
||
Eventually so many lights cluster around the gem that you can't see it
|
||
anymore... it's too bright to look at. But the old lights keep circling,
|
||
having memorized where they need to be. In the surrounding space, foreign
|
||
colors start to be drawn toward the inferno... not even able to see the gem
|
||
inside but driven by curiosity. 'Why is that thing so bright?'
|
||
|
||
It's time for an eclipse.
|
||
|
||
Snowman / Hornet - r3cgm@cdrom.com
|
||
|
||
|
||
=---------------------------------------------(Announcing NAID 1996)--(Struk)-=
|
||
|
||
_____Introduction
|
||
|
||
Big happy hello to everyone in the demo scene! This year, me (Struk), Mr.
|
||
Khan and MEd are putting together the second edition of the North American
|
||
International Demofest.
|
||
|
||
NAiD '96 will be 3 days long, starting on 31 May 1996 at College
|
||
Edouard-Montpetit in Longeuil (Quebec) Canada. Doors open at 20h00 on
|
||
Friday, 31 May 1996. With the help of our sponsors, especially Walnut Creek
|
||
CDROM (You might know them thru their mega ftp site ftp.cdrom.com) we will be
|
||
able to give away over $8000 CAN in prizes for all the compos. There will be
|
||
a Demo, Intro, Music, Gfx, 4.2 kb Intro, 3Channel chiptune, The Lim-o-naid
|
||
and a couple of other very kewl competitions on site.
|
||
|
||
For the past 8 months we have been working very hard to get this party
|
||
together. A lot of activities and features are in the works that will make
|
||
NAiD 1996 a much bigger and much better demoparty than its previous
|
||
incarnation. To give you a few examples, we are planning to rent LASERS for
|
||
extremely impressive mind-bogling-baba-cool music and light shows. We're
|
||
planning to get a big Molson beer tent accompanied by a good sound-system and
|
||
a BBQ outside (A great way to get your vitamin E :). We'll be renting 35mm
|
||
movies (like Pulp Fiction) to watch them in our school movie theater with
|
||
surround sound. We'll be getting an ISDN data line for Internet access.
|
||
We'll have cool prizes to all the small compos, some cool bands playing, and
|
||
a lot, lot more. Of course, all of this kinda costs money.
|
||
|
||
At last year's party, as you might know, we ended up with a small deficit
|
||
(which was to be expected considering we almost gave tickets away). The
|
||
situation this year is quite different since we are now aiming for 0 deficit,
|
||
maximum fun.
|
||
|
||
Now, on a seemingly unrelated issue, we also are planning to get our college
|
||
diplomas in the not too distant future. Now, having said this, we'd like to
|
||
ask people to mail in (or fax) their ticket orders for NAiD 1996 as soon as
|
||
possible. This gives us a bit more room to maneuver than we had last year.
|
||
It's not that the NAiD party is at risk, but the health and grades (I mean
|
||
it) of everybody involved in the organization will suffer if we have to go
|
||
through the same amount of red tape we had to last time. And that can't be
|
||
good for the party either.
|
||
|
||
Thus, help us and make our jobs easier. Send us thru mail or fax your ticket
|
||
orders for NAiD as soon as possible. That way we'll have the breathing space
|
||
we need to make NAiD 1996 the biggest and the best it can be. Don't forget,
|
||
NAiD is a non-profit demo party! All the money that comes in goes directly
|
||
back into da party! So don't be shy and order now! We wanna know how many
|
||
people will be having fun on earth this year! :)
|
||
|
||
NAiD - Be there and die or be elsewhere and cry.
|
||
|
||
Struk / NAID-Apraxia - naid@autoroute.net, http://www.autoroute.net/~naid
|
||
|
||
|
||
=------------------------------(A Graphician's Tip Book - Part 1)--(Shaithis)-=
|
||
|
||
_____Introduction
|
||
|
||
For those of you who don't know me (which should be just about everyone on
|
||
the PC demo scene), my name's Chris Buecheler (Beekler)... or Shaithis...
|
||
whatever. I'm an artist and a tracker, although my skills at the former are
|
||
much more, shall we say, refined than the latter.
|
||
|
||
Anyway, I contacted Snowman recently, and questioned him on whether he liked
|
||
the idea of a graphics column. His response was very positive. Go for it.
|
||
Write the column. Okay, So here I am...
|
||
|
||
I'm here to give you guys, the slavering demosceners, some information on
|
||
graphics, both for demos and for still viewing. I know nothing about code,
|
||
so don't ask. I can probably tell you a bit about tracking, but you'd be
|
||
better off asking Necros or somebody. I'm going to start this column with
|
||
the true basics, so anyone who has been doing graphics for awhile, disregard.
|
||
|
||
_____Graphics
|
||
|
||
Graphics are the pretty pictures that you see on your screen when you use
|
||
your computer for anything. These graphics are made up of pixels, dots of
|
||
various colors lined up in any certain order. When you create a work of art
|
||
with these pixels, you have made the exact thing that this column is
|
||
dedicated to.
|
||
|
||
_____Resolution
|
||
|
||
Resolution is how many pixels your monitor is displaying or can display on
|
||
the screen at any one time. Anyone with a monitor can display some amount of
|
||
pixels. (If you don't have a monitor, you can't read this, and you got
|
||
suckered at your local computer shop). Anyway, most monitors can handle at
|
||
least VGA (displaying up to a maximum resolution of 640x480 pixels at a time,
|
||
horizontal by vertical). Color depth is also a part of monitors, but we'll
|
||
mention that in the color section.
|
||
|
||
NOTE: Your resolution and colors also depend on your graphics card, but
|
||
that's more technical than I feel like going into. ;)
|
||
|
||
_____Color
|
||
|
||
Color is (as I learned in Light Color and Design class), determined by three
|
||
factors: Hue, Saturation, and Intensity. Hue is more or less what people are
|
||
asking about when they say "What color is this?" Saturation is how true the
|
||
color is, or more specifically, how far away from grey the color is.
|
||
Intensity is how "bright" the color is. For example, fire-engine red is high
|
||
in both intensity in saturation. Blood red is high in saturation, but not as
|
||
high in intensity. Pale pink is not terribly high in either, and so on...
|
||
|
||
Color depth is simply what and how many colors your monitor can display at
|
||
any one time. At first monitors were monochrome, or single color. Then came
|
||
CGA, or 320x200 resolution with 4 colors. EGA, 320x200x16 colors. VGA,
|
||
640x480x16. MCGA (which people usually call VGA) 640x480x256. SVGA,
|
||
1024x768x256, and EVGA (Which people usually call SVGA) 1024+x768+x256+, up
|
||
to a possible 16.7 million colors.
|
||
|
||
_____Art
|
||
|
||
Ah. Here we have the MAJOR debate in the graphics scene. What is art? Must
|
||
every pixel be hand drawn, or do rendering techniques qualify? If you
|
||
believe the former, you probably won't agree with me on everything I have to
|
||
say. That's cool. Email me. I believe that an artist should be allowed to
|
||
use ANY tools available to him. What one creates with an airbrush is no less
|
||
art than what one creates with a paintbrush, so why is Deluxepaint an art
|
||
program, but Photoshop not?
|
||
|
||
Sure, if all you're doing is creating a boring texture, and then putting a
|
||
plain white font over it that says "Demos Rock, Baby!", then you have a
|
||
problem. I think it is the artist, however, more than the tools, that
|
||
defines "art".
|
||
|
||
This pretty much brings my first installment to an end. I'm not going to go
|
||
into any tips and tricks this time around, or the column will be far too
|
||
long. However, let me give you a brief synopsis of the next few articles:
|
||
|
||
Articles Topic
|
||
-------- -----------------------------------------
|
||
2 - 4 Deluxepaint II Enhanced (an introduction)
|
||
5 - 7 Adobe Photoshop (an introduction)
|
||
8 - ? Tips & Trix (will cover lots of software)
|
||
|
||
I'm certain there will be more. After all, I discover new tricks on an
|
||
everyday basis. Therefore I'll stop writing now and leave you anticipating
|
||
my next column (I hope). If you have any tips/tricks/etc. for any art
|
||
programs, don't hold back sending them to me. I can assure you that all tips
|
||
WILL be credited to their rightful discoverers. Until next time, I remain:
|
||
|
||
Shaithis / WiCKED, Immortal Coil - shaithis@dreamscape.com
|
||
|
||
|
||
=-------------------------------(Intro to 3D Graphics - Volume 05)--(Kiwidog)-=
|
||
|
||
_____Introduction
|
||
|
||
Many happy returns! :-)
|
||
|
||
I know I said I wasn't going to write any more of the 3D series until after
|
||
NAID, but I found that I had some time today to write this article before
|
||
then, so today we'll be discussing
|
||
|
||
The Joy of BSP Trees! :-D
|
||
|
||
Oh, and before I begin, for those of you who've been looking for the article
|
||
3&4 source code and haven't found it, you're not alone... I haven't had the
|
||
time to write up the source for all 3 compilers (WC, BC, and TP) and don't
|
||
think I'll have that much time until NAID. The articles are quicker to write
|
||
than the source, and when I write the source, my primary language/compiler is
|
||
Watcom C. I generally write the Turbo Pascal version last, and since I know
|
||
many of you are Pascal coders, the C version wouldn't do you much good. So
|
||
unless somebody for some reason wants to offer to help convert the 32-bit
|
||
C/Asm into 16-bit TP/Asm, I'm gonna be a little slow on that source. Sorry
|
||
about that; so much work these days...
|
||
|
||
But don't worry, just be patient, the stuff will be there eventually. :-)
|
||
|
||
Anyway, a couple quick notes from back in article 4...
|
||
|
||
_____Typos Etc. (Article 4)
|
||
|
||
In article 4, at one point in explaining a way to do the left-right scanline
|
||
filling, there was the following code block...
|
||
|
||
mov edi, leftoffset
|
||
mov ecx, rightoffset
|
||
sub ecx, edi
|
||
mov ebx, ecx
|
||
shr ecx, 2
|
||
mov eax, color ; assuming color is already prepared to be in all 4 bytes.
|
||
cld
|
||
rep stosd
|
||
mov ecx, ebx
|
||
and ecx, 3
|
||
rep stosd
|
||
|
||
The last line (the second "rep stosd") should be "rep stosb" instead. Sorry
|
||
about that; I meant to say stosb, but for some reason looking 3 lines above
|
||
that just influenced my typing. All apologies, although I'm sure many of you
|
||
figured it out (and many thanks to the 3 or 4 of you who emailed me notifying
|
||
me of this error; I really appreciate it. Please make me aware of any future
|
||
bugs like this; I know I won't catch many of them :)
|
||
|
||
Also, a couple of you have mailed me about the lack of efficiency in the edge
|
||
tracing algo I mentioned, mostly regarding the "check against the left and
|
||
right edges each line to see if they're new extremes" part. Please remember
|
||
that in these articles, I'm covering very very general explanations of
|
||
routines; this is _intro_ to 3D here. :) There are many faster of ways of
|
||
doing just about everything I put in here, so don't take the contents as the
|
||
final word, they're just methods. And for you beginners, remember that
|
||
too... I'm not giving you the fastest routines around... you can always
|
||
optimize! :-)
|
||
|
||
(Hint - for the edge tracer, if you order your points in a certain way,
|
||
either clockwise or counterclockwise, and then check the locations of each
|
||
point before a trace, you can automatically determine which edge it will
|
||
trace over, and can quickly overwrite the values along that edge without any
|
||
comparisons...)
|
||
|
||
Oh BTW, for those interested in the fixed point square root routine I
|
||
mentioned last time, the article explaining that will be in the Coding Corner
|
||
of Imphobia 12, coming out sometime in the next month. So keep an eye out
|
||
for that if you're interested.
|
||
|
||
Okay, enough preface junk, time for the meat of the article! :-D
|
||
|
||
_____What's a BSP Tree Anyway?
|
||
|
||
Okay, if you've played Doom extensively or even just read random articles on
|
||
3D, you probably have heard BSP trees mentioned off and on. But what are
|
||
they, and how can you use them? That's what we're gonna find out today.
|
||
|
||
BSP tree is short for "Binary Space Partitioning" tree. What it is, is a
|
||
tree of line or polygon "nodes" (for 2D or 3D, respectively) that's
|
||
pregenerated before run-time for a given static object or set of objects.
|
||
Once you calculate this tree once for the object(s), you can use it in your
|
||
program each frame to draw the polygons in correct order _regardless_ of your
|
||
view position, just by "walking" the tree in a certain way.
|
||
|
||
I'll be covering both how to build a tree, and how to walk it during your
|
||
program. The walking part is very easy to code, and is quite a fast way of
|
||
drawing surfaces in the right order. The tree generation part is not so
|
||
easy, though, for several reasons which I'll get to shortly.
|
||
|
||
Nonetheless, BSP trees are well worth the trouble if your scenes are pretty
|
||
static... they are quite quick and very effective. :)
|
||
|
||
_____What do you mean by "static" anyway?
|
||
|
||
By "static" object I mean an object (or set of objects) that doesn't move
|
||
with respect to itself. Like, take a standard cube. The cube is a static
|
||
object... you can move the whole cube around the environment, translate it,
|
||
rotate it, etc. But regardless of where it is, it's still a cube. But if
|
||
you take a few of the vertices of the cube and move them around, the parts of
|
||
the cube (i.e. the 6 faces) are no longer the same... hence, if you have an
|
||
object and the object is always that object, it's static. But if you morph
|
||
the object or explode it or something, it's not. Scaling is okay, as long as
|
||
all the vertices are scaled the same (it's still a cube, only a different
|
||
size). It's when the _shape_ changes that causes problems. You'll see why.
|
||
|
||
(Note: There are some cases where you can change face positions in an object
|
||
and still have the tree be valid, you just have to be very careful how your
|
||
tree is constructed if you wish to try something like this).
|
||
|
||
Well, now that we know our limitations, let's build a tree! :-)
|
||
|
||
_____So How Do We Build These Trees?
|
||
|
||
The term "Binary Space Partitioning" is exactly what it seems to be. BSP
|
||
trees, in essence, "cut" space into two equal halves, over and over again,
|
||
until effectively nothing is left to work with. The space is cut along the
|
||
polygons of your object (although some prefer to cut with axis-aligned planes
|
||
instead, which is a bit faster but has flaws of its own). The best way to
|
||
demonstrate this is to walk through a sample tree building of a small scene.
|
||
|
||
We'll work in 2D for this little sample, but the principle carries over into
|
||
3D the same way. Let's say we have a static scene (when I say scene I mean
|
||
one big object, effectively... or in Doom's case, the level map) that we want
|
||
to build a tree for. Our scene is composed of 5 lines, arranged in a
|
||
somewhat random order...
|
||
|
||
/
|
||
/ ------
|
||
/
|
||
|
||
|
|
||
----- | \
|
||
| \
|
||
\
|
||
|
||
(Note: I hope that formatting errors don't happen this time, because if those
|
||
lines aren't in the right places, this will make _no_ sense. :-)
|
||
|
||
Anyway, let's label each of these lines (which we'll pretend are top views of
|
||
3D polygons, like walls)...
|
||
|
||
/
|
||
/A ------
|
||
/ B
|
||
|
||
E<><45><EFBFBD> |
|
||
----- D| \
|
||
| \C
|
||
\
|
||
|
||
We also need to give each line a "positive" side, and a "negative" side. For
|
||
this, pretend that the positive side of each line is the side where the
|
||
letter is on.
|
||
|
||
Now, like the name suggests, we need to cut space in half along some line (or
|
||
axis aligned plane, but I'm not going to get into that method). In essence we
|
||
can just pick a line at random, but as you'll see soon, that's not a good
|
||
idea completely...
|
||
|
||
Say we pick line C. It's facing diagonally, with the upper right on its
|
||
positive side and the lower left on its negative side. Now what we do is, we
|
||
extend this line segment to its full line length, cutting space in half.
|
||
|
||
/ \
|
||
/A \ ------
|
||
/ \ B
|
||
\
|
||
E<><45><EFBFBD> | \
|
||
----- D| \
|
||
| \C
|
||
\
|
||
\
|
||
\
|
||
\
|
||
|
||
Looking at the result, we've got A, E, and D on the negative side, and B on
|
||
the positive side. This was the first step in our tree generation. Let's
|
||
start our tree with the "home" node (the first one we picked)...
|
||
|
||
- +
|
||
|
||
C
|
||
/ \
|
||
|
||
A BSP tree itself is set up with nodes that have one parent (node above it)
|
||
and between 0 and 2 children (up to one positive and one negative). We chose
|
||
line C as our first "node" to split with, so we put it at the top. The - and
|
||
+ symbols above are to let you know which side is negative and which is
|
||
positive.
|
||
|
||
Now, let's continue with the tree. On the positive side, we only have B, so
|
||
let's just slap that into the tree (since it's our only pick)...
|
||
|
||
- +
|
||
|
||
C
|
||
/ \
|
||
B
|
||
/ \
|
||
x x
|
||
|
||
The "x"s mean that there are no more nodes left in that "space", and the tree
|
||
stops. You don't use lines that were already used or lines on the opposite
|
||
side of space... remember, we're splitting space, so when looking at the
|
||
positive side of C, it's as if the negative side doesn't even exist. All that
|
||
we have is B. And then when B splits space again (only splitting the
|
||
positive side of C, no lines are on either side, so it's done.
|
||
|
||
So now we just have to contend with the negative side of C, where A,E, and D
|
||
are hanging out. We have three possible choices, so let's just pick A for
|
||
the heck of it. :)
|
||
|
||
/ \
|
||
/A \-------------
|
||
/ \ B
|
||
/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \
|
||
/ E<><45><EFBFBD> | \
|
||
----- D| \
|
||
| \C
|
||
\
|
||
\
|
||
|
||
Well A has nothing on its negative side, and E and D on its positive side. So
|
||
let's update the tree...
|
||
|
||
- +
|
||
|
||
C
|
||
/ \
|
||
A B
|
||
/ \ / \
|
||
x | x x
|
||
|
|
||
|
|
||
|
||
(Note: The long line at the bottom is just to make room, but it's from the
|
||
positive side of A).
|
||
|
||
Now we have D and E left. We can pick either of them. But let's see what
|
||
happens when we pick E....
|
||
|
||
/ \
|
||
/A \-------------
|
||
/ \ B
|
||
/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \
|
||
/ E<><45><EFBFBD> D| \
|
||
----------X \
|
||
| \C
|
||
\
|
||
\
|
||
|
||
We've just cut D in half! That's not good. In a BSP tree, there's only
|
||
positive and negative, not both. When splits are encountered, there are two
|
||
options. One is to calculate the split point, and split D into two lines, D+
|
||
and D-. In which case, our final tree would look like this...
|
||
|
||
- +
|
||
|
||
C
|
||
/ \
|
||
A B
|
||
/ \ / \
|
||
x | x x
|
||
|
|
||
|
|
||
E
|
||
/ \
|
||
D- D+
|
||
|
||
That works, but the problem there is that 1) we have to calculate the split,
|
||
and 2) we've just added another line (or wall) to render. The calculation
|
||
part is not that big a deal. The bad thing is, when you think about a large
|
||
scene, splits can add tons upon tons of polys to the drawing pipeline. That's
|
||
a devastating thing that we must try to avoid.
|
||
|
||
Generally it's impossible to avoid splits completely; they are going to
|
||
happen, so you better make code to handle it when it does. But the fewer the
|
||
better. And because of this, we have a second option to avoid splits...
|
||
|
||
Pick a different node.
|
||
|
||
Even by just choosing D instead of E in our last step,
|
||
|
||
/ |\
|
||
/A | \-------------
|
||
/ | \ B
|
||
/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | \
|
||
/ E<><45><EFBFBD> | \
|
||
----- D| \
|
||
| \C
|
||
| \
|
||
|<7C><><EFBFBD><EFBFBD><EFBFBD> \
|
||
|
||
- +
|
||
|
||
C
|
||
/ \
|
||
A B
|
||
/ \ / \
|
||
x | x x
|
||
|
|
||
|
|
||
D
|
||
/ \
|
||
x E
|
||
|
||
... we've just eliminated the split. This is the kind of thing you want to
|
||
do when building your trees. Unfortunately, when the scenes are large, you
|
||
don't have the time to build your trees manually, and a program to do it for
|
||
you won't have the luxury of knowing the best way to avoid splits without
|
||
trying every single possible tree combination (called the "brute force"
|
||
method), and that takes an eternity. As if to add another problem to the
|
||
mix, Split Avoidance is not the only goal of a good BSP tree... we also want
|
||
a tree that's as balanced as possible. Take a look at the above tree; it's
|
||
got no splits, but it's pretty unbalanced. But take a look at another
|
||
possible tree of the same scene...
|
||
|
||
- +
|
||
|
||
D
|
||
/ \
|
||
C A
|
||
/ \ / \
|
||
x B x E
|
||
/ \ / \
|
||
x x x x
|
||
|
||
It's got no splits either, and look how much more balanced it is... we only
|
||
go down three levels deep instead of four. Why is being balanced also
|
||
important? Because when we walk the tree, A) the fewer chain links to
|
||
process the faster it is, and B) on occasion we can eliminate whole branches
|
||
from the pipeline, and the more nodes on the branch being eliminated, the
|
||
better.
|
||
|
||
So which is more important, Split Avoidance or Balancing? It turns out the
|
||
two are generally mutually exclusive goals; the quest for the perfect tree is
|
||
always continuing. For most objects/scenes, the splitless trees aren't as
|
||
balanced as possible, and the most balanced trees have splits. Which is
|
||
better? In truth it depends on the application.
|
||
|
||
We're using the trees for realtime 3D hidden surface elimination, in which
|
||
case both are important, but splitlessness is a slightly higher priority. Not
|
||
that you'll always have a splitless tree though; there are some scenes that
|
||
cannot possibly be done without at least one split. But the lower the
|
||
better. So you want trees that have as few splits as possible, and are as
|
||
balanced as possible, if possible.
|
||
|
||
And you have to make a program that knows this. Sound like fun?
|
||
|
||
I didn't think so. :-)
|
||
|
||
Generally, the common method is what I've heard called the "sample outlook"
|
||
method. What you do is, at each step in the tree generation you pick a
|
||
sample of your nodes (say 10-20%), and pick the one which results in either
|
||
A) the best possible next layer (quick version), or B) the best possible tree
|
||
altogether (long version). When I say quick and long, I don't mean so much
|
||
about how long they take to code, but how long the program runs. The less
|
||
analysis involved, the quicker the generation is (but the less likely that
|
||
the tree will be as good as you can get it). It's a tradeoff, and in my
|
||
opinion, a really good tree is worth the time it takes to go get more coffee,
|
||
so make your program very critical.
|
||
|
||
Also, in case you hadn't already guessed, the tree generation is a recursive
|
||
function, yes. You generate your node and pick two children, then for each
|
||
child, the function calls itself on the child, and the process continues
|
||
until the tree is over (no children to process).
|
||
|
||
The problem is here that picking 10-20% of your possible nodes makes the
|
||
results rather random, and doesn't guarantee a thing. But, for the most part
|
||
it's one of the only ways out there to build a tree...
|
||
|
||
For the most part. ;)
|
||
|
||
_____There Is An Alternative
|
||
|
||
For those interested, I have made an alternative algorithm for tree
|
||
generation. You should be quite familiar with standard methods of building
|
||
first though, in order to understand the algo.
|
||
|
||
The cons are:
|
||
A) Rather complicated to understand
|
||
B) Harder to code
|
||
C) VERY long building time (not nearly as long as brute force though)
|
||
D) Sucks up memory (or disk space) like a hog.
|
||
|
||
The pros though are:
|
||
A) If there is a splitless tree it will most likely find it,
|
||
even with thousands of nodes
|
||
B) If there are multiple splitless trees, it will go for the
|
||
more balanced ones.
|
||
|
||
It can also be modified to prefer balancing, for example, depending on what
|
||
you're looking for. As I said, this is a pretty complex (and weird)
|
||
algorithm, and I can't explain it in here. But if you're familiar with
|
||
standard recursive sampling methods, you might find it interesting.
|
||
|
||
(Incentive to go to NAID) I will most likely be holding a couple coding
|
||
seminars up at NAID, one for beginners, and one more open forum for
|
||
experienced guys. In the open forum I'll be explaining this alternative BSP
|
||
tree method to anyone who asks. And no, it's not BS; it's been verified by
|
||
multiple people already as being quite effective. So if you want to know
|
||
how, and you can make it to NAID, here's another reason to. :-)
|
||
|
||
Okay, enough stupid plugging of my stuff... Time to actually put these trees
|
||
to use! :-)
|
||
|
||
_____Alright, I've Got A Tree. What Do I Do With It?
|
||
|
||
If we've got our tree, using it for polygon displaying is a pretty simple
|
||
matter. Basically, if we think about it, this tree holds a system of what
|
||
polygons are on what sides of each other. So by traversing the tree during
|
||
display, we can get the polygons to show up in correct back-to-front order
|
||
(you can also walk the tree front-to-back if you like, if you have a system
|
||
that would use it).
|
||
|
||
So how do we traverse the tree? Like this...
|
||
|
||
Take our tree (the balanced one, the one we liked more)...
|
||
|
||
- +
|
||
|
||
D
|
||
/ \
|
||
C A
|
||
/ \ / \
|
||
x B x E
|
||
/ \ / \
|
||
x x x x
|
||
|
||
Now lets say, in the Doom analogy, that we have a player at the X in the
|
||
scene...
|
||
|
||
/
|
||
/A ------
|
||
/ B
|
||
|
||
E<><45><EFBFBD> |
|
||
----- D| \
|
||
| \C
|
||
X \
|
||
|
||
By checking which side of the polygon our viewer is on at each node, we
|
||
determine which branch of the tree to take first, and as we return to the
|
||
node before taking the second branch, we draw the polygon. Let's start at
|
||
the top, at node D. Looking at X, it's on the positive side of D. We don't
|
||
walk the positive side of the tree though, we walk the OPPOSITE side, the
|
||
negative one (since it's in the opposite space, generally meaning further
|
||
away). Now we're at node C. We're on the negative side of C, so we walk the
|
||
positive side, to B.
|
||
|
||
But looking at B, it's go no nodes below it. So as if we followed one of
|
||
them, we come right back to it, and draw it...
|
||
|
||
B
|
||
|
||
And we return back up to C. We've just come back to it from the first
|
||
branch, so we draw it next.
|
||
|
||
B C
|
||
|
||
And then we would follow the negative side of C, but there's nothing there,
|
||
so we return back up to D.
|
||
|
||
Now that we're back to D, after walking the first branch, we draw it as well
|
||
|
||
B C D
|
||
|
||
And drop down to A. We're on the positive side of A, so we walk the negative
|
||
branch. And since nothing is there, we return back to A, and draw it.
|
||
|
||
B C D A
|
||
|
||
And follow the same-side branch, down to E. E has no child nodes, so we draw
|
||
it, and notice that we're done, since all five nodes (walls) have been drawn
|
||
(or queued to draw, depending on how you do your system; it's the same
|
||
principle)...
|
||
|
||
B C D A E
|
||
|
||
Now look at that order from X's viewpoint. If you draw the walls in that
|
||
order, they'll be in the correct order from that viewpoint! :-) By doing
|
||
this "which side am I on" checking, you will get a drawing order that works
|
||
perfectly from any position, all the time.
|
||
|
||
The same thing holds over to 3D, by checking your position against the plane
|
||
of each polygon. If you're on the positive side of the plane, go one way, if
|
||
you're on the negative side, go the other. Same thing, but with lines
|
||
instead of planes, and it works every time.
|
||
|
||
Now earlier I mentioned that a balanced tree was not only important for speed
|
||
of recursion, but also because it could eliminate unwanted branches. To
|
||
demonstrate this, pretend that the X character was facing to the upper left
|
||
corner, where it could see part of E and part of A, but none of D or any of
|
||
the others. Well if we think about it, if we're on the positive side of D,
|
||
and none of D's negative space is visible (and I mean that, none of D's
|
||
negative space... D could be invisible while same of its space is, so it's
|
||
the entire space)... then all the nodes in its negative space (in this case,
|
||
C and B) can be discarded right off the bat. No need to process them or
|
||
anything, since there's no way you could see them. This is very very handy,
|
||
and the more balanced the tree, the more you can discard when this kind of
|
||
situation occurs.
|
||
|
||
One final section before I go... throughout this doc you can see how
|
||
everything is based on what side one thing is on from another. But how do
|
||
you find this out?
|
||
|
||
_____Line and Plane Equations Via Normals
|
||
|
||
In order to find out what side a point is on from a line or plane, all you
|
||
have to do is pump the coordinates of the point into the line or plane
|
||
equation, respectively (and checking a line or plane against another line or
|
||
plane is done just by checking both points of the line, or all the vertices
|
||
of the plane, so in the end it comes down to points).
|
||
|
||
But how do we know the equation of the line or plane to test against? Here's
|
||
where our wonderful normals and dot products come in again. :-)
|
||
|
||
If you're pre-storing your normals, then by just pre-storing one more value
|
||
you can have the entire equation of a line or plane right at your fingertips.
|
||
For any line with the equation
|
||
|
||
Ax + By + C = 0
|
||
|
||
it turns out that A and B are the components of the normal of the line, and
|
||
-C is a constant, equal to (Normal.P1), where . is the dot product function,
|
||
and P1 is the first point of your line segment, the one where the normal was
|
||
determined from. Once you have this equation (which is pre-stored as just
|
||
the normal and that constant, -C), you plug in the coordinates of the point
|
||
to check against into x and y. The result will give you 0 if the point is on
|
||
the line, but it will also be positive if the point is on the positive side,
|
||
and negative if the point is on the negative side. The value itself doesn't
|
||
matter, it's just the sign that counts. Let's do an example. Say we have a
|
||
line from (0,0) to (1,1). If our positive side is to the lower right, then
|
||
our normal from P1 goes from (0,0) to (1,-1). And
|
||
|
||
Normal.P1 = (Nx*P1x + Ny*P1y) = 1*0 + (-1*0) = 0.
|
||
|
||
Sure enough, the equation for the line is
|
||
|
||
Ax + By + C = 0 -> 1x + (-1)y + -(0) = 0 -> x - y = 0
|
||
|
||
Take any point on that line, and the result is 0, like in the equation.
|
||
But take a point on the positive side, like (4,2) and you get
|
||
|
||
x - y = 0 -> 4 - 2 = 2
|
||
|
||
... and the result is positive. Similarly, a negative-side point will give a
|
||
negative side result. So just plug in the numbers of the point to check,
|
||
look at the sign of the result, and boom, off ya go. :-)
|
||
|
||
The same thing holds for plane equations in 3D, where
|
||
|
||
Ax + By + Cz + D = 0
|
||
|
||
Sure enough, A, B, and C are Nx, Ny, and Nz, the components of the normal to
|
||
the plane. And -D is (N.V1) where N is the normal and V1 is vertex 1, i.e.
|
||
the vertex where your normal was based from (the center point of the two
|
||
vectors in the cross product... remember the cross product? :-) By plugging
|
||
in numbers, you check what side the point is on during BSP tree walking with
|
||
just three multiplies for a 3D plane...
|
||
|
||
(Nx*x) + (Ny*y) + (Nz*z) - (N.V1) = Result
|
||
|
||
where N.V1 is precalculated and Result holds the sign value giving the side
|
||
that (x,y,z) is on. Sound simple? That's all there is to it. :) You use
|
||
the same thing in tree generation to determine sidedness, by checking each
|
||
point. If all the points are on one side or the other, you know the side of
|
||
the whole line or plane. If not, then a split has occurred. Be warned
|
||
though, if you use floating point, that you'll want to make room for a bit of
|
||
rounding error. A result of 0.00002 doesn't necessarily mean that the point
|
||
is on the positive side; it could be rounding error, and sometimes you can
|
||
use this as an excuse to fudge (especially if all but one of the points is on
|
||
one side, and the one that isn't is only off by a tiny margin).
|
||
|
||
(PS: Nifty trivia... take a look at the BSP tree of any sphere (including
|
||
cubes, which are six sided spheres)... you'll notice the tree is not exactly
|
||
balanced, is it? :-)
|
||
|
||
_____That's About It!
|
||
|
||
If you have any questions, feel free to email me. Although I might be a
|
||
little delayed in replying, I respond to pretty much everyone. :) Also, look
|
||
for the supplement source to this volume and volumes 3 and 4 sometime shortly
|
||
after NAID (May 31-June 2). And speaking of NAID, if you can make it, make
|
||
it! It's gonna be a great time, I guarantee it. :-D
|
||
|
||
Until next time (or NAID),
|
||
|
||
Kiwidog / Hornet , Terraformer - kd@ftp.cdrom.com
|
||
|
||
|
||
=----------------------------------(NAID: As if You Were Here)--(White Noise)-=
|
||
|
||
Never done before. New. Kewl. See it. Hear it.
|
||
|
||
Be there, even if you can't attend. "NAID 96: as if you were here", the NAID
|
||
live web site.
|
||
|
||
http://naid.conceptech.qc.ca is the URL to remember. Until the 31st, stop by
|
||
the ad page, at http://flash.intersignal.net/naid.
|
||
|
||
Can _you_ afford to miss it?
|
||
|
||
See you there.
|
||
|
||
White Noise / Dusk Till Dawn - jeff@ego.psych.mcgill.ca
|
||
|
||
|
||
=--------------------------------------------(Imphobia 12 Voting)--(Darkness)-=
|
||
|
||
Hi there Demonews readers.
|
||
|
||
Here is just a little note to tell you all that the deadline for the Imphobia
|
||
charts voting is near. So, if you haven't done it yet, you should all
|
||
consider filling out an Imphobia voting form and send it to me to my email
|
||
address. If you haven't got a form yet, you can leech it from Hornet
|
||
/incoming/news directory under the name imp12vot.zip.
|
||
|
||
You got the right to vote, use it!
|
||
|
||
Darkness / Imphobia - jeff.van.audenhove@infoboard.be
|
||
|
||
|
||
=-----------------------------------(FunktrackerGOLD for Linux)--(Jason Nunn)-=
|
||
|
||
FunktrackerGOLD Beta version 0.0 for Linux/Unix now available! Experience
|
||
the power and beauty of tracking and unix combined.
|
||
|
||
ftp://ftp.cdrom.com/pub/demos/incoming/music/programs/fnkgld00.tgz
|
||
ftp://sunsite.unc.edu/pub/Linux/Incoming
|
||
|
||
For more information, email me or check out:
|
||
http://darwin.topend.com.au/~jsno/projects.html
|
||
|
||
Jason Nunn - jsno@darwin.topend.com.au
|
||
|
||
|
||
==[Subscribing]================================================================
|
||
|
||
_____How to subscribe to DemoNews
|
||
|
||
Mail to : listserver@unseen.aztec.co.za
|
||
Body : subscribe demuan-list [first_name] [last_name]
|
||
|
||
The listserver will send DemoNews to your e-mail's return address.
|
||
|
||
_____How to subscribe to Music Contest 4 Updates
|
||
|
||
Mail to : listserver@unseen.aztec.co.za
|
||
Body : subscribe mc4-updates [first_name] [last_name]
|
||
|
||
_____Back Issues
|
||
|
||
Older issues of DemoNews can be located under /demos/hornet/demonews
|
||
Newly released issues of DemoNews are posted to /demos/incoming/news
|
||
|
||
|
||
==[Closing]====================================================================
|
||
|
||
For questions and comments, you can contact us at r3cgm@cdrom.com
|
||
Your mail will be forwarded to the appropriate individual.
|
||
|
||
|
||
...........................................................End.of.DemoNews.123.
|
||
|