| ofs | hex dump | ascii |
|---|
| 0000 | 4e 75 6c 6c 73 6f 66 74 20 41 56 53 20 50 72 65 73 65 74 20 30 2e 32 1a 01 15 00 00 00 7e 09 00 | Nullsoft.AVS.Preset.0.2......~.. |
| 0020 | 00 7a 09 00 00 20 20 5f 5f 5f 5f 5f 5f 5f 5f 5f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .z....._________................ |
| 0040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 28 20 | ..............................(. |
| 0060 | 20 20 20 20 20 20 20 5f 5f 5f 5f 5f 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......._____)................... |
| 0080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 | ................................ |
| 00a0 | 20 5c 20 20 20 20 20 28 20 69 6e 61 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5f | .\.....(.inal.................._ |
| 00c0 | 5f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 | _..............................D |
| 00e0 | 6f 6e 27 74 20 54 72 69 70 0d 0a 20 20 20 20 5c 20 20 20 20 af af af af 5c 20 20 20 20 20 5f 20 | on't.Trip......\........\....._. |
| 0100 | 20 20 20 20 20 2f 20 20 20 20 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...../....)..................... |
| 0120 | 20 20 20 20 20 20 20 20 61 6e 64 20 44 72 69 76 65 0d 0a 20 20 20 20 20 20 5c 20 20 20 7c af 5c | ........and.Drive........\...|.\ |
| 0140 | 20 20 20 20 5c 5f 2f 20 20 5c 5f 2f 20 20 20 20 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....\_/..\_/..../............... |
| 0160 | 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 5c 2f 20 20 20 20 5c 20 20 20 | ......................\/....\... |
| 0180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ............../................. |
| 01a0 | 20 20 20 20 20 20 20 20 20 20 20 62 79 20 53 74 65 76 65 6e 20 57 69 74 74 65 6e 73 0d 0a 20 20 | ...........by.Steven.Wittens.... |
| 01c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 5f 5f 2f 5e 5c 5f 5f 2f 20 68 61 63 6b 20 20 20 | ...............\__/^\__/.hack... |
| 01e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6b 61 20 55 6e 43 6f 6e 65 44 | .....................aka.UnConeD |
| 0200 | 0d 0a 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f | ..______________________________ |
| 0220 | 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 0d 0a 20 20 af af af af | ________________________........ |
| 0240 | af af af af af af af af af af af af af af af af af af af af af af af af af af af af af af af af | ................................ |
| 0260 | af af af af af af af af af af af af af af af af 0d 0a 20 49 6e 73 74 72 75 63 74 69 6f 6e 73 3a | ...................Instructions: |
| 0280 | 20 63 6c 69 63 6b 20 61 6e 64 20 68 6f 6c 64 20 74 68 65 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e | .click.and.hold.the.mouse.button |
| 02a0 | 20 6f 6e 20 74 68 65 20 77 69 6e 64 6f 77 20 74 6f 20 73 74 65 65 72 20 74 68 65 20 63 61 72 2e | .on.the.window.to.steer.the.car. |
| 02c0 | 20 48 6f 72 69 7a 6f 6e 74 61 6c 20 6d 6f 76 65 6d 65 6e 74 20 63 6f 6e 74 72 6f 6c 73 20 74 75 | .Horizontal.movement.controls.tu |
| 02e0 | 72 6e 69 6e 67 2c 20 77 68 69 6c 65 20 76 65 72 74 69 63 61 6c 20 6d 6f 76 65 6d 65 6e 74 20 63 | rning,.while.vertical.movement.c |
| 0300 | 6f 6e 74 72 6f 6c 73 20 73 70 65 65 64 2e 0d 0a 20 20 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f | ontrols.speed.....______________ |
| 0320 | 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f | ________________________________ |
| 0340 | 5f 5f 5f 5f 5f 5f 0d 0a af af af af af af af af af af af af af af af af af af af af af af af af | ______.......................... |
| 0360 | af af af af af af af af af af af af af af af af af af af af af af af af af af af af af af 0d 0a | ................................ |
| 0380 | 49 20 77 61 73 20 6e 65 76 65 72 20 71 75 69 74 65 20 68 61 70 70 79 20 77 69 74 68 20 74 68 65 | I.was.never.quite.happy.with.the |
| 03a0 | 20 76 6f 78 65 6c 20 6c 61 6e 64 73 63 61 70 65 20 66 72 6f 6d 20 4d 69 73 73 69 6f 6e 20 74 6f | .voxel.landscape.from.Mission.to |
| 03c0 | 20 4d 61 72 73 2e 20 53 6f 20 49 20 73 74 61 72 74 65 64 20 74 6f 79 69 6e 67 20 61 72 6f 75 6e | .Mars..So.I.started.toying.aroun |
| 03e0 | 64 20 77 69 74 68 20 69 74 20 61 67 61 69 6e 2e 0d 0a 0d 0a 49 20 61 64 64 65 64 20 75 70 2f 64 | d.with.it.again.....I.added.up/d |
| 0400 | 6f 77 6e 20 72 6f 74 61 74 69 6f 6e 2c 20 77 68 69 63 68 20 69 73 20 66 61 6b 65 64 20 62 79 20 | own.rotation,.which.is.faked.by. |
| 0420 | 73 6b 65 77 69 6e 67 20 74 68 65 20 68 65 69 67 68 74 6d 61 70 2e 20 53 6f 6d 65 20 66 61 6b 65 | skewing.the.heightmap..Some.fake |
| 0440 | 20 73 68 61 64 69 6e 67 20 69 73 20 61 70 70 6c 69 65 64 20 62 79 20 64 69 66 66 65 72 65 6e 74 | .shading.is.applied.by.different |
| 0460 | 69 61 74 69 6e 67 2c 20 61 6e 64 20 73 6f 6d 65 20 62 65 61 74 2d 72 65 73 70 6f 6e 73 69 76 65 | iating,.and.some.beat-responsive |
| 0480 | 20 63 6f 6c 6f 72 63 6f 64 69 6e 67 20 61 64 64 73 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 20 | .colorcoding.adds.the.necessary. |
| 04a0 | 74 72 69 70 20 66 61 63 74 6f 72 2e 0d 0a 0d 0a 54 6f 20 6d 61 6b 65 20 74 68 69 73 20 6c 61 6e | trip.factor.....To.make.this.lan |
| 04c0 | 64 73 63 61 70 65 20 69 6e 74 65 72 65 73 74 69 6e 67 2c 20 49 20 61 64 64 65 64 20 61 20 63 61 | dscape.interesting,.I.added.a.ca |
| 04e0 | 72 20 74 68 61 74 20 64 72 69 76 65 73 20 61 72 6f 75 6e 64 2e 20 54 68 65 20 70 68 79 73 69 63 | r.that.drives.around..The.physic |
| 0500 | 73 20 61 72 65 20 6e 69 63 65 6c 79 20 73 69 6d 75 6c 61 74 65 64 20 28 74 68 6f 75 67 68 20 74 | s.are.nicely.simulated.(though.t |
| 0520 | 68 65 79 20 6c 61 63 6b 20 61 20 62 75 6e 63 68 20 6f 66 20 74 68 69 6e 67 73 2c 20 73 75 63 68 | hey.lack.a.bunch.of.things,.such |
| 0540 | 20 61 73 20 72 65 61 6c 69 73 74 69 63 20 73 6c 69 64 69 6e 67 2f 66 72 69 63 74 69 6f 6e 29 2e | .as.realistic.sliding/friction). |
| 0560 | 20 54 68 65 20 63 61 72 20 69 73 20 64 72 61 77 6e 20 6f 6e 20 74 6f 70 20 6f 66 20 74 68 65 20 | .The.car.is.drawn.on.top.of.the. |
| 0580 | 76 65 72 74 69 63 61 6c 20 6c 61 6e 64 73 63 61 70 65 20 61 73 20 61 20 72 65 67 75 6c 61 72 20 | vertical.landscape.as.a.regular. |
| 05a0 | 33 44 20 73 63 6f 70 65 2c 20 74 68 6f 75 67 68 20 77 69 74 68 20 73 6f 6d 65 20 66 61 6e 63 79 | 3D.scope,.though.with.some.fancy |
| 05c0 | 20 52 65 70 6c 61 63 65 20 62 6c 65 6e 64 69 6e 67 20 74 72 69 63 6b 73 20 74 6f 20 6d 61 6b 65 | .Replace.blending.tricks.to.make |
| 05e0 | 20 69 74 20 73 6f 6c 69 64 2e 20 53 6f 6d 65 20 65 6c 65 6d 65 6e 74 73 20 61 72 65 20 73 77 61 | .it.solid..Some.elements.are.swa |
| 0600 | 70 70 65 64 20 61 72 6f 75 6e 64 20 62 65 74 77 65 65 6e 20 73 63 6f 70 65 73 20 74 6f 20 67 65 | pped.around.between.scopes.to.ge |
| 0620 | 74 20 63 6f 72 72 65 63 74 20 64 72 61 77 69 6e 67 20 6f 72 64 65 72 2c 20 73 69 6d 69 6c 61 72 | t.correct.drawing.order,.similar |
| 0640 | 20 74 6f 20 47 6f 6c 64 69 65 2e 0d 0a 0d 0a 54 68 6f 75 67 68 20 69 74 20 64 6f 65 73 20 72 65 | .to.Goldie.....Though.it.does.re |
| 0660 | 73 70 6f 6e 64 20 74 6f 20 74 68 65 20 6d 75 73 69 63 2c 20 69 74 27 73 20 6e 6f 74 20 61 20 72 | spond.to.the.music,.it's.not.a.r |
| 0680 | 65 61 6c 20 76 69 73 75 61 6c 69 73 61 74 69 6f 6e 3a 20 74 68 6f 75 67 68 20 69 74 20 77 61 73 | eal.visualisation:.though.it.was |
| 06a0 | 6e 27 74 20 72 65 61 6c 6c 79 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 6f 6e 65 2e 20 54 6f 20 6d | n't.really.meant.to.be.one..To.m |
| 06c0 | 61 6b 65 20 69 74 20 61 74 20 6c 65 61 73 74 20 73 6f 6d 65 77 68 61 74 20 69 6e 74 65 72 65 73 | ake.it.at.least.somewhat.interes |
| 06e0 | 74 69 6e 67 2c 20 49 20 61 64 64 65 64 20 6d 6f 75 73 65 2d 63 6f 6e 74 72 6f 6c 20 74 6f 20 69 | ting,.I.added.mouse-control.to.i |
| 0700 | 74 2e 0d 0a 0d 0a 54 68 65 20 6d 65 74 65 72 20 69 73 20 6a 75 73 74 20 66 6f 72 20 73 68 6f 77 | t.....The.meter.is.just.for.show |
| 0720 | 2c 20 74 68 6f 75 67 68 20 69 74 27 73 20 73 75 70 70 6f 73 65 64 20 74 6f 20 72 65 73 65 6d 62 | ,.though.it's.supposed.to.resemb |
| 0740 | 6c 65 20 74 68 65 20 72 70 6d 20 6f 66 20 74 68 65 20 65 6e 67 69 6e 65 2e 0d 0a 0d 0a 48 61 76 | le.the.rpm.of.the.engine.....Hav |
| 0760 | 65 20 66 75 6e 2e 2e 2e 20 3a 29 0d 0a 20 20 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f | e.fun....:)...._________________ |
| 0780 | 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f | ________________________________ |
| 07a0 | 5f 5f 5f 0d 0a af af af af af af af af af af af af af af af af af af af af af af af af af af af | ___............................. |
| 07c0 | af af af af af af af af af af af af af af af af af af af af af af af af af af af 0d 0a 28 63 29 | .............................(c) |
| 07e0 | 20 53 74 65 76 65 6e 20 57 69 74 74 65 6e 73 20 2f 20 55 6e 43 6f 6e 65 44 0d 0a 73 74 65 76 65 | .Steven.Wittens./.UnConeD..steve |
| 0800 | 6e 20 40 20 61 63 6b 6f 20 64 6f 74 20 6e 65 74 20 2d 20 77 77 77 2e 61 63 6b 6f 2e 6e 65 74 0d | n.@.acko.dot.net.-.www.acko.net. |
| 0820 | 0a 0d 0a 49 66 20 79 6f 75 20 77 69 73 68 20 74 6f 20 75 73 65 20 61 6e 79 20 70 61 72 74 20 28 | ...If.you.wish.to.use.any.part.( |
| 0840 | 6f 72 20 74 68 65 20 77 68 6f 6c 65 29 20 6f 66 20 74 68 69 73 20 70 72 65 73 65 74 20 69 6e 20 | or.the.whole).of.this.preset.in. |
| 0860 | 79 6f 75 72 20 6f 77 6e 20 70 72 65 73 65 74 73 2c 20 70 61 63 6b 73 20 6f 72 20 69 6e 20 61 6e | your.own.presets,.packs.or.in.an |
| 0880 | 6f 74 68 65 72 20 6d 65 64 69 75 6d 2c 20 79 6f 75 20 6d 75 73 74 20 69 6e 63 6c 75 64 65 20 6d | other.medium,.you.must.include.m |
| 08a0 | 79 20 6e 61 6d 65 20 61 73 20 61 20 63 6c 65 61 72 20 63 72 65 64 69 74 20 72 65 66 65 72 65 6e | y.name.as.a.clear.credit.referen |
| 08c0 | 63 65 2e 20 49 6e 63 6c 75 64 69 6e 67 20 6d 79 20 63 6f 6e 74 61 63 74 20 69 6e 66 6f 72 6d 61 | ce..Including.my.contact.informa |
| 08e0 | 74 69 6f 6e 2f 77 65 62 73 69 74 65 20 61 64 64 72 65 73 73 20 69 73 20 6e 6f 74 20 72 65 71 75 | tion/website.address.is.not.requ |
| 0900 | 69 72 65 64 2c 20 62 75 74 20 61 70 70 72 65 63 69 61 74 65 64 2e 0d 0a 45 78 63 65 70 74 69 6f | ired,.but.appreciated...Exceptio |
| 0920 | 6e 20 74 6f 20 74 68 65 20 61 62 6f 76 65 3a 20 79 6f 75 20 6d 61 79 20 64 69 73 70 6c 61 79 20 | n.to.the.above:.you.may.display. |
| 0940 | 74 68 65 73 65 20 70 72 65 73 65 74 73 20 61 73 20 61 20 70 72 6f 6a 65 63 74 69 6f 6e 20 61 74 | these.presets.as.a.projection.at |
| 0960 | 20 70 61 72 74 69 65 73 2c 20 72 61 76 65 73 20 6f 72 20 63 6c 75 62 73 20 77 69 74 68 6f 75 74 | .parties,.raves.or.clubs.without |
| 0980 | 20 63 72 65 64 69 74 20 72 65 66 65 72 65 6e 63 65 20 6f 6e 2d 73 63 72 65 65 6e 2e 0d 0a 00 24 | .credit.reference.on-screen....$ |
| 09a0 | 00 00 00 26 0b 00 00 01 00 00 00 00 f7 08 00 00 6d 64 3d 62 61 6e 64 28 67 65 74 6b 62 6d 6f 75 | ...&............md=band(getkbmou |
| 09c0 | 73 65 28 33 29 2c 62 61 6e 64 28 62 65 6c 6f 77 28 61 62 73 28 67 65 74 6b 62 6d 6f 75 73 65 28 | se(3),band(below(abs(getkbmouse( |
| 09e0 | 32 29 29 2c 31 29 2c 62 65 6c 6f 77 28 61 62 73 28 67 65 74 6b 62 6d 6f 75 73 65 28 31 29 29 2c | 2)),1),below(abs(getkbmouse(1)), |
| 0a00 | 31 29 29 29 3b 0d 0a 65 76 74 3d 69 66 28 6d 64 2c 2e 34 2c 65 76 74 29 3b 0d 0a 7a 66 74 3d 69 | 1)));..evt=if(md,.4,evt);..zft=i |
| 0a20 | 66 28 6d 64 2c 31 2e 31 2c 7a 66 74 29 3b 0d 0a 73 70 64 3d 69 66 28 6d 64 2c 73 70 64 2a 2e 37 | f(md,1.1,zft);..spd=if(md,spd*.7 |
| 0a40 | 2b 2e 35 2a 28 2d 67 65 74 6b 62 6d 6f 75 73 65 28 32 29 2a 2e 35 2b 2e 35 31 29 2c 73 70 64 2a | +.5*(-getkbmouse(2)*.5+.51),spd* |
| 0a60 | 2e 39 2b 28 67 65 74 73 70 65 63 28 30 2c 30 2e 32 2c 30 29 2a 2e 34 2b 2e 30 31 29 29 3b 0d 0a | .9+(getspec(0,0.2,0)*.4+.01));.. |
| 0a80 | 64 64 72 3d 69 66 28 66 6c 79 2c 64 64 72 2c 64 64 72 2a 2e 39 29 3b 0d 0a 78 31 3d 66 78 3b 7a | ddr=if(fly,ddr,ddr*.9);..x1=fx;z |
| 0aa0 | 31 3d 66 7a 3b 0d 0a 64 72 3d 69 66 28 6d 64 2c 64 72 2a 2e 37 2d 2e 30 33 2a 67 65 74 6b 62 6d | 1=fz;..dr=if(md,dr*.7-.03*getkbm |
| 0ac0 | 6f 75 73 65 28 31 29 2a 73 71 72 74 28 73 71 72 74 28 73 70 64 29 29 2c 69 66 28 66 6c 79 2c 64 | ouse(1)*sqrt(sqrt(spd)),if(fly,d |
| 0ae0 | 72 2c 64 72 2a 2e 39 2b 64 64 72 2a 2e 31 29 29 3b 0d 0a 66 78 3d 66 78 2b 76 78 2a 2e 31 32 3b | r,dr*.9+ddr*.1));..fx=fx+vx*.12; |
| 0b00 | 66 7a 3d 66 7a 2b 76 7a 2a 2e 31 32 3b 0d 0a 0d 0a 61 78 3d 2d 76 7a 3b 61 7a 3d 76 78 3b 76 78 | fz=fz+vz*.12;....ax=-vz;az=vx;vx |
| 0b20 | 3d 76 78 2b 61 78 2a 64 72 3b 76 7a 3d 76 7a 2b 61 7a 2a 64 72 3b 0d 0a 76 78 3d 76 78 2a 2e 39 | =vx+ax*dr;vz=vz+az*dr;..vx=vx*.9 |
| 0b40 | 37 35 3b 76 7a 3d 76 7a 2a 2e 39 37 35 3b 0d 0a 0d 0a 64 63 3d 69 66 28 6d 64 2c 2e 31 2c 6d 69 | 75;vz=vz*.975;....dc=if(md,.1,mi |
| 0b60 | 6e 28 31 2c 73 71 72 74 28 61 74 61 6e 32 28 63 76 7a 2c 63 76 78 29 2d 61 74 61 6e 32 28 76 7a | n(1,sqrt(atan2(cvz,cvx)-atan2(vz |
| 0b80 | 2c 76 78 29 29 2a 2e 30 35 29 29 3b 0d 0a 63 76 78 3d 63 76 78 2b 28 76 78 2d 63 76 78 29 2a 64 | ,vx))*.05));..cvx=cvx+(vx-cvx)*d |
| 0ba0 | 63 3b 63 76 7a 3d 63 76 7a 2b 28 76 7a 2d 63 76 7a 29 2a 64 63 3b 0d 0a 61 64 3d 2e 31 2a 69 6e | c;cvz=cvz+(vz-cvz)*dc;..ad=.1*in |
| 0bc0 | 76 73 71 72 74 28 73 71 72 28 61 78 29 2b 73 71 72 28 61 7a 29 29 3b 61 61 78 3d 61 78 2a 61 64 | vsqrt(sqr(ax)+sqr(az));aax=ax*ad |
| 0be0 | 3b 61 61 7a 3d 61 7a 2a 61 64 3b 0d 0a 0d 0a 78 31 3d 78 31 2b 61 61 78 3b 7a 31 3d 7a 31 2b 61 | ;aaz=az*ad;....x1=x1+aax;z1=z1+a |
| 0c00 | 61 7a 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 | az;..py=(sin(x1*0.37+1)*sin(z1*0 |
| 0c20 | 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 | .4333-c1*71)..+sin(x1*.4-c2*3)*s |
| 0c40 | 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e | in(z1*.6+cos(z1)+sin(c2*5)*20)*. |
| 0c60 | 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 | 6..+sin(x1*0.419+c2*10+1.5)*sin( |
| 0c80 | 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 | z1*0.1333+c1*20)*.4..+sin(x1*0.5 |
| 0ca0 | 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 | 97+2+c1*17+sin(x1*.71+c2*81-c1*4 |
| 0cc0 | 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 | 5.1-sin(x1*.7)*1.3)*.5)*sin(z1*0 |
| 0ce0 | 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a | .754+cos(z1*0.8+1+c2*12.5))*.2.. |
| 0d00 | 29 2a 2e 38 3b 0d 0a 78 31 3d 78 31 2d 61 61 78 2a 32 3b 7a 31 3d 7a 31 2d 61 61 7a 2a 32 3b 0d | )*.8;..x1=x1-aax*2;z1=z1-aaz*2;. |
| 0d20 | 0a 70 64 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 | .pdy=(sin(x1*0.37+1)*sin(z1*0.43 |
| 0d40 | 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 | 33-c1*71)..+sin(x1*.4-c2*3)*sin( |
| 0d60 | 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a | z1*.6+cos(z1)+sin(c2*5)*20)*.6.. |
| 0d80 | 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a | +sin(x1*0.419+c2*10+1.5)*sin(z1* |
| 0da0 | 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b | 0.1333+c1*20)*.4..+sin(x1*0.597+ |
| 0dc0 | 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 | 2+c1*17+sin(x1*.71+c2*81-c1*45.1 |
| 0de0 | 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 | -sin(x1*.7)*1.3)*.5)*sin(z1*0.75 |
| 0e00 | 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e | 4+cos(z1*0.8+1+c2*12.5))*.2..)*. |
| 0e20 | 38 3b 70 72 61 3d 2d 61 74 61 6e 32 28 70 64 79 2d 70 79 2c 2e 32 29 3b 0d 0a 0d 0a 78 31 3d 78 | 8;pra=-atan2(pdy-py,.2);....x1=x |
| 0e40 | 31 2b 61 61 78 3b 7a 31 3d 7a 31 2b 61 61 7a 3b 0d 0a 66 6c 79 3d 62 6e 6f 74 28 62 65 6c 6f 77 | 1+aax;z1=z1+aaz;..fly=bnot(below |
| 0e60 | 28 66 79 2b 67 72 61 76 2a 32 2c 70 79 29 29 3b 0d 0a 70 72 7a 3d 69 66 28 66 6c 79 2c 70 72 7a | (fy+grav*2,py));..prz=if(fly,prz |
| 0e80 | 2b 73 69 6e 28 70 72 61 2d 70 72 7a 29 2a 2e 32 2c 70 72 7a 2d 73 69 6e 28 70 72 7a 29 2a 2e 30 | +sin(pra-prz)*.2,prz-sin(prz)*.0 |
| 0ea0 | 32 29 3b 0d 0a 76 3d 73 71 72 74 28 73 71 72 28 76 78 29 2b 73 71 72 28 76 7a 29 29 3b 0d 0a 76 | 2);..v=sqrt(sqr(vx)+sqr(vz));..v |
| 0ec0 | 79 3d 69 66 28 66 6c 79 2c 76 79 2b 67 72 61 76 2c 76 79 2a 2e 37 2b 2e 33 2a 28 66 79 2d 6c 79 | y=if(fly,vy+grav,vy*.7+.3*(fy-ly |
| 0ee0 | 29 29 3b 0d 0a 76 3d 28 76 2a 2e 39 35 2b 28 32 2a 73 70 64 2d 6d 61 78 28 30 2c 28 66 79 2d 6c | ));..v=(v*.95+(2*spd-max(0,(fy-l |
| 0f00 | 79 29 2a 76 29 29 2a 2e 30 35 29 2f 76 3b 0d 0a 76 78 3d 69 66 28 66 6c 79 2c 76 78 2a 66 72 69 | y)*v))*.05)/v;..vx=if(fly,vx*fri |
| 0f20 | 63 2c 76 78 2a 76 29 3b 0d 0a 76 7a 3d 69 66 28 66 6c 79 2c 76 7a 2a 66 72 69 63 2c 76 7a 2a 76 | c,vx*v);..vz=if(fly,vz*fric,vz*v |
| 0f40 | 29 3b 0d 0a 66 61 3d 2d 61 74 61 6e 32 28 66 7a 2d 7a 31 2c 66 78 2d 78 31 29 2b 31 2e 35 37 3b | );..fa=-atan2(fz-z1,fx-x1)+1.57; |
| 0f60 | 0d 0a 6c 79 3d 66 79 3b 0d 0a 66 79 3d 6d 61 78 28 66 79 2b 76 79 2c 70 79 29 3b 0d 0a 0d 0a 65 | ..ly=fy;..fy=max(fy+vy,py);....e |
| 0f80 | 76 73 3d 65 76 73 2a 2e 39 2b 65 76 74 2a 2e 31 3b 7a 66 73 3d 7a 66 73 2a 2e 39 2b 7a 66 74 2a | vs=evs*.9+evt*.1;zfs=zfs*.9+zft* |
| 0fa0 | 2e 31 3b 0d 0a 65 76 3d 65 76 2a 2e 39 2b 65 76 73 2a 2e 31 3b 7a 66 3d 7a 66 2a 2e 39 2b 7a 66 | .1;..ev=ev*.9+evs*.1;zf=zf*.9+zf |
| 0fc0 | 73 2a 2e 31 3b 0d 0a 65 6c 65 76 7a 3d 65 6c 65 76 7a 2a 2e 32 2d 61 74 61 6e 32 28 66 79 2d 6c | s*.1;..elevz=elevz*.2-atan2(fy-l |
| 0fe0 | 79 2b 65 76 2a 76 2a 2e 31 32 2c 76 2a 2e 31 32 29 3b 0d 0a 0d 0a 0d 0a 63 72 3d 63 6f 73 28 66 | y+ev*v*.12,v*.12);......cr=cos(f |
| 1000 | 61 29 3b 73 72 3d 73 69 6e 28 66 61 29 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 2e 31 38 3b 0d 0a | a);sr=sin(fa);af=w/h;..zi=.18;.. |
| 1020 | 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 76 79 3d 69 66 28 6d 64 2c 63 76 79 2a 2e 37 2b 66 79 | ..iw=2/w;....cvy=if(md,cvy*.7+fy |
| 1040 | 2a 2e 33 2c 63 76 79 2a 2e 39 2b 66 79 2a 2e 31 29 3b 0d 0a 72 65 67 30 30 3d 66 78 3b 72 65 67 | *.3,cvy*.9+fy*.1);..reg00=fx;reg |
| 1060 | 30 31 3d 63 76 79 2b 2e 32 35 3b 72 65 67 30 32 3d 66 7a 3b 0d 0a 72 65 67 30 33 3d 7a 66 3b 0d | 01=cvy+.25;reg02=fz;..reg03=zf;. |
| 1080 | 0a 72 65 67 30 34 3d 65 76 2a 7a 66 3b 0d 0a 72 65 67 30 35 3d 61 74 61 6e 32 28 63 76 78 2c 63 | .reg04=ev*zf;..reg05=atan2(cvx,c |
| 10a0 | 76 7a 29 3b 0d 0a 72 65 67 30 36 3d 63 6f 73 28 72 65 67 30 35 29 3b 0d 0a 72 65 67 30 37 3d 73 | vz);..reg06=cos(reg05);..reg07=s |
| 10c0 | 69 6e 28 72 65 67 30 35 29 3b 0d 0a 72 65 67 30 38 3d 7a 69 3b 0d 0a 72 65 67 32 31 3d 76 78 3b | in(reg05);..reg08=zi;..reg21=vx; |
| 10e0 | 0d 0a 72 65 67 32 32 3d 76 79 3b 0d 0a 72 65 67 32 33 3d 76 7a 3b 0d 0a 72 65 67 32 34 3d 72 65 | ..reg22=vy;..reg23=vz;..reg24=re |
| 1100 | 67 30 35 2d 66 61 3b 0d 0a 72 65 67 32 35 3d 63 6f 73 28 72 65 67 32 34 29 3b 0d 0a 72 65 67 32 | g05-fa;..reg25=cos(reg24);..reg2 |
| 1120 | 36 3d 73 69 6e 28 72 65 67 32 34 29 3b 0d 0a 72 65 67 32 37 3d 2d 65 6c 65 76 7a 3b 0d 0a 72 65 | 6=sin(reg24);..reg27=-elevz;..re |
| 1140 | 67 32 38 3d 63 6f 73 28 72 65 67 32 37 29 3b 0d 0a 72 65 67 32 39 3d 73 69 6e 28 72 65 67 32 37 | g28=cos(reg27);..reg29=sin(reg27 |
| 1160 | 29 3b 0d 0a 72 65 67 33 30 3d 66 79 2d 72 65 67 30 31 2d 2e 31 3b 0d 0a 72 65 67 33 31 3d 70 72 | );..reg30=fy-reg01-.1;..reg31=pr |
| 1180 | 7a 3b 0d 0a 72 65 67 33 32 3d 63 6f 73 28 70 72 7a 29 3b 0d 0a 72 65 67 33 33 3d 73 69 6e 28 70 | z;..reg32=cos(prz);..reg33=sin(p |
| 11a0 | 72 7a 29 3b 0d 0a 72 65 67 33 34 3d 72 65 67 33 34 2b 73 71 72 74 28 73 71 72 28 76 78 29 2b 73 | rz);..reg34=reg34+sqrt(sqr(vx)+s |
| 11c0 | 71 72 28 76 7a 29 29 3b 0d 0a 72 65 67 33 35 3d 66 79 2d 70 79 3b 0d 0a 72 65 67 31 30 3d 63 31 | qr(vz));..reg35=fy-py;..reg10=c1 |
| 11e0 | 3b 72 65 67 31 31 3d 63 32 3b 0d 0a 72 65 67 33 36 3d 64 72 2a 31 30 3b 0d 0a 66 66 79 3d 62 65 | ;reg11=c2;..reg36=dr*10;..ffy=be |
| 1200 | 6c 6f 77 28 66 66 79 2c 66 6c 79 29 2a 28 66 66 79 2a 2e 37 2b 66 6c 79 2a 2e 33 29 3b 0d 0a 72 | low(ffy,fly)*(ffy*.7+fly*.3);..r |
| 1220 | 65 67 33 37 3d 28 73 70 64 2b 66 66 79 2a 31 2e 35 2b 73 71 72 74 28 73 71 72 28 76 78 29 2b 73 | eg37=(spd+ffy*1.5+sqrt(sqr(vx)+s |
| 1240 | 71 72 28 76 7a 29 29 29 2a 2e 32 35 2b 72 65 67 33 37 2a 2e 37 35 3b 0d 0a 0d 0a 72 65 67 34 30 | qr(vz)))*.25+reg37*.75;....reg40 |
| 1260 | 3d 72 65 67 34 30 2a 2e 38 3b 74 6d 3d 67 65 74 74 69 6d 65 28 30 29 3b 0d 0a 72 65 67 34 35 3d | =reg40*.8;tm=gettime(0);..reg45= |
| 1280 | 6d 69 6e 28 31 2c 6d 61 78 28 30 2c 72 65 67 34 35 2b 28 74 6d 2d 6c 74 6d 29 2a 35 29 29 3b 6c | min(1,max(0,reg45+(tm-ltm)*5));l |
| 12a0 | 74 6d 3d 74 6d 3b 00 20 01 00 00 64 64 72 3d 28 72 61 6e 64 28 31 35 30 29 2a 2e 30 31 2b 2e 31 | tm=tm;.....ddr=(rand(150)*.01+.1 |
| 12c0 | 29 2a 28 72 61 6e 64 28 31 37 31 29 25 32 2a 32 2d 31 29 2a 2e 31 3b 0d 0a 7a 66 74 3d 72 61 6e | )*(rand(171)%2*2-1)*.1;..zft=ran |
| 12e0 | 64 28 32 30 30 29 2a 2e 30 30 38 2b 2e 37 3b 0d 0a 65 76 74 3d 72 61 6e 64 28 31 30 30 29 2a 2e | d(200)*.008+.7;..evt=rand(100)*. |
| 1300 | 30 30 33 2b 2e 32 3b 0d 0a 72 65 67 34 30 3d 33 3b 0d 0a 67 67 3d 65 71 75 61 6c 28 72 65 67 34 | 003+.2;..reg40=3;..gg=equal(reg4 |
| 1320 | 35 2c 31 29 3b 0d 0a 72 65 67 34 33 3d 69 66 28 67 67 2c 72 65 67 34 31 2c 72 65 67 34 33 29 3b | 5,1);..reg43=if(gg,reg41,reg43); |
| 1340 | 72 65 67 34 34 3d 69 66 28 67 67 2c 72 65 67 34 32 2c 72 65 67 34 34 29 3b 0d 0a 72 65 67 34 35 | reg44=if(gg,reg42,reg44);..reg45 |
| 1360 | 3d 69 66 28 67 67 2c 30 2c 72 65 67 34 35 29 3b 0d 0a 72 65 67 34 31 3d 69 66 28 67 67 2c 28 72 | =if(gg,0,reg45);..reg41=if(gg,(r |
| 1380 | 61 6e 64 28 31 30 30 30 29 2a 2e 30 30 31 2d 2e 35 29 2a 31 30 2c 72 65 67 34 31 29 3b 0d 0a 72 | and(1000)*.001-.5)*10,reg41);..r |
| 13a0 | 65 67 34 32 3d 69 66 28 67 67 2c 28 72 61 6e 64 28 31 30 30 30 29 2a 2e 30 30 31 2d 2e 35 29 2a | eg42=if(gg,(rand(1000)*.001-.5)* |
| 13c0 | 31 30 2c 72 65 67 34 32 29 3b 00 ee 00 00 00 6e 3d 30 3b 0d 0a 63 31 3d 72 61 6e 64 28 32 30 30 | 10,reg42);.....n=0;..c1=rand(200 |
| 13e0 | 29 2a 2e 30 31 36 3b 63 32 3d 72 61 6e 64 28 32 30 30 29 2a 2e 30 31 36 3b 7a 66 3d 34 3b 7a 64 | )*.016;c2=rand(200)*.016;zf=4;zd |
| 1400 | 3d 7a 66 3b 0d 0a 67 72 61 76 3d 2d 2e 30 30 39 3b 66 72 69 63 3d 31 3b 0d 0a 76 78 3d 30 3b 76 | =zf;..grav=-.009;fric=1;..vx=0;v |
| 1420 | 7a 3d 31 3b 66 79 3d 30 3b 0d 0a 63 76 78 3d 30 3b 63 76 7a 3d 31 3b 0d 0a 64 64 72 3d 28 72 61 | z=1;fy=0;..cvx=0;cvz=1;..ddr=(ra |
| 1440 | 6e 64 28 31 35 30 29 2a 2e 30 31 2b 2e 31 29 2a 28 72 61 6e 64 28 31 30 30 29 25 32 2a 32 2d 31 | nd(150)*.01+.1)*(rand(100)%2*2-1 |
| 1460 | 29 2a 2e 31 3b 0d 0a 7a 66 74 3d 72 61 6e 64 28 32 30 30 29 2a 2e 30 31 2b 2e 38 3b 7a 66 73 3d | )*.1;..zft=rand(200)*.01+.8;zfs= |
| 1480 | 7a 66 74 3b 7a 66 3d 7a 66 74 3b 0d 0a 65 76 74 3d 72 61 6e 64 28 31 30 30 29 2a 2e 30 30 33 2b | zft;zf=zft;..evt=rand(100)*.003+ |
| 14a0 | 2e 32 3b 65 76 73 3d 65 76 74 3b 65 76 3d 65 76 74 3b 0d 0a 72 65 67 33 34 3d 30 3b 00 02 00 00 | .2;evs=evt;ev=evt;..reg34=0;.... |
| 14c0 | 00 01 00 00 00 ff ff ff 00 00 00 00 00 28 00 00 00 04 00 00 00 00 00 01 80 24 00 00 00 60 05 00 | .............(...........$...`.. |
| 14e0 | 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b | ........Setup.tracer;..pz=pz+zi; |
| 1500 | 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 | px=px+dx*.04*zi;..z1=pz*cr-px*sr |
| 1520 | 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 | +fz;..x1=pz*sr+px*cr+fx;......Ca |
| 1540 | 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 | lculate.heightmap;..py=(sin(x1*0 |
| 1560 | 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 | .37+1)*sin(z1*0.4333-c1*71)..+si |
| 1580 | 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b | n(x1*.4-c2*3)*sin(z1*.6+cos(z1)+ |
| 15a0 | 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b | sin(c2*5)*20)*.6..+sin(x1*0.419+ |
| 15c0 | 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a | c2*10+1.5)*sin(z1*0.1333+c1*20)* |
| 15e0 | 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 | .4..+sin(x1*0.597+2+c1*17+sin(x1 |
| 1600 | 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e | *.71+c2*81-c1*45.1-sin(x1*.7)*1. |
| 1620 | 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 | 3)*.5)*sin(z1*0.754+cos(z1*0.8+1 |
| 1640 | 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 | +c2*12.5))*.2..)*.8-fy..;......D |
| 1660 | 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a | erivative.of.height.wrt.depth;.. |
| 1680 | 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 | lm=1-.7*(ly-py)/zi;ly=py;......C |
| 16a0 | 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 | ompare.voxels;..x=1/(pz+zf);..py |
| 16c0 | 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c | =py+pz*elevz;..ph=if(i,max(py*x, |
| 16e0 | 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d | ph),ph);......Colorcoding;..ddy= |
| 1700 | 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c | (ly+fy);lo=sin(x1*.1+reg43)*.4;l |
| 1720 | 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 | p=cos(z1*.151+reg44)*.4;..red1=( |
| 1740 | 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 | .3+ddy*.4+lo*.8+lp*.3+lp*ddy*.3) |
| 1760 | 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a | *lm;..green1=(.492-lp*.6-lo*.4)* |
| 1780 | 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a | lm;..blue1=(.31+ddy*.1+lo*.8-lp* |
| 17a0 | 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b | .3)*lm;..lo=sin(x1*.1+reg41)*.4; |
| 17c0 | 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 | lp=cos(z1*.151+reg42)*.4;..red=r |
| 17e0 | 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 | ed1+((.3+ddy*.4+lo*.8+lp*.3+lp*d |
| 1800 | 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 | dy*.3)*lm-red1)*reg45;..green=gr |
| 1820 | 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 | een1+((.492-lp*.6-lo*.4)*lm-gree |
| 1840 | 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 | n1)*reg45;..blue=blue1+((.31+ddy |
| 1860 | 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 | *.1+lo*.8-lp*.3)*lm-blue1)*reg45 |
| 1880 | 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 | ;......Project.and.add.fog;..x=s |
| 18a0 | 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 | qr(sqr(i));lm=1-x;..red=x*(.65+r |
| 18c0 | 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 | eg40*.2)+red*lm;..green=x*(.95+r |
| 18e0 | 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a | eg40*.1)+green*lm;..blue=x+blue* |
| 1900 | 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b | lm;..y=if(equal(i,1),-1,-ph*af); |
| 1920 | 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 | ..x=dx*iw+.001;......Adjust.dept |
| 1940 | 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e | h.step;..zi=if(above(i,.4),zi*1. |
| 1960 | 30 33 2c 7a 69 29 3b 00 b0 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a | 03,zi);.....fx=reg00;fy=reg01;fz |
| 1980 | 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 | =reg02;..ph=-1;ly=0;....zf=reg03 |
| 19a0 | 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 | ;..px=0;pz=-zf;..elevz=reg04;..c |
| 19c0 | 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 | r=reg06;sr=reg07;af=w/h;..zi=reg |
| 19e0 | 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 | 08*invsqrt(1+sqr(dx*.05));....iw |
| 1a00 | 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 00 00 00 00 00 | =2/w;....c1=reg10;c2=reg11;..... |
| 1a20 | 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 32 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 | ....n=50;dx=-25;................ |
| 1a40 | 00 24 00 00 00 60 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 | .$...`..........Setup.tracer;..p |
| 1a60 | 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a | z=pz+zi;px=px+dx*.04*zi;..z1=pz* |
| 1a80 | 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b | cr-px*sr+fz;..x1=pz*sr+px*cr+fx; |
| 1aa0 | 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 | ......Calculate.heightmap;..py=( |
| 1ac0 | 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a | sin(x1*0.37+1)*sin(z1*0.4333-c1* |
| 1ae0 | 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b | 71)..+sin(x1*.4-c2*3)*sin(z1*.6+ |
| 1b00 | 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 | cos(z1)+sin(c2*5)*20)*.6..+sin(x |
| 1b20 | 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 | 1*0.419+c2*10+1.5)*sin(z1*0.1333 |
| 1b40 | 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 | +c1*20)*.4..+sin(x1*0.597+2+c1*1 |
| 1b60 | 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 | 7+sin(x1*.71+c2*81-c1*45.1-sin(x |
| 1b80 | 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 | 1*.7)*1.3)*.5)*sin(z1*0.754+cos( |
| 1ba0 | 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 | z1*0.8+1+c2*12.5))*.2..)*.8-fy.. |
| 1bc0 | 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 | ;......Derivative.of.height.wrt. |
| 1be0 | 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 | depth;..lm=1-.7*(ly-py)/zi;ly=py |
| 1c00 | 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b | ;......Compare.voxels;..x=1/(pz+ |
| 1c20 | 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d | zf);..py=py+pz*elevz;..ph=if(i,m |
| 1c40 | 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e | ax(py*x,ph),ph);......Colorcodin |
| 1c60 | 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 | g;..ddy=(ly+fy);lo=sin(x1*.1+reg |
| 1c80 | 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b | 43)*.4;lp=cos(z1*.151+reg44)*.4; |
| 1ca0 | 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 | ..red1=(.3+ddy*.4+lo*.8+lp*.3+lp |
| 1cc0 | 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 | *ddy*.3)*lm;..green1=(.492-lp*.6 |
| 1ce0 | 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c | -lo*.4)*lm;..blue1=(.31+ddy*.1+l |
| 1d00 | 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 | o*.8-lp*.3)*lm;..lo=sin(x1*.1+re |
| 1d20 | 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 | g41)*.4;lp=cos(z1*.151+reg42)*.4 |
| 1d40 | 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 | ;..red=red1+((.3+ddy*.4+lo*.8+lp |
| 1d60 | 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a | *.3+lp*ddy*.3)*lm-red1)*reg45;.. |
| 1d80 | 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 | green=green1+((.492-lp*.6-lo*.4) |
| 1da0 | 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 | *lm-green1)*reg45;..blue=blue1+( |
| 1dc0 | 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 | (.31+ddy*.1+lo*.8-lp*.3)*lm-blue |
| 1de0 | 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 | 1)*reg45;......Project.and.add.f |
| 1e00 | 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d | og;..x=sqr(sqr(i));lm=1-x;..red= |
| 1e20 | 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d | x*(.65+reg40*.2)+red*lm;..green= |
| 1e40 | 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 | x*(.95+reg40*.1)+green*lm;..blue |
| 1e60 | 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c | =x+blue*lm;..y=if(equal(i,1),-1, |
| 1e80 | 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a | -ph*af);..x=dx*iw+.001;......Adj |
| 1ea0 | 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e | ust.depth.step;..zi=if(above(i,. |
| 1ec0 | 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b0 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d | 4),zi*1.03,zi);.....fx=reg00;fy= |
| 1ee0 | 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a | reg01;fz=reg02;..ph=-1;ly=0;.... |
| 1f00 | 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 | zf=reg03;..px=0;pz=-zf;..elevz=r |
| 1f20 | 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b | eg04;..cr=reg06;sr=reg07;af=w/h; |
| 1f40 | 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 | ..zi=reg08*invsqrt(1+sqr(dx*.05) |
| 1f60 | 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 | );....iw=2/w;....c1=reg10;c2=reg |
| 1f80 | 31 31 3b 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 32 34 3b 00 02 00 00 00 01 00 00 | 11;.........n=50;dx=-24;........ |
| 1fa0 | 00 ff ff ff 00 01 00 00 00 24 00 00 00 60 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 | .........$...`..........Setup.tr |
| 1fc0 | 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b | acer;..pz=pz+zi;px=px+dx*.04*zi; |
| 1fe0 | 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 | ..z1=pz*cr-px*sr+fz;..x1=pz*sr+p |
| 2000 | 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 | x*cr+fx;......Calculate.heightma |
| 2020 | 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e | p;..py=(sin(x1*0.37+1)*sin(z1*0. |
| 2040 | 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 | 4333-c1*71)..+sin(x1*.4-c2*3)*si |
| 2060 | 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 | n(z1*.6+cos(z1)+sin(c2*5)*20)*.6 |
| 2080 | 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a | ..+sin(x1*0.419+c2*10+1.5)*sin(z |
| 20a0 | 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 | 1*0.1333+c1*20)*.4..+sin(x1*0.59 |
| 20c0 | 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 | 7+2+c1*17+sin(x1*.71+c2*81-c1*45 |
| 20e0 | 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e | .1-sin(x1*.7)*1.3)*.5)*sin(z1*0. |
| 2100 | 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 | 754+cos(z1*0.8+1+c2*12.5))*.2..) |
| 2120 | 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 | *.8-fy..;......Derivative.of.hei |
| 2140 | 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f | ght.wrt.depth;..lm=1-.7*(ly-py)/ |
| 2160 | 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a | zi;ly=py;......Compare.voxels;.. |
| 2180 | 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 | x=1/(pz+zf);..py=py+pz*elevz;..p |
| 21a0 | 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f | h=if(i,max(py*x,ph),ph);......Co |
| 21c0 | 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 | lorcoding;..ddy=(ly+fy);lo=sin(x |
| 21e0 | 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 | 1*.1+reg43)*.4;lp=cos(z1*.151+re |
| 2200 | 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b | g44)*.4;..red1=(.3+ddy*.4+lo*.8+ |
| 2220 | 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 | lp*.3+lp*ddy*.3)*lm;..green1=(.4 |
| 2240 | 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b | 92-lp*.6-lo*.4)*lm;..blue1=(.31+ |
| 2260 | 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 | ddy*.1+lo*.8-lp*.3)*lm;..lo=sin( |
| 2280 | 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 | x1*.1+reg41)*.4;lp=cos(z1*.151+r |
| 22a0 | 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b | eg42)*.4;..red=red1+((.3+ddy*.4+ |
| 22c0 | 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a | lo*.8+lp*.3+lp*ddy*.3)*lm-red1)* |
| 22e0 | 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e | reg45;..green=green1+((.492-lp*. |
| 2300 | 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 | 6-lo*.4)*lm-green1)*reg45;..blue |
| 2320 | 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 | =blue1+((.31+ddy*.1+lo*.8-lp*.3) |
| 2340 | 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 | *lm-blue1)*reg45;......Project.a |
| 2360 | 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d | nd.add.fog;..x=sqr(sqr(i));lm=1- |
| 2380 | 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b | x;..red=x*(.65+reg40*.2)+red*lm; |
| 23a0 | 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c | ..green=x*(.95+reg40*.1)+green*l |
| 23c0 | 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 | m;..blue=x+blue*lm;..y=if(equal( |
| 23e0 | 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d | i,1),-1,-ph*af);..x=dx*iw+.001;. |
| 2400 | 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 | .....Adjust.depth.step;..zi=if(a |
| 2420 | 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b0 00 00 00 66 78 3d 72 | bove(i,.4),zi*1.03,zi);.....fx=r |
| 2440 | 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c | eg00;fy=reg01;fz=reg02;..ph=-1;l |
| 2460 | 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d | y=0;....zf=reg03;..px=0;pz=-zf;. |
| 2480 | 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 | .elevz=reg04;..cr=reg06;sr=reg07 |
| 24a0 | 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 | ;af=w/h;..zi=reg08*invsqrt(1+sqr |
| 24c0 | 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 | (dx*.05));....iw=2/w;....c1=reg1 |
| 24e0 | 30 3b 63 32 3d 72 65 67 31 31 3b 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 32 33 3b | 0;c2=reg11;.........n=50;dx=-23; |
| 2500 | 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 60 05 00 00 01 82 04 00 00 a3 20 | .................$...`.......... |
| 2520 | 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 | Setup.tracer;..pz=pz+zi;px=px+dx |
| 2540 | 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 | *.04*zi;..z1=pz*cr-px*sr+fz;..x1 |
| 2560 | 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 | =pz*sr+px*cr+fx;......Calculate. |
| 2580 | 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 | heightmap;..py=(sin(x1*0.37+1)*s |
| 25a0 | 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d | in(z1*0.4333-c1*71)..+sin(x1*.4- |
| 25c0 | 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 | c2*3)*sin(z1*.6+cos(z1)+sin(c2*5 |
| 25e0 | 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e | )*20)*.6..+sin(x1*0.419+c2*10+1. |
| 2600 | 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e | 5)*sin(z1*0.1333+c1*20)*.4..+sin |
| 2620 | 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a | (x1*0.597+2+c1*17+sin(x1*.71+c2* |
| 2640 | 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 | 81-c1*45.1-sin(x1*.7)*1.3)*.5)*s |
| 2660 | 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 | in(z1*0.754+cos(z1*0.8+1+c2*12.5 |
| 2680 | 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 | ))*.2..)*.8-fy..;......Derivativ |
| 26a0 | 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a | e.of.height.wrt.depth;..lm=1-.7* |
| 26c0 | 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 | (ly-py)/zi;ly=py;......Compare.v |
| 26e0 | 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 | oxels;..x=1/(pz+zf);..py=py+pz*e |
| 2700 | 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b | levz;..ph=if(i,max(py*x,ph),ph); |
| 2720 | 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b | ......Colorcoding;..ddy=(ly+fy); |
| 2740 | 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 | lo=sin(x1*.1+reg43)*.4;lp=cos(z1 |
| 2760 | 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e | *.151+reg44)*.4;..red1=(.3+ddy*. |
| 2780 | 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 | 4+lo*.8+lp*.3+lp*ddy*.3)*lm;..gr |
| 27a0 | 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 | een1=(.492-lp*.6-lo*.4)*lm;..blu |
| 27c0 | 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d | e1=(.31+ddy*.1+lo*.8-lp*.3)*lm;. |
| 27e0 | 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a | .lo=sin(x1*.1+reg41)*.4;lp=cos(z |
| 2800 | 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 | 1*.151+reg42)*.4;..red=red1+((.3 |
| 2820 | 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c | +ddy*.4+lo*.8+lp*.3+lp*ddy*.3)*l |
| 2840 | 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e | m-red1)*reg45;..green=green1+((. |
| 2860 | 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 | 492-lp*.6-lo*.4)*lm-green1)*reg4 |
| 2880 | 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e | 5;..blue=blue1+((.31+ddy*.1+lo*. |
| 28a0 | 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 | 8-lp*.3)*lm-blue1)*reg45;......P |
| 28c0 | 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 | roject.and.add.fog;..x=sqr(sqr(i |
| 28e0 | 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 | ));lm=1-x;..red=x*(.65+reg40*.2) |
| 2900 | 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 | +red*lm;..green=x*(.95+reg40*.1) |
| 2920 | 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 | +green*lm;..blue=x+blue*lm;..y=i |
| 2940 | 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 | f(equal(i,1),-1,-ph*af);..x=dx*i |
| 2960 | 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d | w+.001;......Adjust.depth.step;. |
| 2980 | 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 | .zi=if(above(i,.4),zi*1.03,zi);. |
| 29a0 | b0 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d | ....fx=reg00;fy=reg01;fz=reg02;. |
| 29c0 | 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b | .ph=-1;ly=0;....zf=reg03;..px=0; |
| 29e0 | 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b | pz=-zf;..elevz=reg04;..cr=reg06; |
| 2a00 | 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 | sr=reg07;af=w/h;..zi=reg08*invsq |
| 2a20 | 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d | rt(1+sqr(dx*.05));....iw=2/w;... |
| 2a40 | 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 | .c1=reg10;c2=reg11;.........n=50 |
| 2a60 | 3b 64 78 3d 2d 32 32 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 60 05 00 | ;dx=-22;.................$...`.. |
| 2a80 | 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b | ........Setup.tracer;..pz=pz+zi; |
| 2aa0 | 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 | px=px+dx*.04*zi;..z1=pz*cr-px*sr |
| 2ac0 | 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 | +fz;..x1=pz*sr+px*cr+fx;......Ca |
| 2ae0 | 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 | lculate.heightmap;..py=(sin(x1*0 |
| 2b00 | 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 | .37+1)*sin(z1*0.4333-c1*71)..+si |
| 2b20 | 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b | n(x1*.4-c2*3)*sin(z1*.6+cos(z1)+ |
| 2b40 | 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b | sin(c2*5)*20)*.6..+sin(x1*0.419+ |
| 2b60 | 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a | c2*10+1.5)*sin(z1*0.1333+c1*20)* |
| 2b80 | 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 | .4..+sin(x1*0.597+2+c1*17+sin(x1 |
| 2ba0 | 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e | *.71+c2*81-c1*45.1-sin(x1*.7)*1. |
| 2bc0 | 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 | 3)*.5)*sin(z1*0.754+cos(z1*0.8+1 |
| 2be0 | 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 | +c2*12.5))*.2..)*.8-fy..;......D |
| 2c00 | 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a | erivative.of.height.wrt.depth;.. |
| 2c20 | 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 | lm=1-.7*(ly-py)/zi;ly=py;......C |
| 2c40 | 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 | ompare.voxels;..x=1/(pz+zf);..py |
| 2c60 | 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c | =py+pz*elevz;..ph=if(i,max(py*x, |
| 2c80 | 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d | ph),ph);......Colorcoding;..ddy= |
| 2ca0 | 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c | (ly+fy);lo=sin(x1*.1+reg43)*.4;l |
| 2cc0 | 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 | p=cos(z1*.151+reg44)*.4;..red1=( |
| 2ce0 | 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 | .3+ddy*.4+lo*.8+lp*.3+lp*ddy*.3) |
| 2d00 | 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a | *lm;..green1=(.492-lp*.6-lo*.4)* |
| 2d20 | 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a | lm;..blue1=(.31+ddy*.1+lo*.8-lp* |
| 2d40 | 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b | .3)*lm;..lo=sin(x1*.1+reg41)*.4; |
| 2d60 | 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 | lp=cos(z1*.151+reg42)*.4;..red=r |
| 2d80 | 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 | ed1+((.3+ddy*.4+lo*.8+lp*.3+lp*d |
| 2da0 | 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 | dy*.3)*lm-red1)*reg45;..green=gr |
| 2dc0 | 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 | een1+((.492-lp*.6-lo*.4)*lm-gree |
| 2de0 | 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 | n1)*reg45;..blue=blue1+((.31+ddy |
| 2e00 | 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 | *.1+lo*.8-lp*.3)*lm-blue1)*reg45 |
| 2e20 | 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 | ;......Project.and.add.fog;..x=s |
| 2e40 | 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 | qr(sqr(i));lm=1-x;..red=x*(.65+r |
| 2e60 | 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 | eg40*.2)+red*lm;..green=x*(.95+r |
| 2e80 | 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a | eg40*.1)+green*lm;..blue=x+blue* |
| 2ea0 | 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b | lm;..y=if(equal(i,1),-1,-ph*af); |
| 2ec0 | 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 | ..x=dx*iw+.001;......Adjust.dept |
| 2ee0 | 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e | h.step;..zi=if(above(i,.4),zi*1. |
| 2f00 | 30 33 2c 7a 69 29 3b 00 b0 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a | 03,zi);.....fx=reg00;fy=reg01;fz |
| 2f20 | 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 | =reg02;..ph=-1;ly=0;....zf=reg03 |
| 2f40 | 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 | ;..px=0;pz=-zf;..elevz=reg04;..c |
| 2f60 | 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 | r=reg06;sr=reg07;af=w/h;..zi=reg |
| 2f80 | 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 | 08*invsqrt(1+sqr(dx*.05));....iw |
| 2fa0 | 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 00 00 00 00 00 | =2/w;....c1=reg10;c2=reg11;..... |
| 2fc0 | 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 32 31 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 | ....n=50;dx=-21;................ |
| 2fe0 | 00 24 00 00 00 60 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 | .$...`..........Setup.tracer;..p |
| 3000 | 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a | z=pz+zi;px=px+dx*.04*zi;..z1=pz* |
| 3020 | 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b | cr-px*sr+fz;..x1=pz*sr+px*cr+fx; |
| 3040 | 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 | ......Calculate.heightmap;..py=( |
| 3060 | 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a | sin(x1*0.37+1)*sin(z1*0.4333-c1* |
| 3080 | 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b | 71)..+sin(x1*.4-c2*3)*sin(z1*.6+ |
| 30a0 | 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 | cos(z1)+sin(c2*5)*20)*.6..+sin(x |
| 30c0 | 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 | 1*0.419+c2*10+1.5)*sin(z1*0.1333 |
| 30e0 | 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 | +c1*20)*.4..+sin(x1*0.597+2+c1*1 |
| 3100 | 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 | 7+sin(x1*.71+c2*81-c1*45.1-sin(x |
| 3120 | 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 | 1*.7)*1.3)*.5)*sin(z1*0.754+cos( |
| 3140 | 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 | z1*0.8+1+c2*12.5))*.2..)*.8-fy.. |
| 3160 | 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 | ;......Derivative.of.height.wrt. |
| 3180 | 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 | depth;..lm=1-.7*(ly-py)/zi;ly=py |
| 31a0 | 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b | ;......Compare.voxels;..x=1/(pz+ |
| 31c0 | 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d | zf);..py=py+pz*elevz;..ph=if(i,m |
| 31e0 | 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e | ax(py*x,ph),ph);......Colorcodin |
| 3200 | 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 | g;..ddy=(ly+fy);lo=sin(x1*.1+reg |
| 3220 | 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b | 43)*.4;lp=cos(z1*.151+reg44)*.4; |
| 3240 | 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 | ..red1=(.3+ddy*.4+lo*.8+lp*.3+lp |
| 3260 | 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 | *ddy*.3)*lm;..green1=(.492-lp*.6 |
| 3280 | 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c | -lo*.4)*lm;..blue1=(.31+ddy*.1+l |
| 32a0 | 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 | o*.8-lp*.3)*lm;..lo=sin(x1*.1+re |
| 32c0 | 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 | g41)*.4;lp=cos(z1*.151+reg42)*.4 |
| 32e0 | 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 | ;..red=red1+((.3+ddy*.4+lo*.8+lp |
| 3300 | 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a | *.3+lp*ddy*.3)*lm-red1)*reg45;.. |
| 3320 | 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 | green=green1+((.492-lp*.6-lo*.4) |
| 3340 | 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 | *lm-green1)*reg45;..blue=blue1+( |
| 3360 | 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 | (.31+ddy*.1+lo*.8-lp*.3)*lm-blue |
| 3380 | 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 | 1)*reg45;......Project.and.add.f |
| 33a0 | 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d | og;..x=sqr(sqr(i));lm=1-x;..red= |
| 33c0 | 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d | x*(.65+reg40*.2)+red*lm;..green= |
| 33e0 | 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 | x*(.95+reg40*.1)+green*lm;..blue |
| 3400 | 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c | =x+blue*lm;..y=if(equal(i,1),-1, |
| 3420 | 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a | -ph*af);..x=dx*iw+.001;......Adj |
| 3440 | 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e | ust.depth.step;..zi=if(above(i,. |
| 3460 | 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b0 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d | 4),zi*1.03,zi);.....fx=reg00;fy= |
| 3480 | 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a | reg01;fz=reg02;..ph=-1;ly=0;.... |
| 34a0 | 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 | zf=reg03;..px=0;pz=-zf;..elevz=r |
| 34c0 | 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b | eg04;..cr=reg06;sr=reg07;af=w/h; |
| 34e0 | 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 | ..zi=reg08*invsqrt(1+sqr(dx*.05) |
| 3500 | 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 | );....iw=2/w;....c1=reg10;c2=reg |
| 3520 | 31 31 3b 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 32 30 3b 00 02 00 00 00 01 00 00 | 11;.........n=50;dx=-20;........ |
| 3540 | 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 | .........$...b..........Setup.tr |
| 3560 | 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b | acer;..pz=pz+zi;px=px+dx*.04*zi; |
| 3580 | 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 | ..z1=pz*cr-px*sr+fz;..x1=pz*sr+p |
| 35a0 | 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 | x*cr+fx;......Calculate.heightma |
| 35c0 | 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e | p;..py=(sin(x1*0.37+1)*sin(z1*0. |
| 35e0 | 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 | 4333-c1*71)..+sin(x1*.4-c2*3)*si |
| 3600 | 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 | n(z1*.6+cos(z1)+sin(c2*5)*20)*.6 |
| 3620 | 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a | ..+sin(x1*0.419+c2*10+1.5)*sin(z |
| 3640 | 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 | 1*0.1333+c1*20)*.4..+sin(x1*0.59 |
| 3660 | 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 | 7+2+c1*17+sin(x1*.71+c2*81-c1*45 |
| 3680 | 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e | .1-sin(x1*.7)*1.3)*.5)*sin(z1*0. |
| 36a0 | 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 | 754+cos(z1*0.8+1+c2*12.5))*.2..) |
| 36c0 | 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 | *.8-fy..;......Derivative.of.hei |
| 36e0 | 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f | ght.wrt.depth;..lm=1-.7*(ly-py)/ |
| 3700 | 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a | zi;ly=py;......Compare.voxels;.. |
| 3720 | 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 | x=1/(pz+zf);..py=py+pz*elevz;..p |
| 3740 | 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f | h=if(i,max(py*x,ph),ph);......Co |
| 3760 | 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 | lorcoding;..ddy=(ly+fy);lo=sin(x |
| 3780 | 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 | 1*.1+reg43)*.4;lp=cos(z1*.151+re |
| 37a0 | 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b | g44)*.4;..red1=(.3+ddy*.4+lo*.8+ |
| 37c0 | 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 | lp*.3+lp*ddy*.3)*lm;..green1=(.4 |
| 37e0 | 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b | 92-lp*.6-lo*.4)*lm;..blue1=(.31+ |
| 3800 | 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 | ddy*.1+lo*.8-lp*.3)*lm;..lo=sin( |
| 3820 | 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 | x1*.1+reg41)*.4;lp=cos(z1*.151+r |
| 3840 | 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b | eg42)*.4;..red=red1+((.3+ddy*.4+ |
| 3860 | 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a | lo*.8+lp*.3+lp*ddy*.3)*lm-red1)* |
| 3880 | 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e | reg45;..green=green1+((.492-lp*. |
| 38a0 | 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 | 6-lo*.4)*lm-green1)*reg45;..blue |
| 38c0 | 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 | =blue1+((.31+ddy*.1+lo*.8-lp*.3) |
| 38e0 | 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 | *lm-blue1)*reg45;......Project.a |
| 3900 | 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d | nd.add.fog;..x=sqr(sqr(i));lm=1- |
| 3920 | 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b | x;..red=x*(.65+reg40*.2)+red*lm; |
| 3940 | 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c | ..green=x*(.95+reg40*.1)+green*l |
| 3960 | 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 | m;..blue=x+blue*lm;..y=if(equal( |
| 3980 | 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d | i,1),-1,-ph*af);..x=dx*iw+.001;. |
| 39a0 | 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 | .....Adjust.depth.step;..zi=if(a |
| 39c0 | 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 | bove(i,.4),zi*1.03,zi);.....fx=r |
| 39e0 | 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c | eg00;fy=reg01;fz=reg02;..ph=-1;l |
| 3a00 | 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d | y=0;....zf=reg03;..px=0;pz=-zf;. |
| 3a20 | 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 | .elevz=reg04;..cr=reg06;sr=reg07 |
| 3a40 | 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 | ;af=w/h;..zi=reg08*invsqrt(1+sqr |
| 3a60 | 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 | (dx*.05));....iw=2/w;....c1=reg1 |
| 3a80 | 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 31 | 0;c2=reg11;...........n=50;dx=-1 |
| 3aa0 | 39 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 | 9;.................$...b........ |
| 3ac0 | a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b | ..Setup.tracer;..pz=pz+zi;px=px+ |
| 3ae0 | 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a | dx*.04*zi;..z1=pz*cr-px*sr+fz;.. |
| 3b00 | 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 | x1=pz*sr+px*cr+fx;......Calculat |
| 3b20 | 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 | e.heightmap;..py=(sin(x1*0.37+1) |
| 3b40 | 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e | *sin(z1*0.4333-c1*71)..+sin(x1*. |
| 3b60 | 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 | 4-c2*3)*sin(z1*.6+cos(z1)+sin(c2 |
| 3b80 | 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b | *5)*20)*.6..+sin(x1*0.419+c2*10+ |
| 3ba0 | 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 | 1.5)*sin(z1*0.1333+c1*20)*.4..+s |
| 3bc0 | 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 | in(x1*0.597+2+c1*17+sin(x1*.71+c |
| 3be0 | 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 | 2*81-c1*45.1-sin(x1*.7)*1.3)*.5) |
| 3c00 | 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 | *sin(z1*0.754+cos(z1*0.8+1+c2*12 |
| 3c20 | 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 | .5))*.2..)*.8-fy..;......Derivat |
| 3c40 | 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e | ive.of.height.wrt.depth;..lm=1-. |
| 3c60 | 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 | 7*(ly-py)/zi;ly=py;......Compare |
| 3c80 | 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a | .voxels;..x=1/(pz+zf);..py=py+pz |
| 3ca0 | 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 | *elevz;..ph=if(i,max(py*x,ph),ph |
| 3cc0 | 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 | );......Colorcoding;..ddy=(ly+fy |
| 3ce0 | 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 | );lo=sin(x1*.1+reg43)*.4;lp=cos( |
| 3d00 | 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 | z1*.151+reg44)*.4;..red1=(.3+ddy |
| 3d20 | 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a | *.4+lo*.8+lp*.3+lp*ddy*.3)*lm;.. |
| 3d40 | 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 | green1=(.492-lp*.6-lo*.4)*lm;..b |
| 3d60 | 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d | lue1=(.31+ddy*.1+lo*.8-lp*.3)*lm |
| 3d80 | 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 | ;..lo=sin(x1*.1+reg41)*.4;lp=cos |
| 3da0 | 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 | (z1*.151+reg42)*.4;..red=red1+(( |
| 3dc0 | 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 | .3+ddy*.4+lo*.8+lp*.3+lp*ddy*.3) |
| 3de0 | 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 | *lm-red1)*reg45;..green=green1+( |
| 3e00 | 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 | (.492-lp*.6-lo*.4)*lm-green1)*re |
| 3e20 | 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f | g45;..blue=blue1+((.31+ddy*.1+lo |
| 3e40 | 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 | *.8-lp*.3)*lm-blue1)*reg45;..... |
| 3e60 | 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 | .Project.and.add.fog;..x=sqr(sqr |
| 3e80 | 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e | (i));lm=1-x;..red=x*(.65+reg40*. |
| 3ea0 | 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e | 2)+red*lm;..green=x*(.95+reg40*. |
| 3ec0 | 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 | 1)+green*lm;..blue=x+blue*lm;..y |
| 3ee0 | 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 | =if(equal(i,1),-1,-ph*af);..x=dx |
| 3f00 | 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 | *iw+.001;......Adjust.depth.step |
| 3f20 | 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 | ;..zi=if(above(i,.4),zi*1.03,zi) |
| 3f40 | 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 | ;.....fx=reg00;fy=reg01;fz=reg02 |
| 3f60 | 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d | ;..ph=-1;ly=0;....zf=reg03;..px= |
| 3f80 | 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 | 0;pz=-zf;..elevz=reg04;..cr=reg0 |
| 3fa0 | 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 | 6;sr=reg07;af=w/h;..zi=reg08*inv |
| 3fc0 | 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d | sqrt(1+sqr(dx*.05));....iw=2/w;. |
| 3fe0 | 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 | ...c1=reg10;c2=reg11;........... |
| 4000 | 6e 3d 35 30 3b 64 78 3d 2d 31 38 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 | n=50;dx=-18;.................$.. |
| 4020 | 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a | .b..........Setup.tracer;..pz=pz |
| 4040 | 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 | +zi;px=px+dx*.04*zi;..z1=pz*cr-p |
| 4060 | 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a | x*sr+fz;..x1=pz*sr+px*cr+fx;.... |
| 4080 | a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 | ..Calculate.heightmap;..py=(sin( |
| 40a0 | 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d | x1*0.37+1)*sin(z1*0.4333-c1*71). |
| 40c0 | 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 | .+sin(x1*.4-c2*3)*sin(z1*.6+cos( |
| 40e0 | 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e | z1)+sin(c2*5)*20)*.6..+sin(x1*0. |
| 4100 | 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a | 419+c2*10+1.5)*sin(z1*0.1333+c1* |
| 4120 | 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 | 20)*.4..+sin(x1*0.597+2+c1*17+si |
| 4140 | 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 | n(x1*.71+c2*81-c1*45.1-sin(x1*.7 |
| 4160 | 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 | )*1.3)*.5)*sin(z1*0.754+cos(z1*0 |
| 4180 | 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d | .8+1+c2*12.5))*.2..)*.8-fy..;... |
| 41a0 | 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 | ...Derivative.of.height.wrt.dept |
| 41c0 | 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d | h;..lm=1-.7*(ly-py)/zi;ly=py;... |
| 41e0 | 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b | ...Compare.voxels;..x=1/(pz+zf); |
| 4200 | 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 | ..py=py+pz*elevz;..ph=if(i,max(p |
| 4220 | 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a | y*x,ph),ph);......Colorcoding;.. |
| 4240 | 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a | ddy=(ly+fy);lo=sin(x1*.1+reg43)* |
| 4260 | 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 | .4;lp=cos(z1*.151+reg44)*.4;..re |
| 4280 | 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 | d1=(.3+ddy*.4+lo*.8+lp*.3+lp*ddy |
| 42a0 | 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a | *.3)*lm;..green1=(.492-lp*.6-lo* |
| 42c0 | 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 | .4)*lm;..blue1=(.31+ddy*.1+lo*.8 |
| 42e0 | 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 | -lp*.3)*lm;..lo=sin(x1*.1+reg41) |
| 4300 | 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 | *.4;lp=cos(z1*.151+reg42)*.4;..r |
| 4320 | 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b | ed=red1+((.3+ddy*.4+lo*.8+lp*.3+ |
| 4340 | 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 | lp*ddy*.3)*lm-red1)*reg45;..gree |
| 4360 | 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d | n=green1+((.492-lp*.6-lo*.4)*lm- |
| 4380 | 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 | green1)*reg45;..blue=blue1+((.31 |
| 43a0 | 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 | +ddy*.1+lo*.8-lp*.3)*lm-blue1)*r |
| 43c0 | 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d | eg45;......Project.and.add.fog;. |
| 43e0 | 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e | .x=sqr(sqr(i));lm=1-x;..red=x*(. |
| 4400 | 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e | 65+reg40*.2)+red*lm;..green=x*(. |
| 4420 | 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 | 95+reg40*.1)+green*lm;..blue=x+b |
| 4440 | 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a | lue*lm;..y=if(equal(i,1),-1,-ph* |
| 4460 | 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 | af);..x=dx*iw+.001;......Adjust. |
| 4480 | 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a | depth.step;..zi=if(above(i,.4),z |
| 44a0 | 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 | i*1.03,zi);.....fx=reg00;fy=reg0 |
| 44c0 | 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 | 1;fz=reg02;..ph=-1;ly=0;....zf=r |
| 44e0 | 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 | eg03;..px=0;pz=-zf;..elevz=reg04 |
| 4500 | 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 | ;..cr=reg06;sr=reg07;af=w/h;..zi |
| 4520 | 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a | =reg08*invsqrt(1+sqr(dx*.05));.. |
| 4540 | 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d | ..iw=2/w;....c1=reg10;c2=reg11;. |
| 4560 | 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 31 37 3b 00 02 00 00 00 01 00 00 00 ff | ..........n=50;dx=-17;.......... |
| 4580 | ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 | .......$...b..........Setup.trac |
| 45a0 | 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a | er;..pz=pz+zi;px=px+dx*.04*zi;.. |
| 45c0 | 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a | z1=pz*cr-px*sr+fz;..x1=pz*sr+px* |
| 45e0 | 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b | cr+fx;......Calculate.heightmap; |
| 4600 | 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 | ..py=(sin(x1*0.37+1)*sin(z1*0.43 |
| 4620 | 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 | 33-c1*71)..+sin(x1*.4-c2*3)*sin( |
| 4640 | 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a | z1*.6+cos(z1)+sin(c2*5)*20)*.6.. |
| 4660 | 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a | +sin(x1*0.419+c2*10+1.5)*sin(z1* |
| 4680 | 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b | 0.1333+c1*20)*.4..+sin(x1*0.597+ |
| 46a0 | 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 | 2+c1*17+sin(x1*.71+c2*81-c1*45.1 |
| 46c0 | 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 | -sin(x1*.7)*1.3)*.5)*sin(z1*0.75 |
| 46e0 | 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e | 4+cos(z1*0.8+1+c2*12.5))*.2..)*. |
| 4700 | 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 | 8-fy..;......Derivative.of.heigh |
| 4720 | 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 | t.wrt.depth;..lm=1-.7*(ly-py)/zi |
| 4740 | 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d | ;ly=py;......Compare.voxels;..x= |
| 4760 | 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d | 1/(pz+zf);..py=py+pz*elevz;..ph= |
| 4780 | 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f | if(i,max(py*x,ph),ph);......Colo |
| 47a0 | 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a | rcoding;..ddy=(ly+fy);lo=sin(x1* |
| 47c0 | 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 | .1+reg43)*.4;lp=cos(z1*.151+reg4 |
| 47e0 | 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 | 4)*.4;..red1=(.3+ddy*.4+lo*.8+lp |
| 4800 | 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 | *.3+lp*ddy*.3)*lm;..green1=(.492 |
| 4820 | 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 | -lp*.6-lo*.4)*lm;..blue1=(.31+dd |
| 4840 | 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 | y*.1+lo*.8-lp*.3)*lm;..lo=sin(x1 |
| 4860 | 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 | *.1+reg41)*.4;lp=cos(z1*.151+reg |
| 4880 | 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f | 42)*.4;..red=red1+((.3+ddy*.4+lo |
| 48a0 | 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 | *.8+lp*.3+lp*ddy*.3)*lm-red1)*re |
| 48c0 | 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d | g45;..green=green1+((.492-lp*.6- |
| 48e0 | 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 | lo*.4)*lm-green1)*reg45;..blue=b |
| 4900 | 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c | lue1+((.31+ddy*.1+lo*.8-lp*.3)*l |
| 4920 | 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 | m-blue1)*reg45;......Project.and |
| 4940 | 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b | .add.fog;..x=sqr(sqr(i));lm=1-x; |
| 4960 | 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a | ..red=x*(.65+reg40*.2)+red*lm;.. |
| 4980 | 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b | green=x*(.95+reg40*.1)+green*lm; |
| 49a0 | 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c | ..blue=x+blue*lm;..y=if(equal(i, |
| 49c0 | 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d | 1),-1,-ph*af);..x=dx*iw+.001;... |
| 49e0 | 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f | ...Adjust.depth.step;..zi=if(abo |
| 4a00 | 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 | ve(i,.4),zi*1.03,zi);.....fx=reg |
| 4a20 | 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d | 00;fy=reg01;fz=reg02;..ph=-1;ly= |
| 4a40 | 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 | 0;....zf=reg03;..px=0;pz=-zf;..e |
| 4a60 | 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 | levz=reg04;..cr=reg06;sr=reg07;a |
| 4a80 | 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 | f=w/h;..zi=reg08*invsqrt(1+sqr(d |
| 4aa0 | 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b | x*.05));....iw=2/w;....c1=reg10; |
| 4ac0 | 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 31 36 3b | c2=reg11;...........n=50;dx=-16; |
| 4ae0 | 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 | .................$...b.......... |
| 4b00 | 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 | Setup.tracer;..pz=pz+zi;px=px+dx |
| 4b20 | 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 | *.04*zi;..z1=pz*cr-px*sr+fz;..x1 |
| 4b40 | 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 | =pz*sr+px*cr+fx;......Calculate. |
| 4b60 | 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 | heightmap;..py=(sin(x1*0.37+1)*s |
| 4b80 | 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d | in(z1*0.4333-c1*71)..+sin(x1*.4- |
| 4ba0 | 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 | c2*3)*sin(z1*.6+cos(z1)+sin(c2*5 |
| 4bc0 | 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e | )*20)*.6..+sin(x1*0.419+c2*10+1. |
| 4be0 | 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e | 5)*sin(z1*0.1333+c1*20)*.4..+sin |
| 4c00 | 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a | (x1*0.597+2+c1*17+sin(x1*.71+c2* |
| 4c20 | 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 | 81-c1*45.1-sin(x1*.7)*1.3)*.5)*s |
| 4c40 | 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 | in(z1*0.754+cos(z1*0.8+1+c2*12.5 |
| 4c60 | 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 | ))*.2..)*.8-fy..;......Derivativ |
| 4c80 | 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a | e.of.height.wrt.depth;..lm=1-.7* |
| 4ca0 | 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 | (ly-py)/zi;ly=py;......Compare.v |
| 4cc0 | 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 | oxels;..x=1/(pz+zf);..py=py+pz*e |
| 4ce0 | 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b | levz;..ph=if(i,max(py*x,ph),ph); |
| 4d00 | 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b | ......Colorcoding;..ddy=(ly+fy); |
| 4d20 | 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 | lo=sin(x1*.1+reg43)*.4;lp=cos(z1 |
| 4d40 | 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e | *.151+reg44)*.4;..red1=(.3+ddy*. |
| 4d60 | 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 | 4+lo*.8+lp*.3+lp*ddy*.3)*lm;..gr |
| 4d80 | 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 | een1=(.492-lp*.6-lo*.4)*lm;..blu |
| 4da0 | 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d | e1=(.31+ddy*.1+lo*.8-lp*.3)*lm;. |
| 4dc0 | 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a | .lo=sin(x1*.1+reg41)*.4;lp=cos(z |
| 4de0 | 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 | 1*.151+reg42)*.4;..red=red1+((.3 |
| 4e00 | 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c | +ddy*.4+lo*.8+lp*.3+lp*ddy*.3)*l |
| 4e20 | 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e | m-red1)*reg45;..green=green1+((. |
| 4e40 | 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 | 492-lp*.6-lo*.4)*lm-green1)*reg4 |
| 4e60 | 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e | 5;..blue=blue1+((.31+ddy*.1+lo*. |
| 4e80 | 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 | 8-lp*.3)*lm-blue1)*reg45;......P |
| 4ea0 | 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 | roject.and.add.fog;..x=sqr(sqr(i |
| 4ec0 | 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 | ));lm=1-x;..red=x*(.65+reg40*.2) |
| 4ee0 | 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 | +red*lm;..green=x*(.95+reg40*.1) |
| 4f00 | 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 | +green*lm;..blue=x+blue*lm;..y=i |
| 4f20 | 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 | f(equal(i,1),-1,-ph*af);..x=dx*i |
| 4f40 | 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d | w+.001;......Adjust.depth.step;. |
| 4f60 | 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 | .zi=if(above(i,.4),zi*1.03,zi);. |
| 4f80 | b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d | ....fx=reg00;fy=reg01;fz=reg02;. |
| 4fa0 | 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b | .ph=-1;ly=0;....zf=reg03;..px=0; |
| 4fc0 | 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b | pz=-zf;..elevz=reg04;..cr=reg06; |
| 4fe0 | 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 | sr=reg07;af=w/h;..zi=reg08*invsq |
| 5000 | 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d | rt(1+sqr(dx*.05));....iw=2/w;... |
| 5020 | 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d | .c1=reg10;c2=reg11;...........n= |
| 5040 | 35 30 3b 64 78 3d 2d 31 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 | 50;dx=-15;.................$...b |
| 5060 | 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a | ..........Setup.tracer;..pz=pz+z |
| 5080 | 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a | i;px=px+dx*.04*zi;..z1=pz*cr-px* |
| 50a0 | 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 | sr+fz;..x1=pz*sr+px*cr+fx;...... |
| 50c0 | 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 | Calculate.heightmap;..py=(sin(x1 |
| 50e0 | 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b | *0.37+1)*sin(z1*0.4333-c1*71)..+ |
| 5100 | 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 | sin(x1*.4-c2*3)*sin(z1*.6+cos(z1 |
| 5120 | 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 | )+sin(c2*5)*20)*.6..+sin(x1*0.41 |
| 5140 | 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 | 9+c2*10+1.5)*sin(z1*0.1333+c1*20 |
| 5160 | 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 | )*.4..+sin(x1*0.597+2+c1*17+sin( |
| 5180 | 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a | x1*.71+c2*81-c1*45.1-sin(x1*.7)* |
| 51a0 | 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 | 1.3)*.5)*sin(z1*0.754+cos(z1*0.8 |
| 51c0 | 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 | +1+c2*12.5))*.2..)*.8-fy..;..... |
| 51e0 | 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b | .Derivative.of.height.wrt.depth; |
| 5200 | 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 | ..lm=1-.7*(ly-py)/zi;ly=py;..... |
| 5220 | 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a | .Compare.voxels;..x=1/(pz+zf);.. |
| 5240 | 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a | py=py+pz*elevz;..ph=if(i,max(py* |
| 5260 | 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 | x,ph),ph);......Colorcoding;..dd |
| 5280 | 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 | y=(ly+fy);lo=sin(x1*.1+reg43)*.4 |
| 52a0 | 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 | ;lp=cos(z1*.151+reg44)*.4;..red1 |
| 52c0 | 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e | =(.3+ddy*.4+lo*.8+lp*.3+lp*ddy*. |
| 52e0 | 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 | 3)*lm;..green1=(.492-lp*.6-lo*.4 |
| 5300 | 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c | )*lm;..blue1=(.31+ddy*.1+lo*.8-l |
| 5320 | 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e | p*.3)*lm;..lo=sin(x1*.1+reg41)*. |
| 5340 | 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 | 4;lp=cos(z1*.151+reg42)*.4;..red |
| 5360 | 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 | =red1+((.3+ddy*.4+lo*.8+lp*.3+lp |
| 5380 | 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d | *ddy*.3)*lm-red1)*reg45;..green= |
| 53a0 | 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 | green1+((.492-lp*.6-lo*.4)*lm-gr |
| 53c0 | 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 | een1)*reg45;..blue=blue1+((.31+d |
| 53e0 | 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 | dy*.1+lo*.8-lp*.3)*lm-blue1)*reg |
| 5400 | 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 | 45;......Project.and.add.fog;..x |
| 5420 | 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 | =sqr(sqr(i));lm=1-x;..red=x*(.65 |
| 5440 | 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 | +reg40*.2)+red*lm;..green=x*(.95 |
| 5460 | 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 | +reg40*.1)+green*lm;..blue=x+blu |
| 5480 | 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 | e*lm;..y=if(equal(i,1),-1,-ph*af |
| 54a0 | 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 | );..x=dx*iw+.001;......Adjust.de |
| 54c0 | 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a | pth.step;..zi=if(above(i,.4),zi* |
| 54e0 | 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b | 1.03,zi);.....fx=reg00;fy=reg01; |
| 5500 | 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 | fz=reg02;..ph=-1;ly=0;....zf=reg |
| 5520 | 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d | 03;..px=0;pz=-zf;..elevz=reg04;. |
| 5540 | 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 | .cr=reg06;sr=reg07;af=w/h;..zi=r |
| 5560 | 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a | eg08*invsqrt(1+sqr(dx*.05));.... |
| 5580 | 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 | iw=2/w;....c1=reg10;c2=reg11;... |
| 55a0 | 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 31 34 3b 00 02 00 00 00 01 00 00 00 ff ff ff | ........n=50;dx=-14;............ |
| 55c0 | 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 | .....$...b..........Setup.tracer |
| 55e0 | 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 | ;..pz=pz+zi;px=px+dx*.04*zi;..z1 |
| 5600 | 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 | =pz*cr-px*sr+fz;..x1=pz*sr+px*cr |
| 5620 | 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a | +fx;......Calculate.heightmap;.. |
| 5640 | 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 | py=(sin(x1*0.37+1)*sin(z1*0.4333 |
| 5660 | 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 | -c1*71)..+sin(x1*.4-c2*3)*sin(z1 |
| 5680 | 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 | *.6+cos(z1)+sin(c2*5)*20)*.6..+s |
| 56a0 | 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e | in(x1*0.419+c2*10+1.5)*sin(z1*0. |
| 56c0 | 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b | 1333+c1*20)*.4..+sin(x1*0.597+2+ |
| 56e0 | 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 | c1*17+sin(x1*.71+c2*81-c1*45.1-s |
| 5700 | 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b | in(x1*.7)*1.3)*.5)*sin(z1*0.754+ |
| 5720 | 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d | cos(z1*0.8+1+c2*12.5))*.2..)*.8- |
| 5740 | 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 | fy..;......Derivative.of.height. |
| 5760 | 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c | wrt.depth;..lm=1-.7*(ly-py)/zi;l |
| 5780 | 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f | y=py;......Compare.voxels;..x=1/ |
| 57a0 | 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 | (pz+zf);..py=py+pz*elevz;..ph=if |
| 57c0 | 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 | (i,max(py*x,ph),ph);......Colorc |
| 57e0 | 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 | oding;..ddy=(ly+fy);lo=sin(x1*.1 |
| 5800 | 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 | +reg43)*.4;lp=cos(z1*.151+reg44) |
| 5820 | 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e | *.4;..red1=(.3+ddy*.4+lo*.8+lp*. |
| 5840 | 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c | 3+lp*ddy*.3)*lm;..green1=(.492-l |
| 5860 | 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a | p*.6-lo*.4)*lm;..blue1=(.31+ddy* |
| 5880 | 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e | .1+lo*.8-lp*.3)*lm;..lo=sin(x1*. |
| 58a0 | 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 | 1+reg41)*.4;lp=cos(z1*.151+reg42 |
| 58c0 | 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e | )*.4;..red=red1+((.3+ddy*.4+lo*. |
| 58e0 | 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 | 8+lp*.3+lp*ddy*.3)*lm-red1)*reg4 |
| 5900 | 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f | 5;..green=green1+((.492-lp*.6-lo |
| 5920 | 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 | *.4)*lm-green1)*reg45;..blue=blu |
| 5940 | 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d | e1+((.31+ddy*.1+lo*.8-lp*.3)*lm- |
| 5960 | 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 | blue1)*reg45;......Project.and.a |
| 5980 | 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a | dd.fog;..x=sqr(sqr(i));lm=1-x;.. |
| 59a0 | 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 | red=x*(.65+reg40*.2)+red*lm;..gr |
| 59c0 | 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a | een=x*(.95+reg40*.1)+green*lm;.. |
| 59e0 | 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 | blue=x+blue*lm;..y=if(equal(i,1) |
| 5a00 | 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 | ,-1,-ph*af);..x=dx*iw+.001;..... |
| 5a20 | 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 | .Adjust.depth.step;..zi=if(above |
| 5a40 | 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 | (i,.4),zi*1.03,zi);.....fx=reg00 |
| 5a60 | 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b | ;fy=reg01;fz=reg02;..ph=-1;ly=0; |
| 5a80 | 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 | ....zf=reg03;..px=0;pz=-zf;..ele |
| 5aa0 | 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d | vz=reg04;..cr=reg06;sr=reg07;af= |
| 5ac0 | 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a | w/h;..zi=reg08*invsqrt(1+sqr(dx* |
| 5ae0 | 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 | .05));....iw=2/w;....c1=reg10;c2 |
| 5b00 | 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 31 33 3b 00 02 | =reg11;...........n=50;dx=-13;.. |
| 5b20 | 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 | ...............$...b..........Se |
| 5b40 | 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e | tup.tracer;..pz=pz+zi;px=px+dx*. |
| 5b60 | 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 | 04*zi;..z1=pz*cr-px*sr+fz;..x1=p |
| 5b80 | 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 | z*sr+px*cr+fx;......Calculate.he |
| 5ba0 | 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e | ightmap;..py=(sin(x1*0.37+1)*sin |
| 5bc0 | 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 | (z1*0.4333-c1*71)..+sin(x1*.4-c2 |
| 5be0 | 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a | *3)*sin(z1*.6+cos(z1)+sin(c2*5)* |
| 5c00 | 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 | 20)*.6..+sin(x1*0.419+c2*10+1.5) |
| 5c20 | 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 | *sin(z1*0.1333+c1*20)*.4..+sin(x |
| 5c40 | 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 | 1*0.597+2+c1*17+sin(x1*.71+c2*81 |
| 5c60 | 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e | -c1*45.1-sin(x1*.7)*1.3)*.5)*sin |
| 5c80 | 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 | (z1*0.754+cos(z1*0.8+1+c2*12.5)) |
| 5ca0 | 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 | *.2..)*.8-fy..;......Derivative. |
| 5cc0 | 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c | of.height.wrt.depth;..lm=1-.7*(l |
| 5ce0 | 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 | y-py)/zi;ly=py;......Compare.vox |
| 5d00 | 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 | els;..x=1/(pz+zf);..py=py+pz*ele |
| 5d20 | 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a | vz;..ph=if(i,max(py*x,ph),ph);.. |
| 5d40 | 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f | ....Colorcoding;..ddy=(ly+fy);lo |
| 5d60 | 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e | =sin(x1*.1+reg43)*.4;lp=cos(z1*. |
| 5d80 | 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b | 151+reg44)*.4;..red1=(.3+ddy*.4+ |
| 5da0 | 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 | lo*.8+lp*.3+lp*ddy*.3)*lm;..gree |
| 5dc0 | 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 | n1=(.492-lp*.6-lo*.4)*lm;..blue1 |
| 5de0 | 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c | =(.31+ddy*.1+lo*.8-lp*.3)*lm;..l |
| 5e00 | 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a | o=sin(x1*.1+reg41)*.4;lp=cos(z1* |
| 5e20 | 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 | .151+reg42)*.4;..red=red1+((.3+d |
| 5e40 | 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d | dy*.4+lo*.8+lp*.3+lp*ddy*.3)*lm- |
| 5e60 | 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 | red1)*reg45;..green=green1+((.49 |
| 5e80 | 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b | 2-lp*.6-lo*.4)*lm-green1)*reg45; |
| 5ea0 | 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d | ..blue=blue1+((.31+ddy*.1+lo*.8- |
| 5ec0 | 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f | lp*.3)*lm-blue1)*reg45;......Pro |
| 5ee0 | 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 | ject.and.add.fog;..x=sqr(sqr(i)) |
| 5f00 | 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 | ;lm=1-x;..red=x*(.65+reg40*.2)+r |
| 5f20 | 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 | ed*lm;..green=x*(.95+reg40*.1)+g |
| 5f40 | 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 | reen*lm;..blue=x+blue*lm;..y=if( |
| 5f60 | 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b | equal(i,1),-1,-ph*af);..x=dx*iw+ |
| 5f80 | 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a | .001;......Adjust.depth.step;..z |
| 5fa0 | 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 | i=if(above(i,.4),zi*1.03,zi);... |
| 5fc0 | 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 | ..fx=reg00;fy=reg01;fz=reg02;..p |
| 5fe0 | 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a | h=-1;ly=0;....zf=reg03;..px=0;pz |
| 6000 | 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 | =-zf;..elevz=reg04;..cr=reg06;sr |
| 6020 | 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 | =reg07;af=w/h;..zi=reg08*invsqrt |
| 6040 | 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 | (1+sqr(dx*.05));....iw=2/w;....c |
| 6060 | 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 | 1=reg10;c2=reg11;...........n=50 |
| 6080 | 3b 64 78 3d 2d 31 32 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 | ;dx=-12;.................$...b.. |
| 60a0 | 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b | ........Setup.tracer;..pz=pz+zi; |
| 60c0 | 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 | px=px+dx*.04*zi;..z1=pz*cr-px*sr |
| 60e0 | 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 | +fz;..x1=pz*sr+px*cr+fx;......Ca |
| 6100 | 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 | lculate.heightmap;..py=(sin(x1*0 |
| 6120 | 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 | .37+1)*sin(z1*0.4333-c1*71)..+si |
| 6140 | 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b | n(x1*.4-c2*3)*sin(z1*.6+cos(z1)+ |
| 6160 | 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b | sin(c2*5)*20)*.6..+sin(x1*0.419+ |
| 6180 | 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a | c2*10+1.5)*sin(z1*0.1333+c1*20)* |
| 61a0 | 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 | .4..+sin(x1*0.597+2+c1*17+sin(x1 |
| 61c0 | 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e | *.71+c2*81-c1*45.1-sin(x1*.7)*1. |
| 61e0 | 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 | 3)*.5)*sin(z1*0.754+cos(z1*0.8+1 |
| 6200 | 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 | +c2*12.5))*.2..)*.8-fy..;......D |
| 6220 | 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a | erivative.of.height.wrt.depth;.. |
| 6240 | 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 | lm=1-.7*(ly-py)/zi;ly=py;......C |
| 6260 | 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 | ompare.voxels;..x=1/(pz+zf);..py |
| 6280 | 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c | =py+pz*elevz;..ph=if(i,max(py*x, |
| 62a0 | 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d | ph),ph);......Colorcoding;..ddy= |
| 62c0 | 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c | (ly+fy);lo=sin(x1*.1+reg43)*.4;l |
| 62e0 | 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 | p=cos(z1*.151+reg44)*.4;..red1=( |
| 6300 | 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 | .3+ddy*.4+lo*.8+lp*.3+lp*ddy*.3) |
| 6320 | 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a | *lm;..green1=(.492-lp*.6-lo*.4)* |
| 6340 | 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a | lm;..blue1=(.31+ddy*.1+lo*.8-lp* |
| 6360 | 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b | .3)*lm;..lo=sin(x1*.1+reg41)*.4; |
| 6380 | 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 | lp=cos(z1*.151+reg42)*.4;..red=r |
| 63a0 | 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 | ed1+((.3+ddy*.4+lo*.8+lp*.3+lp*d |
| 63c0 | 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 | dy*.3)*lm-red1)*reg45;..green=gr |
| 63e0 | 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 | een1+((.492-lp*.6-lo*.4)*lm-gree |
| 6400 | 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 | n1)*reg45;..blue=blue1+((.31+ddy |
| 6420 | 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 | *.1+lo*.8-lp*.3)*lm-blue1)*reg45 |
| 6440 | 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 | ;......Project.and.add.fog;..x=s |
| 6460 | 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 | qr(sqr(i));lm=1-x;..red=x*(.65+r |
| 6480 | 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 | eg40*.2)+red*lm;..green=x*(.95+r |
| 64a0 | 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a | eg40*.1)+green*lm;..blue=x+blue* |
| 64c0 | 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b | lm;..y=if(equal(i,1),-1,-ph*af); |
| 64e0 | 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 | ..x=dx*iw+.001;......Adjust.dept |
| 6500 | 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e | h.step;..zi=if(above(i,.4),zi*1. |
| 6520 | 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a | 03,zi);.....fx=reg00;fy=reg01;fz |
| 6540 | 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 | =reg02;..ph=-1;ly=0;....zf=reg03 |
| 6560 | 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 | ;..px=0;pz=-zf;..elevz=reg04;..c |
| 6580 | 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 | r=reg06;sr=reg07;af=w/h;..zi=reg |
| 65a0 | 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 | 08*invsqrt(1+sqr(dx*.05));....iw |
| 65c0 | 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 | =2/w;....c1=reg10;c2=reg11;..... |
| 65e0 | 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 31 31 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 | ......n=50;dx=-11;.............. |
| 6600 | 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d | ...$...b..........Setup.tracer;. |
| 6620 | 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 | .pz=pz+zi;px=px+dx*.04*zi;..z1=p |
| 6640 | 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 | z*cr-px*sr+fz;..x1=pz*sr+px*cr+f |
| 6660 | 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 | x;......Calculate.heightmap;..py |
| 6680 | 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 | =(sin(x1*0.37+1)*sin(z1*0.4333-c |
| 66a0 | 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e | 1*71)..+sin(x1*.4-c2*3)*sin(z1*. |
| 66c0 | 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e | 6+cos(z1)+sin(c2*5)*20)*.6..+sin |
| 66e0 | 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 | (x1*0.419+c2*10+1.5)*sin(z1*0.13 |
| 6700 | 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 | 33+c1*20)*.4..+sin(x1*0.597+2+c1 |
| 6720 | 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e | *17+sin(x1*.71+c2*81-c1*45.1-sin |
| 6740 | 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f | (x1*.7)*1.3)*.5)*sin(z1*0.754+co |
| 6760 | 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 | s(z1*0.8+1+c2*12.5))*.2..)*.8-fy |
| 6780 | 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 | ..;......Derivative.of.height.wr |
| 67a0 | 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d | t.depth;..lm=1-.7*(ly-py)/zi;ly= |
| 67c0 | 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 | py;......Compare.voxels;..x=1/(p |
| 67e0 | 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 | z+zf);..py=py+pz*elevz;..ph=if(i |
| 6800 | 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 | ,max(py*x,ph),ph);......Colorcod |
| 6820 | 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 | ing;..ddy=(ly+fy);lo=sin(x1*.1+r |
| 6840 | 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e | eg43)*.4;lp=cos(z1*.151+reg44)*. |
| 6860 | 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b | 4;..red1=(.3+ddy*.4+lo*.8+lp*.3+ |
| 6880 | 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a | lp*ddy*.3)*lm;..green1=(.492-lp* |
| 68a0 | 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 | .6-lo*.4)*lm;..blue1=(.31+ddy*.1 |
| 68c0 | 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b | +lo*.8-lp*.3)*lm;..lo=sin(x1*.1+ |
| 68e0 | 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a | reg41)*.4;lp=cos(z1*.151+reg42)* |
| 6900 | 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b | .4;..red=red1+((.3+ddy*.4+lo*.8+ |
| 6920 | 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b | lp*.3+lp*ddy*.3)*lm-red1)*reg45; |
| 6940 | 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e | ..green=green1+((.492-lp*.6-lo*. |
| 6960 | 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 | 4)*lm-green1)*reg45;..blue=blue1 |
| 6980 | 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c | +((.31+ddy*.1+lo*.8-lp*.3)*lm-bl |
| 69a0 | 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 | ue1)*reg45;......Project.and.add |
| 69c0 | 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 | .fog;..x=sqr(sqr(i));lm=1-x;..re |
| 69e0 | 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 | d=x*(.65+reg40*.2)+red*lm;..gree |
| 6a00 | 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c | n=x*(.95+reg40*.1)+green*lm;..bl |
| 6a20 | 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d | ue=x+blue*lm;..y=if(equal(i,1),- |
| 6a40 | 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 | 1,-ph*af);..x=dx*iw+.001;......A |
| 6a60 | 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 | djust.depth.step;..zi=if(above(i |
| 6a80 | 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 | ,.4),zi*1.03,zi);.....fx=reg00;f |
| 6aa0 | 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a | y=reg01;fz=reg02;..ph=-1;ly=0;.. |
| 6ac0 | 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a | ..zf=reg03;..px=0;pz=-zf;..elevz |
| 6ae0 | 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f | =reg04;..cr=reg06;sr=reg07;af=w/ |
| 6b00 | 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 | h;..zi=reg08*invsqrt(1+sqr(dx*.0 |
| 6b20 | 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 | 5));....iw=2/w;....c1=reg10;c2=r |
| 6b40 | 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 31 30 3b 00 02 00 00 | eg11;...........n=50;dx=-10;.... |
| 6b60 | 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 | .............$...b..........Setu |
| 6b80 | 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 | p.tracer;..pz=pz+zi;px=px+dx*.04 |
| 6ba0 | 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a | *zi;..z1=pz*cr-px*sr+fz;..x1=pz* |
| 6bc0 | 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 | sr+px*cr+fx;......Calculate.heig |
| 6be0 | 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a | htmap;..py=(sin(x1*0.37+1)*sin(z |
| 6c00 | 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 | 1*0.4333-c1*71)..+sin(x1*.4-c2*3 |
| 6c20 | 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 | )*sin(z1*.6+cos(z1)+sin(c2*5)*20 |
| 6c40 | 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 | )*.6..+sin(x1*0.419+c2*10+1.5)*s |
| 6c60 | 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a | in(z1*0.1333+c1*20)*.4..+sin(x1* |
| 6c80 | 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 | 0.597+2+c1*17+sin(x1*.71+c2*81-c |
| 6ca0 | 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a | 1*45.1-sin(x1*.7)*1.3)*.5)*sin(z |
| 6cc0 | 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e | 1*0.754+cos(z1*0.8+1+c2*12.5))*. |
| 6ce0 | 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 | 2..)*.8-fy..;......Derivative.of |
| 6d00 | 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d | .height.wrt.depth;..lm=1-.7*(ly- |
| 6d20 | 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c | py)/zi;ly=py;......Compare.voxel |
| 6d40 | 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a | s;..x=1/(pz+zf);..py=py+pz*elevz |
| 6d60 | 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a | ;..ph=if(i,max(py*x,ph),ph);.... |
| 6d80 | a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 | ..Colorcoding;..ddy=(ly+fy);lo=s |
| 6da0 | 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 | in(x1*.1+reg43)*.4;lp=cos(z1*.15 |
| 6dc0 | 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f | 1+reg44)*.4;..red1=(.3+ddy*.4+lo |
| 6de0 | 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 | *.8+lp*.3+lp*ddy*.3)*lm;..green1 |
| 6e00 | 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 | =(.492-lp*.6-lo*.4)*lm;..blue1=( |
| 6e20 | 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d | .31+ddy*.1+lo*.8-lp*.3)*lm;..lo= |
| 6e40 | 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 | sin(x1*.1+reg41)*.4;lp=cos(z1*.1 |
| 6e60 | 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 | 51+reg42)*.4;..red=red1+((.3+ddy |
| 6e80 | 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 | *.4+lo*.8+lp*.3+lp*ddy*.3)*lm-re |
| 6ea0 | 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d | d1)*reg45;..green=green1+((.492- |
| 6ec0 | 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a | lp*.6-lo*.4)*lm-green1)*reg45;.. |
| 6ee0 | 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 | blue=blue1+((.31+ddy*.1+lo*.8-lp |
| 6f00 | 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 | *.3)*lm-blue1)*reg45;......Proje |
| 6f20 | 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c | ct.and.add.fog;..x=sqr(sqr(i));l |
| 6f40 | 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 | m=1-x;..red=x*(.65+reg40*.2)+red |
| 6f60 | 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 | *lm;..green=x*(.95+reg40*.1)+gre |
| 6f80 | 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 | en*lm;..blue=x+blue*lm;..y=if(eq |
| 6fa0 | 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 | ual(i,1),-1,-ph*af);..x=dx*iw+.0 |
| 6fc0 | 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d | 01;......Adjust.depth.step;..zi= |
| 6fe0 | 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 | if(above(i,.4),zi*1.03,zi);..... |
| 7000 | 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d | fx=reg00;fy=reg01;fz=reg02;..ph= |
| 7020 | 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d | -1;ly=0;....zf=reg03;..px=0;pz=- |
| 7040 | 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 | zf;..elevz=reg04;..cr=reg06;sr=r |
| 7060 | 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 | eg07;af=w/h;..zi=reg08*invsqrt(1 |
| 7080 | 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d | +sqr(dx*.05));....iw=2/w;....c1= |
| 70a0 | 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 | reg10;c2=reg11;...........n=50;d |
| 70c0 | 78 3d 2d 30 39 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 | x=-09;.................$...b.... |
| 70e0 | 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 | ......Setup.tracer;..pz=pz+zi;px |
| 7100 | 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 | =px+dx*.04*zi;..z1=pz*cr-px*sr+f |
| 7120 | 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 | z;..x1=pz*sr+px*cr+fx;......Calc |
| 7140 | 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 | ulate.heightmap;..py=(sin(x1*0.3 |
| 7160 | 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 | 7+1)*sin(z1*0.4333-c1*71)..+sin( |
| 7180 | 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 | x1*.4-c2*3)*sin(z1*.6+cos(z1)+si |
| 71a0 | 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 | n(c2*5)*20)*.6..+sin(x1*0.419+c2 |
| 71c0 | 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 | *10+1.5)*sin(z1*0.1333+c1*20)*.4 |
| 71e0 | 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e | ..+sin(x1*0.597+2+c1*17+sin(x1*. |
| 7200 | 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 | 71+c2*81-c1*45.1-sin(x1*.7)*1.3) |
| 7220 | 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 | *.5)*sin(z1*0.754+cos(z1*0.8+1+c |
| 7240 | 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 | 2*12.5))*.2..)*.8-fy..;......Der |
| 7260 | 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d | ivative.of.height.wrt.depth;..lm |
| 7280 | 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d | =1-.7*(ly-py)/zi;ly=py;......Com |
| 72a0 | 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 | pare.voxels;..x=1/(pz+zf);..py=p |
| 72c0 | 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 | y+pz*elevz;..ph=if(i,max(py*x,ph |
| 72e0 | 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c | ),ph);......Colorcoding;..ddy=(l |
| 7300 | 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d | y+fy);lo=sin(x1*.1+reg43)*.4;lp= |
| 7320 | 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 | cos(z1*.151+reg44)*.4;..red1=(.3 |
| 7340 | 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c | +ddy*.4+lo*.8+lp*.3+lp*ddy*.3)*l |
| 7360 | 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d | m;..green1=(.492-lp*.6-lo*.4)*lm |
| 7380 | 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 | ;..blue1=(.31+ddy*.1+lo*.8-lp*.3 |
| 73a0 | 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 | )*lm;..lo=sin(x1*.1+reg41)*.4;lp |
| 73c0 | 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 | =cos(z1*.151+reg42)*.4;..red=red |
| 73e0 | 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 | 1+((.3+ddy*.4+lo*.8+lp*.3+lp*ddy |
| 7400 | 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 | *.3)*lm-red1)*reg45;..green=gree |
| 7420 | 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 | n1+((.492-lp*.6-lo*.4)*lm-green1 |
| 7440 | 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e | )*reg45;..blue=blue1+((.31+ddy*. |
| 7460 | 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d | 1+lo*.8-lp*.3)*lm-blue1)*reg45;. |
| 7480 | 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 | .....Project.and.add.fog;..x=sqr |
| 74a0 | 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 | (sqr(i));lm=1-x;..red=x*(.65+reg |
| 74c0 | 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 | 40*.2)+red*lm;..green=x*(.95+reg |
| 74e0 | 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d | 40*.1)+green*lm;..blue=x+blue*lm |
| 7500 | 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a | ;..y=if(equal(i,1),-1,-ph*af);.. |
| 7520 | 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 | x=dx*iw+.001;......Adjust.depth. |
| 7540 | 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 | step;..zi=if(above(i,.4),zi*1.03 |
| 7560 | 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 | ,zi);.....fx=reg00;fy=reg01;fz=r |
| 7580 | 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d | eg02;..ph=-1;ly=0;....zf=reg03;. |
| 75a0 | 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d | .px=0;pz=-zf;..elevz=reg04;..cr= |
| 75c0 | 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 | reg06;sr=reg07;af=w/h;..zi=reg08 |
| 75e0 | 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 | *invsqrt(1+sqr(dx*.05));....iw=2 |
| 7600 | 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 | /w;....c1=reg10;c2=reg11;....... |
| 7620 | 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 30 38 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 | ....n=50;dx=-08;................ |
| 7640 | 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 | .$...b..........Setup.tracer;..p |
| 7660 | 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a | z=pz+zi;px=px+dx*.04*zi;..z1=pz* |
| 7680 | 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b | cr-px*sr+fz;..x1=pz*sr+px*cr+fx; |
| 76a0 | 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 | ......Calculate.heightmap;..py=( |
| 76c0 | 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a | sin(x1*0.37+1)*sin(z1*0.4333-c1* |
| 76e0 | 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b | 71)..+sin(x1*.4-c2*3)*sin(z1*.6+ |
| 7700 | 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 | cos(z1)+sin(c2*5)*20)*.6..+sin(x |
| 7720 | 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 | 1*0.419+c2*10+1.5)*sin(z1*0.1333 |
| 7740 | 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 | +c1*20)*.4..+sin(x1*0.597+2+c1*1 |
| 7760 | 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 | 7+sin(x1*.71+c2*81-c1*45.1-sin(x |
| 7780 | 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 | 1*.7)*1.3)*.5)*sin(z1*0.754+cos( |
| 77a0 | 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 | z1*0.8+1+c2*12.5))*.2..)*.8-fy.. |
| 77c0 | 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 | ;......Derivative.of.height.wrt. |
| 77e0 | 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 | depth;..lm=1-.7*(ly-py)/zi;ly=py |
| 7800 | 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b | ;......Compare.voxels;..x=1/(pz+ |
| 7820 | 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d | zf);..py=py+pz*elevz;..ph=if(i,m |
| 7840 | 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e | ax(py*x,ph),ph);......Colorcodin |
| 7860 | 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 | g;..ddy=(ly+fy);lo=sin(x1*.1+reg |
| 7880 | 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b | 43)*.4;lp=cos(z1*.151+reg44)*.4; |
| 78a0 | 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 | ..red1=(.3+ddy*.4+lo*.8+lp*.3+lp |
| 78c0 | 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 | *ddy*.3)*lm;..green1=(.492-lp*.6 |
| 78e0 | 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c | -lo*.4)*lm;..blue1=(.31+ddy*.1+l |
| 7900 | 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 | o*.8-lp*.3)*lm;..lo=sin(x1*.1+re |
| 7920 | 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 | g41)*.4;lp=cos(z1*.151+reg42)*.4 |
| 7940 | 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 | ;..red=red1+((.3+ddy*.4+lo*.8+lp |
| 7960 | 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a | *.3+lp*ddy*.3)*lm-red1)*reg45;.. |
| 7980 | 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 | green=green1+((.492-lp*.6-lo*.4) |
| 79a0 | 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 | *lm-green1)*reg45;..blue=blue1+( |
| 79c0 | 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 | (.31+ddy*.1+lo*.8-lp*.3)*lm-blue |
| 79e0 | 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 | 1)*reg45;......Project.and.add.f |
| 7a00 | 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d | og;..x=sqr(sqr(i));lm=1-x;..red= |
| 7a20 | 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d | x*(.65+reg40*.2)+red*lm;..green= |
| 7a40 | 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 | x*(.95+reg40*.1)+green*lm;..blue |
| 7a60 | 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c | =x+blue*lm;..y=if(equal(i,1),-1, |
| 7a80 | 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a | -ph*af);..x=dx*iw+.001;......Adj |
| 7aa0 | 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e | ust.depth.step;..zi=if(above(i,. |
| 7ac0 | 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d | 4),zi*1.03,zi);.....fx=reg00;fy= |
| 7ae0 | 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a | reg01;fz=reg02;..ph=-1;ly=0;.... |
| 7b00 | 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 | zf=reg03;..px=0;pz=-zf;..elevz=r |
| 7b20 | 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b | eg04;..cr=reg06;sr=reg07;af=w/h; |
| 7b40 | 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 | ..zi=reg08*invsqrt(1+sqr(dx*.05) |
| 7b60 | 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 | );....iw=2/w;....c1=reg10;c2=reg |
| 7b80 | 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 30 37 3b 00 02 00 00 00 01 | 11;...........n=50;dx=-07;...... |
| 7ba0 | 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 | ...........$...b..........Setup. |
| 7bc0 | 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a | tracer;..pz=pz+zi;px=px+dx*.04*z |
| 7be0 | 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 | i;..z1=pz*cr-px*sr+fz;..x1=pz*sr |
| 7c00 | 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 | +px*cr+fx;......Calculate.height |
| 7c20 | 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a | map;..py=(sin(x1*0.37+1)*sin(z1* |
| 7c40 | 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a | 0.4333-c1*71)..+sin(x1*.4-c2*3)* |
| 7c60 | 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a | sin(z1*.6+cos(z1)+sin(c2*5)*20)* |
| 7c80 | 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e | .6..+sin(x1*0.419+c2*10+1.5)*sin |
| 7ca0 | 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e | (z1*0.1333+c1*20)*.4..+sin(x1*0. |
| 7cc0 | 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a | 597+2+c1*17+sin(x1*.71+c2*81-c1* |
| 7ce0 | 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a | 45.1-sin(x1*.7)*1.3)*.5)*sin(z1* |
| 7d00 | 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d | 0.754+cos(z1*0.8+1+c2*12.5))*.2. |
| 7d20 | 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 | .)*.8-fy..;......Derivative.of.h |
| 7d40 | 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 | eight.wrt.depth;..lm=1-.7*(ly-py |
| 7d60 | 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b | )/zi;ly=py;......Compare.voxels; |
| 7d80 | 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d | ..x=1/(pz+zf);..py=py+pz*elevz;. |
| 7da0 | 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 | .ph=if(i,max(py*x,ph),ph);...... |
| 7dc0 | 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e | Colorcoding;..ddy=(ly+fy);lo=sin |
| 7de0 | 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b | (x1*.1+reg43)*.4;lp=cos(z1*.151+ |
| 7e00 | 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e | reg44)*.4;..red1=(.3+ddy*.4+lo*. |
| 7e20 | 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 | 8+lp*.3+lp*ddy*.3)*lm;..green1=( |
| 7e40 | 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 | .492-lp*.6-lo*.4)*lm;..blue1=(.3 |
| 7e60 | 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 | 1+ddy*.1+lo*.8-lp*.3)*lm;..lo=si |
| 7e80 | 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 | n(x1*.1+reg41)*.4;lp=cos(z1*.151 |
| 7ea0 | 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e | +reg42)*.4;..red=red1+((.3+ddy*. |
| 7ec0 | 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 | 4+lo*.8+lp*.3+lp*ddy*.3)*lm-red1 |
| 7ee0 | 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 | )*reg45;..green=green1+((.492-lp |
| 7f00 | 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c | *.6-lo*.4)*lm-green1)*reg45;..bl |
| 7f20 | 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e | ue=blue1+((.31+ddy*.1+lo*.8-lp*. |
| 7f40 | 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 | 3)*lm-blue1)*reg45;......Project |
| 7f60 | 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d | .and.add.fog;..x=sqr(sqr(i));lm= |
| 7f80 | 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c | 1-x;..red=x*(.65+reg40*.2)+red*l |
| 7fa0 | 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e | m;..green=x*(.95+reg40*.1)+green |
| 7fc0 | 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 | *lm;..blue=x+blue*lm;..y=if(equa |
| 7fe0 | 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 | l(i,1),-1,-ph*af);..x=dx*iw+.001 |
| 8000 | 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 | ;......Adjust.depth.step;..zi=if |
| 8020 | 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 | (above(i,.4),zi*1.03,zi);.....fx |
| 8040 | 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 | =reg00;fy=reg01;fz=reg02;..ph=-1 |
| 8060 | 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 | ;ly=0;....zf=reg03;..px=0;pz=-zf |
| 8080 | 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 | ;..elevz=reg04;..cr=reg06;sr=reg |
| 80a0 | 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 | 07;af=w/h;..zi=reg08*invsqrt(1+s |
| 80c0 | 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 | qr(dx*.05));....iw=2/w;....c1=re |
| 80e0 | 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d | g10;c2=reg11;...........n=50;dx= |
| 8100 | 2d 30 36 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 | -06;.................$...b...... |
| 8120 | 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 | ....Setup.tracer;..pz=pz+zi;px=p |
| 8140 | 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b | x+dx*.04*zi;..z1=pz*cr-px*sr+fz; |
| 8160 | 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c | ..x1=pz*sr+px*cr+fx;......Calcul |
| 8180 | 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b | ate.heightmap;..py=(sin(x1*0.37+ |
| 81a0 | 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 | 1)*sin(z1*0.4333-c1*71)..+sin(x1 |
| 81c0 | 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 | *.4-c2*3)*sin(z1*.6+cos(z1)+sin( |
| 81e0 | 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 | c2*5)*20)*.6..+sin(x1*0.419+c2*1 |
| 8200 | 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a | 0+1.5)*sin(z1*0.1333+c1*20)*.4.. |
| 8220 | 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 | +sin(x1*0.597+2+c1*17+sin(x1*.71 |
| 8240 | 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e | +c2*81-c1*45.1-sin(x1*.7)*1.3)*. |
| 8260 | 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a | 5)*sin(z1*0.754+cos(z1*0.8+1+c2* |
| 8280 | 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 | 12.5))*.2..)*.8-fy..;......Deriv |
| 82a0 | 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 | ative.of.height.wrt.depth;..lm=1 |
| 82c0 | 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 | -.7*(ly-py)/zi;ly=py;......Compa |
| 82e0 | 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b | re.voxels;..x=1/(pz+zf);..py=py+ |
| 8300 | 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c | pz*elevz;..ph=if(i,max(py*x,ph), |
| 8320 | 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b | ph);......Colorcoding;..ddy=(ly+ |
| 8340 | 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f | fy);lo=sin(x1*.1+reg43)*.4;lp=co |
| 8360 | 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 | s(z1*.151+reg44)*.4;..red1=(.3+d |
| 8380 | 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b | dy*.4+lo*.8+lp*.3+lp*ddy*.3)*lm; |
| 83a0 | 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d | ..green1=(.492-lp*.6-lo*.4)*lm;. |
| 83c0 | 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a | .blue1=(.31+ddy*.1+lo*.8-lp*.3)* |
| 83e0 | 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 | lm;..lo=sin(x1*.1+reg41)*.4;lp=c |
| 8400 | 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b | os(z1*.151+reg42)*.4;..red=red1+ |
| 8420 | 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e | ((.3+ddy*.4+lo*.8+lp*.3+lp*ddy*. |
| 8440 | 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 | 3)*lm-red1)*reg45;..green=green1 |
| 8460 | 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a | +((.492-lp*.6-lo*.4)*lm-green1)* |
| 8480 | 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b | reg45;..blue=blue1+((.31+ddy*.1+ |
| 84a0 | 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d | lo*.8-lp*.3)*lm-blue1)*reg45;... |
| 84c0 | 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 | ...Project.and.add.fog;..x=sqr(s |
| 84e0 | 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 | qr(i));lm=1-x;..red=x*(.65+reg40 |
| 8500 | 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 | *.2)+red*lm;..green=x*(.95+reg40 |
| 8520 | 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d | *.1)+green*lm;..blue=x+blue*lm;. |
| 8540 | 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d | .y=if(equal(i,1),-1,-ph*af);..x= |
| 8560 | 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 | dx*iw+.001;......Adjust.depth.st |
| 8580 | 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a | ep;..zi=if(above(i,.4),zi*1.03,z |
| 85a0 | 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 | i);.....fx=reg00;fy=reg01;fz=reg |
| 85c0 | 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 | 02;..ph=-1;ly=0;....zf=reg03;..p |
| 85e0 | 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 | x=0;pz=-zf;..elevz=reg04;..cr=re |
| 8600 | 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 | g06;sr=reg07;af=w/h;..zi=reg08*i |
| 8620 | 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 | nvsqrt(1+sqr(dx*.05));....iw=2/w |
| 8640 | 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 | ;....c1=reg10;c2=reg11;......... |
| 8660 | 00 00 6e 3d 35 30 3b 64 78 3d 2d 30 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 | ..n=50;dx=-05;.................$ |
| 8680 | 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d | ...b..........Setup.tracer;..pz= |
| 86a0 | 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 | pz+zi;px=px+dx*.04*zi;..z1=pz*cr |
| 86c0 | 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a | -px*sr+fz;..x1=pz*sr+px*cr+fx;.. |
| 86e0 | 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 | ....Calculate.heightmap;..py=(si |
| 8700 | 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 | n(x1*0.37+1)*sin(z1*0.4333-c1*71 |
| 8720 | 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f | )..+sin(x1*.4-c2*3)*sin(z1*.6+co |
| 8740 | 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a | s(z1)+sin(c2*5)*20)*.6..+sin(x1* |
| 8760 | 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 | 0.419+c2*10+1.5)*sin(z1*0.1333+c |
| 8780 | 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b | 1*20)*.4..+sin(x1*0.597+2+c1*17+ |
| 87a0 | 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a | sin(x1*.71+c2*81-c1*45.1-sin(x1* |
| 87c0 | 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 | .7)*1.3)*.5)*sin(z1*0.754+cos(z1 |
| 87e0 | 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d | *0.8+1+c2*12.5))*.2..)*.8-fy..;. |
| 8800 | 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 | .....Derivative.of.height.wrt.de |
| 8820 | 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d | pth;..lm=1-.7*(ly-py)/zi;ly=py;. |
| 8840 | 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 | .....Compare.voxels;..x=1/(pz+zf |
| 8860 | 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 | );..py=py+pz*elevz;..ph=if(i,max |
| 8880 | 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b | (py*x,ph),ph);......Colorcoding; |
| 88a0 | 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 | ..ddy=(ly+fy);lo=sin(x1*.1+reg43 |
| 88c0 | 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a | )*.4;lp=cos(z1*.151+reg44)*.4;.. |
| 88e0 | 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 | red1=(.3+ddy*.4+lo*.8+lp*.3+lp*d |
| 8900 | 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c | dy*.3)*lm;..green1=(.492-lp*.6-l |
| 8920 | 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a | o*.4)*lm;..blue1=(.31+ddy*.1+lo* |
| 8940 | 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 | .8-lp*.3)*lm;..lo=sin(x1*.1+reg4 |
| 8960 | 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d | 1)*.4;lp=cos(z1*.151+reg42)*.4;. |
| 8980 | 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e | .red=red1+((.3+ddy*.4+lo*.8+lp*. |
| 89a0 | 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 | 3+lp*ddy*.3)*lm-red1)*reg45;..gr |
| 89c0 | 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c | een=green1+((.492-lp*.6-lo*.4)*l |
| 89e0 | 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e | m-green1)*reg45;..blue=blue1+((. |
| 8a00 | 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 | 31+ddy*.1+lo*.8-lp*.3)*lm-blue1) |
| 8a20 | 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 | *reg45;......Project.and.add.fog |
| 8a40 | 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a | ;..x=sqr(sqr(i));lm=1-x;..red=x* |
| 8a60 | 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a | (.65+reg40*.2)+red*lm;..green=x* |
| 8a80 | 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 | (.95+reg40*.1)+green*lm;..blue=x |
| 8aa0 | 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 | +blue*lm;..y=if(equal(i,1),-1,-p |
| 8ac0 | 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 | h*af);..x=dx*iw+.001;......Adjus |
| 8ae0 | 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 | t.depth.step;..zi=if(above(i,.4) |
| 8b00 | 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 | ,zi*1.03,zi);.....fx=reg00;fy=re |
| 8b20 | 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 | g01;fz=reg02;..ph=-1;ly=0;....zf |
| 8b40 | 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 | =reg03;..px=0;pz=-zf;..elevz=reg |
| 8b60 | 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a | 04;..cr=reg06;sr=reg07;af=w/h;.. |
| 8b80 | 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b | zi=reg08*invsqrt(1+sqr(dx*.05)); |
| 8ba0 | 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 | ....iw=2/w;....c1=reg10;c2=reg11 |
| 8bc0 | 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 30 34 3b 00 02 00 00 00 01 00 00 | ;...........n=50;dx=-04;........ |
| 8be0 | 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 | .........$...b..........Setup.tr |
| 8c00 | 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b | acer;..pz=pz+zi;px=px+dx*.04*zi; |
| 8c20 | 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 | ..z1=pz*cr-px*sr+fz;..x1=pz*sr+p |
| 8c40 | 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 | x*cr+fx;......Calculate.heightma |
| 8c60 | 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e | p;..py=(sin(x1*0.37+1)*sin(z1*0. |
| 8c80 | 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 | 4333-c1*71)..+sin(x1*.4-c2*3)*si |
| 8ca0 | 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 | n(z1*.6+cos(z1)+sin(c2*5)*20)*.6 |
| 8cc0 | 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a | ..+sin(x1*0.419+c2*10+1.5)*sin(z |
| 8ce0 | 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 | 1*0.1333+c1*20)*.4..+sin(x1*0.59 |
| 8d00 | 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 | 7+2+c1*17+sin(x1*.71+c2*81-c1*45 |
| 8d20 | 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e | .1-sin(x1*.7)*1.3)*.5)*sin(z1*0. |
| 8d40 | 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 | 754+cos(z1*0.8+1+c2*12.5))*.2..) |
| 8d60 | 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 | *.8-fy..;......Derivative.of.hei |
| 8d80 | 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f | ght.wrt.depth;..lm=1-.7*(ly-py)/ |
| 8da0 | 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a | zi;ly=py;......Compare.voxels;.. |
| 8dc0 | 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 | x=1/(pz+zf);..py=py+pz*elevz;..p |
| 8de0 | 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f | h=if(i,max(py*x,ph),ph);......Co |
| 8e00 | 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 | lorcoding;..ddy=(ly+fy);lo=sin(x |
| 8e20 | 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 | 1*.1+reg43)*.4;lp=cos(z1*.151+re |
| 8e40 | 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b | g44)*.4;..red1=(.3+ddy*.4+lo*.8+ |
| 8e60 | 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 | lp*.3+lp*ddy*.3)*lm;..green1=(.4 |
| 8e80 | 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b | 92-lp*.6-lo*.4)*lm;..blue1=(.31+ |
| 8ea0 | 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 | ddy*.1+lo*.8-lp*.3)*lm;..lo=sin( |
| 8ec0 | 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 | x1*.1+reg41)*.4;lp=cos(z1*.151+r |
| 8ee0 | 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b | eg42)*.4;..red=red1+((.3+ddy*.4+ |
| 8f00 | 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a | lo*.8+lp*.3+lp*ddy*.3)*lm-red1)* |
| 8f20 | 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e | reg45;..green=green1+((.492-lp*. |
| 8f40 | 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 | 6-lo*.4)*lm-green1)*reg45;..blue |
| 8f60 | 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 | =blue1+((.31+ddy*.1+lo*.8-lp*.3) |
| 8f80 | 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 | *lm-blue1)*reg45;......Project.a |
| 8fa0 | 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d | nd.add.fog;..x=sqr(sqr(i));lm=1- |
| 8fc0 | 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b | x;..red=x*(.65+reg40*.2)+red*lm; |
| 8fe0 | 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c | ..green=x*(.95+reg40*.1)+green*l |
| 9000 | 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 | m;..blue=x+blue*lm;..y=if(equal( |
| 9020 | 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d | i,1),-1,-ph*af);..x=dx*iw+.001;. |
| 9040 | 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 | .....Adjust.depth.step;..zi=if(a |
| 9060 | 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 | bove(i,.4),zi*1.03,zi);.....fx=r |
| 9080 | 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c | eg00;fy=reg01;fz=reg02;..ph=-1;l |
| 90a0 | 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d | y=0;....zf=reg03;..px=0;pz=-zf;. |
| 90c0 | 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 | .elevz=reg04;..cr=reg06;sr=reg07 |
| 90e0 | 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 | ;af=w/h;..zi=reg08*invsqrt(1+sqr |
| 9100 | 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 | (dx*.05));....iw=2/w;....c1=reg1 |
| 9120 | 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 30 | 0;c2=reg11;...........n=50;dx=-0 |
| 9140 | 33 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 | 3;.................$...b........ |
| 9160 | a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b | ..Setup.tracer;..pz=pz+zi;px=px+ |
| 9180 | 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a | dx*.04*zi;..z1=pz*cr-px*sr+fz;.. |
| 91a0 | 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 | x1=pz*sr+px*cr+fx;......Calculat |
| 91c0 | 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 | e.heightmap;..py=(sin(x1*0.37+1) |
| 91e0 | 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e | *sin(z1*0.4333-c1*71)..+sin(x1*. |
| 9200 | 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 | 4-c2*3)*sin(z1*.6+cos(z1)+sin(c2 |
| 9220 | 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b | *5)*20)*.6..+sin(x1*0.419+c2*10+ |
| 9240 | 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 | 1.5)*sin(z1*0.1333+c1*20)*.4..+s |
| 9260 | 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 | in(x1*0.597+2+c1*17+sin(x1*.71+c |
| 9280 | 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 | 2*81-c1*45.1-sin(x1*.7)*1.3)*.5) |
| 92a0 | 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 | *sin(z1*0.754+cos(z1*0.8+1+c2*12 |
| 92c0 | 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 | .5))*.2..)*.8-fy..;......Derivat |
| 92e0 | 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e | ive.of.height.wrt.depth;..lm=1-. |
| 9300 | 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 | 7*(ly-py)/zi;ly=py;......Compare |
| 9320 | 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a | .voxels;..x=1/(pz+zf);..py=py+pz |
| 9340 | 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 | *elevz;..ph=if(i,max(py*x,ph),ph |
| 9360 | 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 | );......Colorcoding;..ddy=(ly+fy |
| 9380 | 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 | );lo=sin(x1*.1+reg43)*.4;lp=cos( |
| 93a0 | 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 | z1*.151+reg44)*.4;..red1=(.3+ddy |
| 93c0 | 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a | *.4+lo*.8+lp*.3+lp*ddy*.3)*lm;.. |
| 93e0 | 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 | green1=(.492-lp*.6-lo*.4)*lm;..b |
| 9400 | 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d | lue1=(.31+ddy*.1+lo*.8-lp*.3)*lm |
| 9420 | 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 | ;..lo=sin(x1*.1+reg41)*.4;lp=cos |
| 9440 | 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 | (z1*.151+reg42)*.4;..red=red1+(( |
| 9460 | 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 | .3+ddy*.4+lo*.8+lp*.3+lp*ddy*.3) |
| 9480 | 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 | *lm-red1)*reg45;..green=green1+( |
| 94a0 | 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 | (.492-lp*.6-lo*.4)*lm-green1)*re |
| 94c0 | 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f | g45;..blue=blue1+((.31+ddy*.1+lo |
| 94e0 | 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 | *.8-lp*.3)*lm-blue1)*reg45;..... |
| 9500 | 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 | .Project.and.add.fog;..x=sqr(sqr |
| 9520 | 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e | (i));lm=1-x;..red=x*(.65+reg40*. |
| 9540 | 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e | 2)+red*lm;..green=x*(.95+reg40*. |
| 9560 | 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 | 1)+green*lm;..blue=x+blue*lm;..y |
| 9580 | 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 | =if(equal(i,1),-1,-ph*af);..x=dx |
| 95a0 | 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 | *iw+.001;......Adjust.depth.step |
| 95c0 | 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 | ;..zi=if(above(i,.4),zi*1.03,zi) |
| 95e0 | 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 | ;.....fx=reg00;fy=reg01;fz=reg02 |
| 9600 | 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d | ;..ph=-1;ly=0;....zf=reg03;..px= |
| 9620 | 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 | 0;pz=-zf;..elevz=reg04;..cr=reg0 |
| 9640 | 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 | 6;sr=reg07;af=w/h;..zi=reg08*inv |
| 9660 | 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d | sqrt(1+sqr(dx*.05));....iw=2/w;. |
| 9680 | 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 | ...c1=reg10;c2=reg11;........... |
| 96a0 | 6e 3d 35 30 3b 64 78 3d 2d 30 32 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 | n=50;dx=-02;.................$.. |
| 96c0 | 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a | .b..........Setup.tracer;..pz=pz |
| 96e0 | 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 | +zi;px=px+dx*.04*zi;..z1=pz*cr-p |
| 9700 | 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a | x*sr+fz;..x1=pz*sr+px*cr+fx;.... |
| 9720 | a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 | ..Calculate.heightmap;..py=(sin( |
| 9740 | 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d | x1*0.37+1)*sin(z1*0.4333-c1*71). |
| 9760 | 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 | .+sin(x1*.4-c2*3)*sin(z1*.6+cos( |
| 9780 | 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e | z1)+sin(c2*5)*20)*.6..+sin(x1*0. |
| 97a0 | 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a | 419+c2*10+1.5)*sin(z1*0.1333+c1* |
| 97c0 | 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 | 20)*.4..+sin(x1*0.597+2+c1*17+si |
| 97e0 | 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 | n(x1*.71+c2*81-c1*45.1-sin(x1*.7 |
| 9800 | 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 | )*1.3)*.5)*sin(z1*0.754+cos(z1*0 |
| 9820 | 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d | .8+1+c2*12.5))*.2..)*.8-fy..;... |
| 9840 | 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 | ...Derivative.of.height.wrt.dept |
| 9860 | 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d | h;..lm=1-.7*(ly-py)/zi;ly=py;... |
| 9880 | 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b | ...Compare.voxels;..x=1/(pz+zf); |
| 98a0 | 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 | ..py=py+pz*elevz;..ph=if(i,max(p |
| 98c0 | 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a | y*x,ph),ph);......Colorcoding;.. |
| 98e0 | 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a | ddy=(ly+fy);lo=sin(x1*.1+reg43)* |
| 9900 | 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 | .4;lp=cos(z1*.151+reg44)*.4;..re |
| 9920 | 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 | d1=(.3+ddy*.4+lo*.8+lp*.3+lp*ddy |
| 9940 | 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a | *.3)*lm;..green1=(.492-lp*.6-lo* |
| 9960 | 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 | .4)*lm;..blue1=(.31+ddy*.1+lo*.8 |
| 9980 | 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 | -lp*.3)*lm;..lo=sin(x1*.1+reg41) |
| 99a0 | 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 | *.4;lp=cos(z1*.151+reg42)*.4;..r |
| 99c0 | 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b | ed=red1+((.3+ddy*.4+lo*.8+lp*.3+ |
| 99e0 | 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 | lp*ddy*.3)*lm-red1)*reg45;..gree |
| 9a00 | 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d | n=green1+((.492-lp*.6-lo*.4)*lm- |
| 9a20 | 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 | green1)*reg45;..blue=blue1+((.31 |
| 9a40 | 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 | +ddy*.1+lo*.8-lp*.3)*lm-blue1)*r |
| 9a60 | 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d | eg45;......Project.and.add.fog;. |
| 9a80 | 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e | .x=sqr(sqr(i));lm=1-x;..red=x*(. |
| 9aa0 | 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e | 65+reg40*.2)+red*lm;..green=x*(. |
| 9ac0 | 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 | 95+reg40*.1)+green*lm;..blue=x+b |
| 9ae0 | 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a | lue*lm;..y=if(equal(i,1),-1,-ph* |
| 9b00 | 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 | af);..x=dx*iw+.001;......Adjust. |
| 9b20 | 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a | depth.step;..zi=if(above(i,.4),z |
| 9b40 | 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 | i*1.03,zi);.....fx=reg00;fy=reg0 |
| 9b60 | 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 | 1;fz=reg02;..ph=-1;ly=0;....zf=r |
| 9b80 | 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 | eg03;..px=0;pz=-zf;..elevz=reg04 |
| 9ba0 | 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 | ;..cr=reg06;sr=reg07;af=w/h;..zi |
| 9bc0 | 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a | =reg08*invsqrt(1+sqr(dx*.05));.. |
| 9be0 | 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d | ..iw=2/w;....c1=reg10;c2=reg11;. |
| 9c00 | 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2d 30 31 3b 00 02 00 00 00 01 00 00 00 ff | ..........n=50;dx=-01;.......... |
| 9c20 | ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 | .......$...b..........Setup.trac |
| 9c40 | 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a | er;..pz=pz+zi;px=px+dx*.04*zi;.. |
| 9c60 | 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a | z1=pz*cr-px*sr+fz;..x1=pz*sr+px* |
| 9c80 | 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b | cr+fx;......Calculate.heightmap; |
| 9ca0 | 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 | ..py=(sin(x1*0.37+1)*sin(z1*0.43 |
| 9cc0 | 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 | 33-c1*71)..+sin(x1*.4-c2*3)*sin( |
| 9ce0 | 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a | z1*.6+cos(z1)+sin(c2*5)*20)*.6.. |
| 9d00 | 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a | +sin(x1*0.419+c2*10+1.5)*sin(z1* |
| 9d20 | 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b | 0.1333+c1*20)*.4..+sin(x1*0.597+ |
| 9d40 | 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 | 2+c1*17+sin(x1*.71+c2*81-c1*45.1 |
| 9d60 | 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 | -sin(x1*.7)*1.3)*.5)*sin(z1*0.75 |
| 9d80 | 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e | 4+cos(z1*0.8+1+c2*12.5))*.2..)*. |
| 9da0 | 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 | 8-fy..;......Derivative.of.heigh |
| 9dc0 | 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 | t.wrt.depth;..lm=1-.7*(ly-py)/zi |
| 9de0 | 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d | ;ly=py;......Compare.voxels;..x= |
| 9e00 | 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d | 1/(pz+zf);..py=py+pz*elevz;..ph= |
| 9e20 | 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f | if(i,max(py*x,ph),ph);......Colo |
| 9e40 | 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a | rcoding;..ddy=(ly+fy);lo=sin(x1* |
| 9e60 | 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 | .1+reg43)*.4;lp=cos(z1*.151+reg4 |
| 9e80 | 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 | 4)*.4;..red1=(.3+ddy*.4+lo*.8+lp |
| 9ea0 | 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 | *.3+lp*ddy*.3)*lm;..green1=(.492 |
| 9ec0 | 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 | -lp*.6-lo*.4)*lm;..blue1=(.31+dd |
| 9ee0 | 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 | y*.1+lo*.8-lp*.3)*lm;..lo=sin(x1 |
| 9f00 | 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 | *.1+reg41)*.4;lp=cos(z1*.151+reg |
| 9f20 | 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f | 42)*.4;..red=red1+((.3+ddy*.4+lo |
| 9f40 | 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 | *.8+lp*.3+lp*ddy*.3)*lm-red1)*re |
| 9f60 | 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d | g45;..green=green1+((.492-lp*.6- |
| 9f80 | 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 | lo*.4)*lm-green1)*reg45;..blue=b |
| 9fa0 | 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c | lue1+((.31+ddy*.1+lo*.8-lp*.3)*l |
| 9fc0 | 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 | m-blue1)*reg45;......Project.and |
| 9fe0 | 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b | .add.fog;..x=sqr(sqr(i));lm=1-x; |
| a000 | 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a | ..red=x*(.65+reg40*.2)+red*lm;.. |
| a020 | 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b | green=x*(.95+reg40*.1)+green*lm; |
| a040 | 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c | ..blue=x+blue*lm;..y=if(equal(i, |
| a060 | 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d | 1),-1,-ph*af);..x=dx*iw+.001;... |
| a080 | 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f | ...Adjust.depth.step;..zi=if(abo |
| a0a0 | 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 | ve(i,.4),zi*1.03,zi);.....fx=reg |
| a0c0 | 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d | 00;fy=reg01;fz=reg02;..ph=-1;ly= |
| a0e0 | 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 | 0;....zf=reg03;..px=0;pz=-zf;..e |
| a100 | 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 | levz=reg04;..cr=reg06;sr=reg07;a |
| a120 | 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 | f=w/h;..zi=reg08*invsqrt(1+sqr(d |
| a140 | 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b | x*.05));....iw=2/w;....c1=reg10; |
| a160 | 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 30 30 3b | c2=reg11;...........n=50;dx=+00; |
| a180 | 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 | .................$...b.......... |
| a1a0 | 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 | Setup.tracer;..pz=pz+zi;px=px+dx |
| a1c0 | 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 | *.04*zi;..z1=pz*cr-px*sr+fz;..x1 |
| a1e0 | 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 | =pz*sr+px*cr+fx;......Calculate. |
| a200 | 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 | heightmap;..py=(sin(x1*0.37+1)*s |
| a220 | 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d | in(z1*0.4333-c1*71)..+sin(x1*.4- |
| a240 | 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 | c2*3)*sin(z1*.6+cos(z1)+sin(c2*5 |
| a260 | 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e | )*20)*.6..+sin(x1*0.419+c2*10+1. |
| a280 | 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e | 5)*sin(z1*0.1333+c1*20)*.4..+sin |
| a2a0 | 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a | (x1*0.597+2+c1*17+sin(x1*.71+c2* |
| a2c0 | 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 | 81-c1*45.1-sin(x1*.7)*1.3)*.5)*s |
| a2e0 | 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 | in(z1*0.754+cos(z1*0.8+1+c2*12.5 |
| a300 | 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 | ))*.2..)*.8-fy..;......Derivativ |
| a320 | 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a | e.of.height.wrt.depth;..lm=1-.7* |
| a340 | 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 | (ly-py)/zi;ly=py;......Compare.v |
| a360 | 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 | oxels;..x=1/(pz+zf);..py=py+pz*e |
| a380 | 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b | levz;..ph=if(i,max(py*x,ph),ph); |
| a3a0 | 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b | ......Colorcoding;..ddy=(ly+fy); |
| a3c0 | 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 | lo=sin(x1*.1+reg43)*.4;lp=cos(z1 |
| a3e0 | 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e | *.151+reg44)*.4;..red1=(.3+ddy*. |
| a400 | 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 | 4+lo*.8+lp*.3+lp*ddy*.3)*lm;..gr |
| a420 | 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 | een1=(.492-lp*.6-lo*.4)*lm;..blu |
| a440 | 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d | e1=(.31+ddy*.1+lo*.8-lp*.3)*lm;. |
| a460 | 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a | .lo=sin(x1*.1+reg41)*.4;lp=cos(z |
| a480 | 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 | 1*.151+reg42)*.4;..red=red1+((.3 |
| a4a0 | 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c | +ddy*.4+lo*.8+lp*.3+lp*ddy*.3)*l |
| a4c0 | 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e | m-red1)*reg45;..green=green1+((. |
| a4e0 | 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 | 492-lp*.6-lo*.4)*lm-green1)*reg4 |
| a500 | 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e | 5;..blue=blue1+((.31+ddy*.1+lo*. |
| a520 | 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 | 8-lp*.3)*lm-blue1)*reg45;......P |
| a540 | 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 | roject.and.add.fog;..x=sqr(sqr(i |
| a560 | 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 | ));lm=1-x;..red=x*(.65+reg40*.2) |
| a580 | 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 | +red*lm;..green=x*(.95+reg40*.1) |
| a5a0 | 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 | +green*lm;..blue=x+blue*lm;..y=i |
| a5c0 | 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 | f(equal(i,1),-1,-ph*af);..x=dx*i |
| a5e0 | 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d | w+.001;......Adjust.depth.step;. |
| a600 | 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 | .zi=if(above(i,.4),zi*1.03,zi);. |
| a620 | b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d | ....fx=reg00;fy=reg01;fz=reg02;. |
| a640 | 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b | .ph=-1;ly=0;....zf=reg03;..px=0; |
| a660 | 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b | pz=-zf;..elevz=reg04;..cr=reg06; |
| a680 | 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 | sr=reg07;af=w/h;..zi=reg08*invsq |
| a6a0 | 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d | rt(1+sqr(dx*.05));....iw=2/w;... |
| a6c0 | 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d | .c1=reg10;c2=reg11;...........n= |
| a6e0 | 35 30 3b 64 78 3d 2b 30 31 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 | 50;dx=+01;.................$...b |
| a700 | 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a | ..........Setup.tracer;..pz=pz+z |
| a720 | 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a | i;px=px+dx*.04*zi;..z1=pz*cr-px* |
| a740 | 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 | sr+fz;..x1=pz*sr+px*cr+fx;...... |
| a760 | 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 | Calculate.heightmap;..py=(sin(x1 |
| a780 | 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b | *0.37+1)*sin(z1*0.4333-c1*71)..+ |
| a7a0 | 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 | sin(x1*.4-c2*3)*sin(z1*.6+cos(z1 |
| a7c0 | 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 | )+sin(c2*5)*20)*.6..+sin(x1*0.41 |
| a7e0 | 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 | 9+c2*10+1.5)*sin(z1*0.1333+c1*20 |
| a800 | 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 | )*.4..+sin(x1*0.597+2+c1*17+sin( |
| a820 | 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a | x1*.71+c2*81-c1*45.1-sin(x1*.7)* |
| a840 | 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 | 1.3)*.5)*sin(z1*0.754+cos(z1*0.8 |
| a860 | 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 | +1+c2*12.5))*.2..)*.8-fy..;..... |
| a880 | 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b | .Derivative.of.height.wrt.depth; |
| a8a0 | 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 | ..lm=1-.7*(ly-py)/zi;ly=py;..... |
| a8c0 | 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a | .Compare.voxels;..x=1/(pz+zf);.. |
| a8e0 | 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a | py=py+pz*elevz;..ph=if(i,max(py* |
| a900 | 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 | x,ph),ph);......Colorcoding;..dd |
| a920 | 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 | y=(ly+fy);lo=sin(x1*.1+reg43)*.4 |
| a940 | 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 | ;lp=cos(z1*.151+reg44)*.4;..red1 |
| a960 | 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e | =(.3+ddy*.4+lo*.8+lp*.3+lp*ddy*. |
| a980 | 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 | 3)*lm;..green1=(.492-lp*.6-lo*.4 |
| a9a0 | 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c | )*lm;..blue1=(.31+ddy*.1+lo*.8-l |
| a9c0 | 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e | p*.3)*lm;..lo=sin(x1*.1+reg41)*. |
| a9e0 | 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 | 4;lp=cos(z1*.151+reg42)*.4;..red |
| aa00 | 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 | =red1+((.3+ddy*.4+lo*.8+lp*.3+lp |
| aa20 | 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d | *ddy*.3)*lm-red1)*reg45;..green= |
| aa40 | 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 | green1+((.492-lp*.6-lo*.4)*lm-gr |
| aa60 | 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 | een1)*reg45;..blue=blue1+((.31+d |
| aa80 | 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 | dy*.1+lo*.8-lp*.3)*lm-blue1)*reg |
| aaa0 | 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 | 45;......Project.and.add.fog;..x |
| aac0 | 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 | =sqr(sqr(i));lm=1-x;..red=x*(.65 |
| aae0 | 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 | +reg40*.2)+red*lm;..green=x*(.95 |
| ab00 | 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 | +reg40*.1)+green*lm;..blue=x+blu |
| ab20 | 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 | e*lm;..y=if(equal(i,1),-1,-ph*af |
| ab40 | 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 | );..x=dx*iw+.001;......Adjust.de |
| ab60 | 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a | pth.step;..zi=if(above(i,.4),zi* |
| ab80 | 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b | 1.03,zi);.....fx=reg00;fy=reg01; |
| aba0 | 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 | fz=reg02;..ph=-1;ly=0;....zf=reg |
| abc0 | 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d | 03;..px=0;pz=-zf;..elevz=reg04;. |
| abe0 | 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 | .cr=reg06;sr=reg07;af=w/h;..zi=r |
| ac00 | 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a | eg08*invsqrt(1+sqr(dx*.05));.... |
| ac20 | 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 | iw=2/w;....c1=reg10;c2=reg11;... |
| ac40 | 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 30 32 3b 00 02 00 00 00 01 00 00 00 ff ff ff | ........n=50;dx=+02;............ |
| ac60 | 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 | .....$...b..........Setup.tracer |
| ac80 | 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 | ;..pz=pz+zi;px=px+dx*.04*zi;..z1 |
| aca0 | 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 | =pz*cr-px*sr+fz;..x1=pz*sr+px*cr |
| acc0 | 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a | +fx;......Calculate.heightmap;.. |
| ace0 | 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 | py=(sin(x1*0.37+1)*sin(z1*0.4333 |
| ad00 | 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 | -c1*71)..+sin(x1*.4-c2*3)*sin(z1 |
| ad20 | 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 | *.6+cos(z1)+sin(c2*5)*20)*.6..+s |
| ad40 | 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e | in(x1*0.419+c2*10+1.5)*sin(z1*0. |
| ad60 | 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b | 1333+c1*20)*.4..+sin(x1*0.597+2+ |
| ad80 | 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 | c1*17+sin(x1*.71+c2*81-c1*45.1-s |
| ada0 | 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b | in(x1*.7)*1.3)*.5)*sin(z1*0.754+ |
| adc0 | 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d | cos(z1*0.8+1+c2*12.5))*.2..)*.8- |
| ade0 | 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 | fy..;......Derivative.of.height. |
| ae00 | 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c | wrt.depth;..lm=1-.7*(ly-py)/zi;l |
| ae20 | 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f | y=py;......Compare.voxels;..x=1/ |
| ae40 | 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 | (pz+zf);..py=py+pz*elevz;..ph=if |
| ae60 | 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 | (i,max(py*x,ph),ph);......Colorc |
| ae80 | 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 | oding;..ddy=(ly+fy);lo=sin(x1*.1 |
| aea0 | 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 | +reg43)*.4;lp=cos(z1*.151+reg44) |
| aec0 | 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e | *.4;..red1=(.3+ddy*.4+lo*.8+lp*. |
| aee0 | 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c | 3+lp*ddy*.3)*lm;..green1=(.492-l |
| af00 | 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a | p*.6-lo*.4)*lm;..blue1=(.31+ddy* |
| af20 | 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e | .1+lo*.8-lp*.3)*lm;..lo=sin(x1*. |
| af40 | 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 | 1+reg41)*.4;lp=cos(z1*.151+reg42 |
| af60 | 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e | )*.4;..red=red1+((.3+ddy*.4+lo*. |
| af80 | 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 | 8+lp*.3+lp*ddy*.3)*lm-red1)*reg4 |
| afa0 | 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f | 5;..green=green1+((.492-lp*.6-lo |
| afc0 | 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 | *.4)*lm-green1)*reg45;..blue=blu |
| afe0 | 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d | e1+((.31+ddy*.1+lo*.8-lp*.3)*lm- |
| b000 | 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 | blue1)*reg45;......Project.and.a |
| b020 | 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a | dd.fog;..x=sqr(sqr(i));lm=1-x;.. |
| b040 | 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 | red=x*(.65+reg40*.2)+red*lm;..gr |
| b060 | 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a | een=x*(.95+reg40*.1)+green*lm;.. |
| b080 | 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 | blue=x+blue*lm;..y=if(equal(i,1) |
| b0a0 | 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 | ,-1,-ph*af);..x=dx*iw+.001;..... |
| b0c0 | 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 | .Adjust.depth.step;..zi=if(above |
| b0e0 | 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 | (i,.4),zi*1.03,zi);.....fx=reg00 |
| b100 | 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b | ;fy=reg01;fz=reg02;..ph=-1;ly=0; |
| b120 | 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 | ....zf=reg03;..px=0;pz=-zf;..ele |
| b140 | 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d | vz=reg04;..cr=reg06;sr=reg07;af= |
| b160 | 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a | w/h;..zi=reg08*invsqrt(1+sqr(dx* |
| b180 | 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 | .05));....iw=2/w;....c1=reg10;c2 |
| b1a0 | 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 30 33 3b 00 02 | =reg11;...........n=50;dx=+03;.. |
| b1c0 | 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 | ...............$...b..........Se |
| b1e0 | 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e | tup.tracer;..pz=pz+zi;px=px+dx*. |
| b200 | 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 | 04*zi;..z1=pz*cr-px*sr+fz;..x1=p |
| b220 | 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 | z*sr+px*cr+fx;......Calculate.he |
| b240 | 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e | ightmap;..py=(sin(x1*0.37+1)*sin |
| b260 | 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 | (z1*0.4333-c1*71)..+sin(x1*.4-c2 |
| b280 | 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a | *3)*sin(z1*.6+cos(z1)+sin(c2*5)* |
| b2a0 | 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 | 20)*.6..+sin(x1*0.419+c2*10+1.5) |
| b2c0 | 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 | *sin(z1*0.1333+c1*20)*.4..+sin(x |
| b2e0 | 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 | 1*0.597+2+c1*17+sin(x1*.71+c2*81 |
| b300 | 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e | -c1*45.1-sin(x1*.7)*1.3)*.5)*sin |
| b320 | 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 | (z1*0.754+cos(z1*0.8+1+c2*12.5)) |
| b340 | 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 | *.2..)*.8-fy..;......Derivative. |
| b360 | 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c | of.height.wrt.depth;..lm=1-.7*(l |
| b380 | 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 | y-py)/zi;ly=py;......Compare.vox |
| b3a0 | 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 | els;..x=1/(pz+zf);..py=py+pz*ele |
| b3c0 | 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a | vz;..ph=if(i,max(py*x,ph),ph);.. |
| b3e0 | 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f | ....Colorcoding;..ddy=(ly+fy);lo |
| b400 | 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e | =sin(x1*.1+reg43)*.4;lp=cos(z1*. |
| b420 | 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b | 151+reg44)*.4;..red1=(.3+ddy*.4+ |
| b440 | 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 | lo*.8+lp*.3+lp*ddy*.3)*lm;..gree |
| b460 | 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 | n1=(.492-lp*.6-lo*.4)*lm;..blue1 |
| b480 | 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c | =(.31+ddy*.1+lo*.8-lp*.3)*lm;..l |
| b4a0 | 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a | o=sin(x1*.1+reg41)*.4;lp=cos(z1* |
| b4c0 | 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 | .151+reg42)*.4;..red=red1+((.3+d |
| b4e0 | 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d | dy*.4+lo*.8+lp*.3+lp*ddy*.3)*lm- |
| b500 | 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 | red1)*reg45;..green=green1+((.49 |
| b520 | 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b | 2-lp*.6-lo*.4)*lm-green1)*reg45; |
| b540 | 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d | ..blue=blue1+((.31+ddy*.1+lo*.8- |
| b560 | 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f | lp*.3)*lm-blue1)*reg45;......Pro |
| b580 | 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 | ject.and.add.fog;..x=sqr(sqr(i)) |
| b5a0 | 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 | ;lm=1-x;..red=x*(.65+reg40*.2)+r |
| b5c0 | 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 | ed*lm;..green=x*(.95+reg40*.1)+g |
| b5e0 | 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 | reen*lm;..blue=x+blue*lm;..y=if( |
| b600 | 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b | equal(i,1),-1,-ph*af);..x=dx*iw+ |
| b620 | 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a | .001;......Adjust.depth.step;..z |
| b640 | 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 | i=if(above(i,.4),zi*1.03,zi);... |
| b660 | 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 | ..fx=reg00;fy=reg01;fz=reg02;..p |
| b680 | 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a | h=-1;ly=0;....zf=reg03;..px=0;pz |
| b6a0 | 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 | =-zf;..elevz=reg04;..cr=reg06;sr |
| b6c0 | 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 | =reg07;af=w/h;..zi=reg08*invsqrt |
| b6e0 | 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 | (1+sqr(dx*.05));....iw=2/w;....c |
| b700 | 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 | 1=reg10;c2=reg11;...........n=50 |
| b720 | 3b 64 78 3d 2b 30 34 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 | ;dx=+04;.................$...b.. |
| b740 | 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b | ........Setup.tracer;..pz=pz+zi; |
| b760 | 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 | px=px+dx*.04*zi;..z1=pz*cr-px*sr |
| b780 | 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 | +fz;..x1=pz*sr+px*cr+fx;......Ca |
| b7a0 | 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 | lculate.heightmap;..py=(sin(x1*0 |
| b7c0 | 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 | .37+1)*sin(z1*0.4333-c1*71)..+si |
| b7e0 | 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b | n(x1*.4-c2*3)*sin(z1*.6+cos(z1)+ |
| b800 | 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b | sin(c2*5)*20)*.6..+sin(x1*0.419+ |
| b820 | 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a | c2*10+1.5)*sin(z1*0.1333+c1*20)* |
| b840 | 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 | .4..+sin(x1*0.597+2+c1*17+sin(x1 |
| b860 | 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e | *.71+c2*81-c1*45.1-sin(x1*.7)*1. |
| b880 | 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 | 3)*.5)*sin(z1*0.754+cos(z1*0.8+1 |
| b8a0 | 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 | +c2*12.5))*.2..)*.8-fy..;......D |
| b8c0 | 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a | erivative.of.height.wrt.depth;.. |
| b8e0 | 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 | lm=1-.7*(ly-py)/zi;ly=py;......C |
| b900 | 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 | ompare.voxels;..x=1/(pz+zf);..py |
| b920 | 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c | =py+pz*elevz;..ph=if(i,max(py*x, |
| b940 | 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d | ph),ph);......Colorcoding;..ddy= |
| b960 | 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c | (ly+fy);lo=sin(x1*.1+reg43)*.4;l |
| b980 | 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 | p=cos(z1*.151+reg44)*.4;..red1=( |
| b9a0 | 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 | .3+ddy*.4+lo*.8+lp*.3+lp*ddy*.3) |
| b9c0 | 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a | *lm;..green1=(.492-lp*.6-lo*.4)* |
| b9e0 | 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a | lm;..blue1=(.31+ddy*.1+lo*.8-lp* |
| ba00 | 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b | .3)*lm;..lo=sin(x1*.1+reg41)*.4; |
| ba20 | 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 | lp=cos(z1*.151+reg42)*.4;..red=r |
| ba40 | 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 | ed1+((.3+ddy*.4+lo*.8+lp*.3+lp*d |
| ba60 | 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 | dy*.3)*lm-red1)*reg45;..green=gr |
| ba80 | 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 | een1+((.492-lp*.6-lo*.4)*lm-gree |
| baa0 | 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 | n1)*reg45;..blue=blue1+((.31+ddy |
| bac0 | 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 | *.1+lo*.8-lp*.3)*lm-blue1)*reg45 |
| bae0 | 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 | ;......Project.and.add.fog;..x=s |
| bb00 | 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 | qr(sqr(i));lm=1-x;..red=x*(.65+r |
| bb20 | 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 | eg40*.2)+red*lm;..green=x*(.95+r |
| bb40 | 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a | eg40*.1)+green*lm;..blue=x+blue* |
| bb60 | 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b | lm;..y=if(equal(i,1),-1,-ph*af); |
| bb80 | 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 | ..x=dx*iw+.001;......Adjust.dept |
| bba0 | 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e | h.step;..zi=if(above(i,.4),zi*1. |
| bbc0 | 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a | 03,zi);.....fx=reg00;fy=reg01;fz |
| bbe0 | 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 | =reg02;..ph=-1;ly=0;....zf=reg03 |
| bc00 | 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 | ;..px=0;pz=-zf;..elevz=reg04;..c |
| bc20 | 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 | r=reg06;sr=reg07;af=w/h;..zi=reg |
| bc40 | 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 | 08*invsqrt(1+sqr(dx*.05));....iw |
| bc60 | 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 | =2/w;....c1=reg10;c2=reg11;..... |
| bc80 | 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 30 35 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 | ......n=50;dx=+05;.............. |
| bca0 | 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d | ...$...b..........Setup.tracer;. |
| bcc0 | 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 | .pz=pz+zi;px=px+dx*.04*zi;..z1=p |
| bce0 | 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 | z*cr-px*sr+fz;..x1=pz*sr+px*cr+f |
| bd00 | 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 | x;......Calculate.heightmap;..py |
| bd20 | 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 | =(sin(x1*0.37+1)*sin(z1*0.4333-c |
| bd40 | 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e | 1*71)..+sin(x1*.4-c2*3)*sin(z1*. |
| bd60 | 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e | 6+cos(z1)+sin(c2*5)*20)*.6..+sin |
| bd80 | 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 | (x1*0.419+c2*10+1.5)*sin(z1*0.13 |
| bda0 | 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 | 33+c1*20)*.4..+sin(x1*0.597+2+c1 |
| bdc0 | 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e | *17+sin(x1*.71+c2*81-c1*45.1-sin |
| bde0 | 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f | (x1*.7)*1.3)*.5)*sin(z1*0.754+co |
| be00 | 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 | s(z1*0.8+1+c2*12.5))*.2..)*.8-fy |
| be20 | 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 | ..;......Derivative.of.height.wr |
| be40 | 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d | t.depth;..lm=1-.7*(ly-py)/zi;ly= |
| be60 | 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 | py;......Compare.voxels;..x=1/(p |
| be80 | 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 | z+zf);..py=py+pz*elevz;..ph=if(i |
| bea0 | 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 | ,max(py*x,ph),ph);......Colorcod |
| bec0 | 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 | ing;..ddy=(ly+fy);lo=sin(x1*.1+r |
| bee0 | 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e | eg43)*.4;lp=cos(z1*.151+reg44)*. |
| bf00 | 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b | 4;..red1=(.3+ddy*.4+lo*.8+lp*.3+ |
| bf20 | 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a | lp*ddy*.3)*lm;..green1=(.492-lp* |
| bf40 | 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 | .6-lo*.4)*lm;..blue1=(.31+ddy*.1 |
| bf60 | 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b | +lo*.8-lp*.3)*lm;..lo=sin(x1*.1+ |
| bf80 | 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a | reg41)*.4;lp=cos(z1*.151+reg42)* |
| bfa0 | 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b | .4;..red=red1+((.3+ddy*.4+lo*.8+ |
| bfc0 | 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b | lp*.3+lp*ddy*.3)*lm-red1)*reg45; |
| bfe0 | 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e | ..green=green1+((.492-lp*.6-lo*. |
| c000 | 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 | 4)*lm-green1)*reg45;..blue=blue1 |
| c020 | 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c | +((.31+ddy*.1+lo*.8-lp*.3)*lm-bl |
| c040 | 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 | ue1)*reg45;......Project.and.add |
| c060 | 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 | .fog;..x=sqr(sqr(i));lm=1-x;..re |
| c080 | 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 | d=x*(.65+reg40*.2)+red*lm;..gree |
| c0a0 | 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c | n=x*(.95+reg40*.1)+green*lm;..bl |
| c0c0 | 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d | ue=x+blue*lm;..y=if(equal(i,1),- |
| c0e0 | 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 | 1,-ph*af);..x=dx*iw+.001;......A |
| c100 | 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 | djust.depth.step;..zi=if(above(i |
| c120 | 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 | ,.4),zi*1.03,zi);.....fx=reg00;f |
| c140 | 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a | y=reg01;fz=reg02;..ph=-1;ly=0;.. |
| c160 | 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a | ..zf=reg03;..px=0;pz=-zf;..elevz |
| c180 | 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f | =reg04;..cr=reg06;sr=reg07;af=w/ |
| c1a0 | 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 | h;..zi=reg08*invsqrt(1+sqr(dx*.0 |
| c1c0 | 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 | 5));....iw=2/w;....c1=reg10;c2=r |
| c1e0 | 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 30 36 3b 00 02 00 00 | eg11;...........n=50;dx=+06;.... |
| c200 | 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 | .............$...b..........Setu |
| c220 | 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 | p.tracer;..pz=pz+zi;px=px+dx*.04 |
| c240 | 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a | *zi;..z1=pz*cr-px*sr+fz;..x1=pz* |
| c260 | 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 | sr+px*cr+fx;......Calculate.heig |
| c280 | 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a | htmap;..py=(sin(x1*0.37+1)*sin(z |
| c2a0 | 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 | 1*0.4333-c1*71)..+sin(x1*.4-c2*3 |
| c2c0 | 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 | )*sin(z1*.6+cos(z1)+sin(c2*5)*20 |
| c2e0 | 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 | )*.6..+sin(x1*0.419+c2*10+1.5)*s |
| c300 | 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a | in(z1*0.1333+c1*20)*.4..+sin(x1* |
| c320 | 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 | 0.597+2+c1*17+sin(x1*.71+c2*81-c |
| c340 | 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a | 1*45.1-sin(x1*.7)*1.3)*.5)*sin(z |
| c360 | 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e | 1*0.754+cos(z1*0.8+1+c2*12.5))*. |
| c380 | 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 | 2..)*.8-fy..;......Derivative.of |
| c3a0 | 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d | .height.wrt.depth;..lm=1-.7*(ly- |
| c3c0 | 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c | py)/zi;ly=py;......Compare.voxel |
| c3e0 | 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a | s;..x=1/(pz+zf);..py=py+pz*elevz |
| c400 | 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a | ;..ph=if(i,max(py*x,ph),ph);.... |
| c420 | a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 | ..Colorcoding;..ddy=(ly+fy);lo=s |
| c440 | 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 | in(x1*.1+reg43)*.4;lp=cos(z1*.15 |
| c460 | 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f | 1+reg44)*.4;..red1=(.3+ddy*.4+lo |
| c480 | 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 | *.8+lp*.3+lp*ddy*.3)*lm;..green1 |
| c4a0 | 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 | =(.492-lp*.6-lo*.4)*lm;..blue1=( |
| c4c0 | 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d | .31+ddy*.1+lo*.8-lp*.3)*lm;..lo= |
| c4e0 | 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 | sin(x1*.1+reg41)*.4;lp=cos(z1*.1 |
| c500 | 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 | 51+reg42)*.4;..red=red1+((.3+ddy |
| c520 | 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 | *.4+lo*.8+lp*.3+lp*ddy*.3)*lm-re |
| c540 | 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d | d1)*reg45;..green=green1+((.492- |
| c560 | 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a | lp*.6-lo*.4)*lm-green1)*reg45;.. |
| c580 | 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 | blue=blue1+((.31+ddy*.1+lo*.8-lp |
| c5a0 | 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 | *.3)*lm-blue1)*reg45;......Proje |
| c5c0 | 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c | ct.and.add.fog;..x=sqr(sqr(i));l |
| c5e0 | 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 | m=1-x;..red=x*(.65+reg40*.2)+red |
| c600 | 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 | *lm;..green=x*(.95+reg40*.1)+gre |
| c620 | 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 | en*lm;..blue=x+blue*lm;..y=if(eq |
| c640 | 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 | ual(i,1),-1,-ph*af);..x=dx*iw+.0 |
| c660 | 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d | 01;......Adjust.depth.step;..zi= |
| c680 | 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 | if(above(i,.4),zi*1.03,zi);..... |
| c6a0 | 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d | fx=reg00;fy=reg01;fz=reg02;..ph= |
| c6c0 | 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d | -1;ly=0;....zf=reg03;..px=0;pz=- |
| c6e0 | 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 | zf;..elevz=reg04;..cr=reg06;sr=r |
| c700 | 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 | eg07;af=w/h;..zi=reg08*invsqrt(1 |
| c720 | 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d | +sqr(dx*.05));....iw=2/w;....c1= |
| c740 | 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 | reg10;c2=reg11;...........n=50;d |
| c760 | 78 3d 2b 30 37 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 | x=+07;.................$...b.... |
| c780 | 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 | ......Setup.tracer;..pz=pz+zi;px |
| c7a0 | 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 | =px+dx*.04*zi;..z1=pz*cr-px*sr+f |
| c7c0 | 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 | z;..x1=pz*sr+px*cr+fx;......Calc |
| c7e0 | 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 | ulate.heightmap;..py=(sin(x1*0.3 |
| c800 | 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 | 7+1)*sin(z1*0.4333-c1*71)..+sin( |
| c820 | 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 | x1*.4-c2*3)*sin(z1*.6+cos(z1)+si |
| c840 | 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 | n(c2*5)*20)*.6..+sin(x1*0.419+c2 |
| c860 | 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 | *10+1.5)*sin(z1*0.1333+c1*20)*.4 |
| c880 | 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e | ..+sin(x1*0.597+2+c1*17+sin(x1*. |
| c8a0 | 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 | 71+c2*81-c1*45.1-sin(x1*.7)*1.3) |
| c8c0 | 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 | *.5)*sin(z1*0.754+cos(z1*0.8+1+c |
| c8e0 | 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 | 2*12.5))*.2..)*.8-fy..;......Der |
| c900 | 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d | ivative.of.height.wrt.depth;..lm |
| c920 | 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d | =1-.7*(ly-py)/zi;ly=py;......Com |
| c940 | 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 | pare.voxels;..x=1/(pz+zf);..py=p |
| c960 | 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 | y+pz*elevz;..ph=if(i,max(py*x,ph |
| c980 | 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c | ),ph);......Colorcoding;..ddy=(l |
| c9a0 | 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d | y+fy);lo=sin(x1*.1+reg43)*.4;lp= |
| c9c0 | 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 | cos(z1*.151+reg44)*.4;..red1=(.3 |
| c9e0 | 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c | +ddy*.4+lo*.8+lp*.3+lp*ddy*.3)*l |
| ca00 | 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d | m;..green1=(.492-lp*.6-lo*.4)*lm |
| ca20 | 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 | ;..blue1=(.31+ddy*.1+lo*.8-lp*.3 |
| ca40 | 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 | )*lm;..lo=sin(x1*.1+reg41)*.4;lp |
| ca60 | 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 | =cos(z1*.151+reg42)*.4;..red=red |
| ca80 | 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 | 1+((.3+ddy*.4+lo*.8+lp*.3+lp*ddy |
| caa0 | 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 | *.3)*lm-red1)*reg45;..green=gree |
| cac0 | 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 | n1+((.492-lp*.6-lo*.4)*lm-green1 |
| cae0 | 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e | )*reg45;..blue=blue1+((.31+ddy*. |
| cb00 | 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d | 1+lo*.8-lp*.3)*lm-blue1)*reg45;. |
| cb20 | 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 | .....Project.and.add.fog;..x=sqr |
| cb40 | 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 | (sqr(i));lm=1-x;..red=x*(.65+reg |
| cb60 | 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 | 40*.2)+red*lm;..green=x*(.95+reg |
| cb80 | 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d | 40*.1)+green*lm;..blue=x+blue*lm |
| cba0 | 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a | ;..y=if(equal(i,1),-1,-ph*af);.. |
| cbc0 | 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 | x=dx*iw+.001;......Adjust.depth. |
| cbe0 | 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 | step;..zi=if(above(i,.4),zi*1.03 |
| cc00 | 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 | ,zi);.....fx=reg00;fy=reg01;fz=r |
| cc20 | 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d | eg02;..ph=-1;ly=0;....zf=reg03;. |
| cc40 | 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d | .px=0;pz=-zf;..elevz=reg04;..cr= |
| cc60 | 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 | reg06;sr=reg07;af=w/h;..zi=reg08 |
| cc80 | 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 | *invsqrt(1+sqr(dx*.05));....iw=2 |
| cca0 | 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 | /w;....c1=reg10;c2=reg11;....... |
| ccc0 | 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 30 38 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 | ....n=50;dx=+08;................ |
| cce0 | 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 | .$...b..........Setup.tracer;..p |
| cd00 | 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a | z=pz+zi;px=px+dx*.04*zi;..z1=pz* |
| cd20 | 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b | cr-px*sr+fz;..x1=pz*sr+px*cr+fx; |
| cd40 | 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 | ......Calculate.heightmap;..py=( |
| cd60 | 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a | sin(x1*0.37+1)*sin(z1*0.4333-c1* |
| cd80 | 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b | 71)..+sin(x1*.4-c2*3)*sin(z1*.6+ |
| cda0 | 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 | cos(z1)+sin(c2*5)*20)*.6..+sin(x |
| cdc0 | 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 | 1*0.419+c2*10+1.5)*sin(z1*0.1333 |
| cde0 | 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 | +c1*20)*.4..+sin(x1*0.597+2+c1*1 |
| ce00 | 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 | 7+sin(x1*.71+c2*81-c1*45.1-sin(x |
| ce20 | 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 | 1*.7)*1.3)*.5)*sin(z1*0.754+cos( |
| ce40 | 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 | z1*0.8+1+c2*12.5))*.2..)*.8-fy.. |
| ce60 | 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 | ;......Derivative.of.height.wrt. |
| ce80 | 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 | depth;..lm=1-.7*(ly-py)/zi;ly=py |
| cea0 | 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b | ;......Compare.voxels;..x=1/(pz+ |
| cec0 | 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d | zf);..py=py+pz*elevz;..ph=if(i,m |
| cee0 | 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e | ax(py*x,ph),ph);......Colorcodin |
| cf00 | 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 | g;..ddy=(ly+fy);lo=sin(x1*.1+reg |
| cf20 | 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b | 43)*.4;lp=cos(z1*.151+reg44)*.4; |
| cf40 | 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 | ..red1=(.3+ddy*.4+lo*.8+lp*.3+lp |
| cf60 | 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 | *ddy*.3)*lm;..green1=(.492-lp*.6 |
| cf80 | 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c | -lo*.4)*lm;..blue1=(.31+ddy*.1+l |
| cfa0 | 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 | o*.8-lp*.3)*lm;..lo=sin(x1*.1+re |
| cfc0 | 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 | g41)*.4;lp=cos(z1*.151+reg42)*.4 |
| cfe0 | 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 | ;..red=red1+((.3+ddy*.4+lo*.8+lp |
| d000 | 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a | *.3+lp*ddy*.3)*lm-red1)*reg45;.. |
| d020 | 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 | green=green1+((.492-lp*.6-lo*.4) |
| d040 | 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 | *lm-green1)*reg45;..blue=blue1+( |
| d060 | 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 | (.31+ddy*.1+lo*.8-lp*.3)*lm-blue |
| d080 | 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 | 1)*reg45;......Project.and.add.f |
| d0a0 | 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d | og;..x=sqr(sqr(i));lm=1-x;..red= |
| d0c0 | 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d | x*(.65+reg40*.2)+red*lm;..green= |
| d0e0 | 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 | x*(.95+reg40*.1)+green*lm;..blue |
| d100 | 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c | =x+blue*lm;..y=if(equal(i,1),-1, |
| d120 | 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a | -ph*af);..x=dx*iw+.001;......Adj |
| d140 | 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e | ust.depth.step;..zi=if(above(i,. |
| d160 | 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d | 4),zi*1.03,zi);.....fx=reg00;fy= |
| d180 | 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a | reg01;fz=reg02;..ph=-1;ly=0;.... |
| d1a0 | 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 | zf=reg03;..px=0;pz=-zf;..elevz=r |
| d1c0 | 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b | eg04;..cr=reg06;sr=reg07;af=w/h; |
| d1e0 | 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 | ..zi=reg08*invsqrt(1+sqr(dx*.05) |
| d200 | 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 | );....iw=2/w;....c1=reg10;c2=reg |
| d220 | 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 30 39 3b 00 02 00 00 00 01 | 11;...........n=50;dx=+09;...... |
| d240 | 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 | ...........$...b..........Setup. |
| d260 | 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a | tracer;..pz=pz+zi;px=px+dx*.04*z |
| d280 | 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 | i;..z1=pz*cr-px*sr+fz;..x1=pz*sr |
| d2a0 | 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 | +px*cr+fx;......Calculate.height |
| d2c0 | 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a | map;..py=(sin(x1*0.37+1)*sin(z1* |
| d2e0 | 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a | 0.4333-c1*71)..+sin(x1*.4-c2*3)* |
| d300 | 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a | sin(z1*.6+cos(z1)+sin(c2*5)*20)* |
| d320 | 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e | .6..+sin(x1*0.419+c2*10+1.5)*sin |
| d340 | 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e | (z1*0.1333+c1*20)*.4..+sin(x1*0. |
| d360 | 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a | 597+2+c1*17+sin(x1*.71+c2*81-c1* |
| d380 | 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a | 45.1-sin(x1*.7)*1.3)*.5)*sin(z1* |
| d3a0 | 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d | 0.754+cos(z1*0.8+1+c2*12.5))*.2. |
| d3c0 | 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 | .)*.8-fy..;......Derivative.of.h |
| d3e0 | 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 | eight.wrt.depth;..lm=1-.7*(ly-py |
| d400 | 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b | )/zi;ly=py;......Compare.voxels; |
| d420 | 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d | ..x=1/(pz+zf);..py=py+pz*elevz;. |
| d440 | 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 | .ph=if(i,max(py*x,ph),ph);...... |
| d460 | 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e | Colorcoding;..ddy=(ly+fy);lo=sin |
| d480 | 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b | (x1*.1+reg43)*.4;lp=cos(z1*.151+ |
| d4a0 | 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e | reg44)*.4;..red1=(.3+ddy*.4+lo*. |
| d4c0 | 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 | 8+lp*.3+lp*ddy*.3)*lm;..green1=( |
| d4e0 | 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 | .492-lp*.6-lo*.4)*lm;..blue1=(.3 |
| d500 | 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 | 1+ddy*.1+lo*.8-lp*.3)*lm;..lo=si |
| d520 | 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 | n(x1*.1+reg41)*.4;lp=cos(z1*.151 |
| d540 | 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e | +reg42)*.4;..red=red1+((.3+ddy*. |
| d560 | 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 | 4+lo*.8+lp*.3+lp*ddy*.3)*lm-red1 |
| d580 | 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 | )*reg45;..green=green1+((.492-lp |
| d5a0 | 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c | *.6-lo*.4)*lm-green1)*reg45;..bl |
| d5c0 | 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e | ue=blue1+((.31+ddy*.1+lo*.8-lp*. |
| d5e0 | 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 | 3)*lm-blue1)*reg45;......Project |
| d600 | 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d | .and.add.fog;..x=sqr(sqr(i));lm= |
| d620 | 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c | 1-x;..red=x*(.65+reg40*.2)+red*l |
| d640 | 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e | m;..green=x*(.95+reg40*.1)+green |
| d660 | 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 | *lm;..blue=x+blue*lm;..y=if(equa |
| d680 | 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 | l(i,1),-1,-ph*af);..x=dx*iw+.001 |
| d6a0 | 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 | ;......Adjust.depth.step;..zi=if |
| d6c0 | 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 | (above(i,.4),zi*1.03,zi);.....fx |
| d6e0 | 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 | =reg00;fy=reg01;fz=reg02;..ph=-1 |
| d700 | 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 | ;ly=0;....zf=reg03;..px=0;pz=-zf |
| d720 | 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 | ;..elevz=reg04;..cr=reg06;sr=reg |
| d740 | 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 | 07;af=w/h;..zi=reg08*invsqrt(1+s |
| d760 | 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 | qr(dx*.05));....iw=2/w;....c1=re |
| d780 | 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d | g10;c2=reg11;...........n=50;dx= |
| d7a0 | 2b 31 30 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 | +10;.................$...b...... |
| d7c0 | 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 | ....Setup.tracer;..pz=pz+zi;px=p |
| d7e0 | 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b | x+dx*.04*zi;..z1=pz*cr-px*sr+fz; |
| d800 | 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c | ..x1=pz*sr+px*cr+fx;......Calcul |
| d820 | 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b | ate.heightmap;..py=(sin(x1*0.37+ |
| d840 | 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 | 1)*sin(z1*0.4333-c1*71)..+sin(x1 |
| d860 | 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 | *.4-c2*3)*sin(z1*.6+cos(z1)+sin( |
| d880 | 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 | c2*5)*20)*.6..+sin(x1*0.419+c2*1 |
| d8a0 | 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a | 0+1.5)*sin(z1*0.1333+c1*20)*.4.. |
| d8c0 | 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 | +sin(x1*0.597+2+c1*17+sin(x1*.71 |
| d8e0 | 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e | +c2*81-c1*45.1-sin(x1*.7)*1.3)*. |
| d900 | 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a | 5)*sin(z1*0.754+cos(z1*0.8+1+c2* |
| d920 | 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 | 12.5))*.2..)*.8-fy..;......Deriv |
| d940 | 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 | ative.of.height.wrt.depth;..lm=1 |
| d960 | 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 | -.7*(ly-py)/zi;ly=py;......Compa |
| d980 | 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b | re.voxels;..x=1/(pz+zf);..py=py+ |
| d9a0 | 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c | pz*elevz;..ph=if(i,max(py*x,ph), |
| d9c0 | 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b | ph);......Colorcoding;..ddy=(ly+ |
| d9e0 | 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f | fy);lo=sin(x1*.1+reg43)*.4;lp=co |
| da00 | 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 | s(z1*.151+reg44)*.4;..red1=(.3+d |
| da20 | 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b | dy*.4+lo*.8+lp*.3+lp*ddy*.3)*lm; |
| da40 | 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d | ..green1=(.492-lp*.6-lo*.4)*lm;. |
| da60 | 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a | .blue1=(.31+ddy*.1+lo*.8-lp*.3)* |
| da80 | 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 | lm;..lo=sin(x1*.1+reg41)*.4;lp=c |
| daa0 | 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b | os(z1*.151+reg42)*.4;..red=red1+ |
| dac0 | 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e | ((.3+ddy*.4+lo*.8+lp*.3+lp*ddy*. |
| dae0 | 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 | 3)*lm-red1)*reg45;..green=green1 |
| db00 | 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a | +((.492-lp*.6-lo*.4)*lm-green1)* |
| db20 | 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b | reg45;..blue=blue1+((.31+ddy*.1+ |
| db40 | 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d | lo*.8-lp*.3)*lm-blue1)*reg45;... |
| db60 | 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 | ...Project.and.add.fog;..x=sqr(s |
| db80 | 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 | qr(i));lm=1-x;..red=x*(.65+reg40 |
| dba0 | 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 | *.2)+red*lm;..green=x*(.95+reg40 |
| dbc0 | 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d | *.1)+green*lm;..blue=x+blue*lm;. |
| dbe0 | 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d | .y=if(equal(i,1),-1,-ph*af);..x= |
| dc00 | 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 | dx*iw+.001;......Adjust.depth.st |
| dc20 | 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a | ep;..zi=if(above(i,.4),zi*1.03,z |
| dc40 | 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 | i);.....fx=reg00;fy=reg01;fz=reg |
| dc60 | 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 | 02;..ph=-1;ly=0;....zf=reg03;..p |
| dc80 | 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 | x=0;pz=-zf;..elevz=reg04;..cr=re |
| dca0 | 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 | g06;sr=reg07;af=w/h;..zi=reg08*i |
| dcc0 | 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 | nvsqrt(1+sqr(dx*.05));....iw=2/w |
| dce0 | 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 | ;....c1=reg10;c2=reg11;......... |
| dd00 | 00 00 6e 3d 35 30 3b 64 78 3d 2b 31 31 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 | ..n=50;dx=+11;.................$ |
| dd20 | 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d | ...b..........Setup.tracer;..pz= |
| dd40 | 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 | pz+zi;px=px+dx*.04*zi;..z1=pz*cr |
| dd60 | 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a | -px*sr+fz;..x1=pz*sr+px*cr+fx;.. |
| dd80 | 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 | ....Calculate.heightmap;..py=(si |
| dda0 | 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 | n(x1*0.37+1)*sin(z1*0.4333-c1*71 |
| ddc0 | 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f | )..+sin(x1*.4-c2*3)*sin(z1*.6+co |
| dde0 | 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a | s(z1)+sin(c2*5)*20)*.6..+sin(x1* |
| de00 | 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 | 0.419+c2*10+1.5)*sin(z1*0.1333+c |
| de20 | 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b | 1*20)*.4..+sin(x1*0.597+2+c1*17+ |
| de40 | 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a | sin(x1*.71+c2*81-c1*45.1-sin(x1* |
| de60 | 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 | .7)*1.3)*.5)*sin(z1*0.754+cos(z1 |
| de80 | 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d | *0.8+1+c2*12.5))*.2..)*.8-fy..;. |
| dea0 | 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 | .....Derivative.of.height.wrt.de |
| dec0 | 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d | pth;..lm=1-.7*(ly-py)/zi;ly=py;. |
| dee0 | 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 | .....Compare.voxels;..x=1/(pz+zf |
| df00 | 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 | );..py=py+pz*elevz;..ph=if(i,max |
| df20 | 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b | (py*x,ph),ph);......Colorcoding; |
| df40 | 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 | ..ddy=(ly+fy);lo=sin(x1*.1+reg43 |
| df60 | 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a | )*.4;lp=cos(z1*.151+reg44)*.4;.. |
| df80 | 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 | red1=(.3+ddy*.4+lo*.8+lp*.3+lp*d |
| dfa0 | 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c | dy*.3)*lm;..green1=(.492-lp*.6-l |
| dfc0 | 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a | o*.4)*lm;..blue1=(.31+ddy*.1+lo* |
| dfe0 | 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 | .8-lp*.3)*lm;..lo=sin(x1*.1+reg4 |
| e000 | 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d | 1)*.4;lp=cos(z1*.151+reg42)*.4;. |
| e020 | 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e | .red=red1+((.3+ddy*.4+lo*.8+lp*. |
| e040 | 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 | 3+lp*ddy*.3)*lm-red1)*reg45;..gr |
| e060 | 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c | een=green1+((.492-lp*.6-lo*.4)*l |
| e080 | 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e | m-green1)*reg45;..blue=blue1+((. |
| e0a0 | 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 | 31+ddy*.1+lo*.8-lp*.3)*lm-blue1) |
| e0c0 | 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 | *reg45;......Project.and.add.fog |
| e0e0 | 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a | ;..x=sqr(sqr(i));lm=1-x;..red=x* |
| e100 | 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a | (.65+reg40*.2)+red*lm;..green=x* |
| e120 | 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 | (.95+reg40*.1)+green*lm;..blue=x |
| e140 | 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 | +blue*lm;..y=if(equal(i,1),-1,-p |
| e160 | 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 | h*af);..x=dx*iw+.001;......Adjus |
| e180 | 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 | t.depth.step;..zi=if(above(i,.4) |
| e1a0 | 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 | ,zi*1.03,zi);.....fx=reg00;fy=re |
| e1c0 | 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 | g01;fz=reg02;..ph=-1;ly=0;....zf |
| e1e0 | 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 | =reg03;..px=0;pz=-zf;..elevz=reg |
| e200 | 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a | 04;..cr=reg06;sr=reg07;af=w/h;.. |
| e220 | 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b | zi=reg08*invsqrt(1+sqr(dx*.05)); |
| e240 | 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 | ....iw=2/w;....c1=reg10;c2=reg11 |
| e260 | 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 31 32 3b 00 02 00 00 00 01 00 00 | ;...........n=50;dx=+12;........ |
| e280 | 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 | .........$...b..........Setup.tr |
| e2a0 | 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b | acer;..pz=pz+zi;px=px+dx*.04*zi; |
| e2c0 | 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 | ..z1=pz*cr-px*sr+fz;..x1=pz*sr+p |
| e2e0 | 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 | x*cr+fx;......Calculate.heightma |
| e300 | 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e | p;..py=(sin(x1*0.37+1)*sin(z1*0. |
| e320 | 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 | 4333-c1*71)..+sin(x1*.4-c2*3)*si |
| e340 | 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 | n(z1*.6+cos(z1)+sin(c2*5)*20)*.6 |
| e360 | 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a | ..+sin(x1*0.419+c2*10+1.5)*sin(z |
| e380 | 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 | 1*0.1333+c1*20)*.4..+sin(x1*0.59 |
| e3a0 | 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 | 7+2+c1*17+sin(x1*.71+c2*81-c1*45 |
| e3c0 | 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e | .1-sin(x1*.7)*1.3)*.5)*sin(z1*0. |
| e3e0 | 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 | 754+cos(z1*0.8+1+c2*12.5))*.2..) |
| e400 | 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 | *.8-fy..;......Derivative.of.hei |
| e420 | 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f | ght.wrt.depth;..lm=1-.7*(ly-py)/ |
| e440 | 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a | zi;ly=py;......Compare.voxels;.. |
| e460 | 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 | x=1/(pz+zf);..py=py+pz*elevz;..p |
| e480 | 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f | h=if(i,max(py*x,ph),ph);......Co |
| e4a0 | 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 | lorcoding;..ddy=(ly+fy);lo=sin(x |
| e4c0 | 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 | 1*.1+reg43)*.4;lp=cos(z1*.151+re |
| e4e0 | 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b | g44)*.4;..red1=(.3+ddy*.4+lo*.8+ |
| e500 | 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 | lp*.3+lp*ddy*.3)*lm;..green1=(.4 |
| e520 | 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b | 92-lp*.6-lo*.4)*lm;..blue1=(.31+ |
| e540 | 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 | ddy*.1+lo*.8-lp*.3)*lm;..lo=sin( |
| e560 | 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 | x1*.1+reg41)*.4;lp=cos(z1*.151+r |
| e580 | 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b | eg42)*.4;..red=red1+((.3+ddy*.4+ |
| e5a0 | 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a | lo*.8+lp*.3+lp*ddy*.3)*lm-red1)* |
| e5c0 | 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e | reg45;..green=green1+((.492-lp*. |
| e5e0 | 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 | 6-lo*.4)*lm-green1)*reg45;..blue |
| e600 | 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 | =blue1+((.31+ddy*.1+lo*.8-lp*.3) |
| e620 | 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 | *lm-blue1)*reg45;......Project.a |
| e640 | 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d | nd.add.fog;..x=sqr(sqr(i));lm=1- |
| e660 | 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b | x;..red=x*(.65+reg40*.2)+red*lm; |
| e680 | 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c | ..green=x*(.95+reg40*.1)+green*l |
| e6a0 | 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 | m;..blue=x+blue*lm;..y=if(equal( |
| e6c0 | 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d | i,1),-1,-ph*af);..x=dx*iw+.001;. |
| e6e0 | 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 | .....Adjust.depth.step;..zi=if(a |
| e700 | 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 | bove(i,.4),zi*1.03,zi);.....fx=r |
| e720 | 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c | eg00;fy=reg01;fz=reg02;..ph=-1;l |
| e740 | 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d | y=0;....zf=reg03;..px=0;pz=-zf;. |
| e760 | 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 | .elevz=reg04;..cr=reg06;sr=reg07 |
| e780 | 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 | ;af=w/h;..zi=reg08*invsqrt(1+sqr |
| e7a0 | 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 | (dx*.05));....iw=2/w;....c1=reg1 |
| e7c0 | 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 31 | 0;c2=reg11;...........n=50;dx=+1 |
| e7e0 | 33 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 | 3;.................$...b........ |
| e800 | a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b | ..Setup.tracer;..pz=pz+zi;px=px+ |
| e820 | 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a | dx*.04*zi;..z1=pz*cr-px*sr+fz;.. |
| e840 | 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 | x1=pz*sr+px*cr+fx;......Calculat |
| e860 | 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 | e.heightmap;..py=(sin(x1*0.37+1) |
| e880 | 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e | *sin(z1*0.4333-c1*71)..+sin(x1*. |
| e8a0 | 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 | 4-c2*3)*sin(z1*.6+cos(z1)+sin(c2 |
| e8c0 | 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b | *5)*20)*.6..+sin(x1*0.419+c2*10+ |
| e8e0 | 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 | 1.5)*sin(z1*0.1333+c1*20)*.4..+s |
| e900 | 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 | in(x1*0.597+2+c1*17+sin(x1*.71+c |
| e920 | 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 | 2*81-c1*45.1-sin(x1*.7)*1.3)*.5) |
| e940 | 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 | *sin(z1*0.754+cos(z1*0.8+1+c2*12 |
| e960 | 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 | .5))*.2..)*.8-fy..;......Derivat |
| e980 | 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e | ive.of.height.wrt.depth;..lm=1-. |
| e9a0 | 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 | 7*(ly-py)/zi;ly=py;......Compare |
| e9c0 | 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a | .voxels;..x=1/(pz+zf);..py=py+pz |
| e9e0 | 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 | *elevz;..ph=if(i,max(py*x,ph),ph |
| ea00 | 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 | );......Colorcoding;..ddy=(ly+fy |
| ea20 | 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 | );lo=sin(x1*.1+reg43)*.4;lp=cos( |
| ea40 | 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 | z1*.151+reg44)*.4;..red1=(.3+ddy |
| ea60 | 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a | *.4+lo*.8+lp*.3+lp*ddy*.3)*lm;.. |
| ea80 | 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 | green1=(.492-lp*.6-lo*.4)*lm;..b |
| eaa0 | 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d | lue1=(.31+ddy*.1+lo*.8-lp*.3)*lm |
| eac0 | 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 | ;..lo=sin(x1*.1+reg41)*.4;lp=cos |
| eae0 | 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 | (z1*.151+reg42)*.4;..red=red1+(( |
| eb00 | 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 | .3+ddy*.4+lo*.8+lp*.3+lp*ddy*.3) |
| eb20 | 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 | *lm-red1)*reg45;..green=green1+( |
| eb40 | 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 | (.492-lp*.6-lo*.4)*lm-green1)*re |
| eb60 | 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f | g45;..blue=blue1+((.31+ddy*.1+lo |
| eb80 | 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 | *.8-lp*.3)*lm-blue1)*reg45;..... |
| eba0 | 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 | .Project.and.add.fog;..x=sqr(sqr |
| ebc0 | 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e | (i));lm=1-x;..red=x*(.65+reg40*. |
| ebe0 | 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e | 2)+red*lm;..green=x*(.95+reg40*. |
| ec00 | 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 | 1)+green*lm;..blue=x+blue*lm;..y |
| ec20 | 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 | =if(equal(i,1),-1,-ph*af);..x=dx |
| ec40 | 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 | *iw+.001;......Adjust.depth.step |
| ec60 | 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 | ;..zi=if(above(i,.4),zi*1.03,zi) |
| ec80 | 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 | ;.....fx=reg00;fy=reg01;fz=reg02 |
| eca0 | 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d | ;..ph=-1;ly=0;....zf=reg03;..px= |
| ecc0 | 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 | 0;pz=-zf;..elevz=reg04;..cr=reg0 |
| ece0 | 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 | 6;sr=reg07;af=w/h;..zi=reg08*inv |
| ed00 | 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d | sqrt(1+sqr(dx*.05));....iw=2/w;. |
| ed20 | 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 | ...c1=reg10;c2=reg11;........... |
| ed40 | 6e 3d 35 30 3b 64 78 3d 2b 31 34 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 | n=50;dx=+14;.................$.. |
| ed60 | 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a | .b..........Setup.tracer;..pz=pz |
| ed80 | 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 | +zi;px=px+dx*.04*zi;..z1=pz*cr-p |
| eda0 | 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a | x*sr+fz;..x1=pz*sr+px*cr+fx;.... |
| edc0 | a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 | ..Calculate.heightmap;..py=(sin( |
| ede0 | 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d | x1*0.37+1)*sin(z1*0.4333-c1*71). |
| ee00 | 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 | .+sin(x1*.4-c2*3)*sin(z1*.6+cos( |
| ee20 | 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e | z1)+sin(c2*5)*20)*.6..+sin(x1*0. |
| ee40 | 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a | 419+c2*10+1.5)*sin(z1*0.1333+c1* |
| ee60 | 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 | 20)*.4..+sin(x1*0.597+2+c1*17+si |
| ee80 | 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 | n(x1*.71+c2*81-c1*45.1-sin(x1*.7 |
| eea0 | 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 | )*1.3)*.5)*sin(z1*0.754+cos(z1*0 |
| eec0 | 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d | .8+1+c2*12.5))*.2..)*.8-fy..;... |
| eee0 | 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 | ...Derivative.of.height.wrt.dept |
| ef00 | 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d | h;..lm=1-.7*(ly-py)/zi;ly=py;... |
| ef20 | 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b | ...Compare.voxels;..x=1/(pz+zf); |
| ef40 | 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 | ..py=py+pz*elevz;..ph=if(i,max(p |
| ef60 | 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a | y*x,ph),ph);......Colorcoding;.. |
| ef80 | 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a | ddy=(ly+fy);lo=sin(x1*.1+reg43)* |
| efa0 | 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 | .4;lp=cos(z1*.151+reg44)*.4;..re |
| efc0 | 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 | d1=(.3+ddy*.4+lo*.8+lp*.3+lp*ddy |
| efe0 | 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a | *.3)*lm;..green1=(.492-lp*.6-lo* |
| f000 | 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 | .4)*lm;..blue1=(.31+ddy*.1+lo*.8 |
| f020 | 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 | -lp*.3)*lm;..lo=sin(x1*.1+reg41) |
| f040 | 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 | *.4;lp=cos(z1*.151+reg42)*.4;..r |
| f060 | 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b | ed=red1+((.3+ddy*.4+lo*.8+lp*.3+ |
| f080 | 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 | lp*ddy*.3)*lm-red1)*reg45;..gree |
| f0a0 | 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d | n=green1+((.492-lp*.6-lo*.4)*lm- |
| f0c0 | 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 | green1)*reg45;..blue=blue1+((.31 |
| f0e0 | 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 | +ddy*.1+lo*.8-lp*.3)*lm-blue1)*r |
| f100 | 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d | eg45;......Project.and.add.fog;. |
| f120 | 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e | .x=sqr(sqr(i));lm=1-x;..red=x*(. |
| f140 | 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e | 65+reg40*.2)+red*lm;..green=x*(. |
| f160 | 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 | 95+reg40*.1)+green*lm;..blue=x+b |
| f180 | 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a | lue*lm;..y=if(equal(i,1),-1,-ph* |
| f1a0 | 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 | af);..x=dx*iw+.001;......Adjust. |
| f1c0 | 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a | depth.step;..zi=if(above(i,.4),z |
| f1e0 | 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 | i*1.03,zi);.....fx=reg00;fy=reg0 |
| f200 | 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 | 1;fz=reg02;..ph=-1;ly=0;....zf=r |
| f220 | 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 | eg03;..px=0;pz=-zf;..elevz=reg04 |
| f240 | 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 | ;..cr=reg06;sr=reg07;af=w/h;..zi |
| f260 | 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a | =reg08*invsqrt(1+sqr(dx*.05));.. |
| f280 | 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d | ..iw=2/w;....c1=reg10;c2=reg11;. |
| f2a0 | 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 31 35 3b 00 02 00 00 00 01 00 00 00 ff | ..........n=50;dx=+15;.......... |
| f2c0 | ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 | .......$...b..........Setup.trac |
| f2e0 | 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a | er;..pz=pz+zi;px=px+dx*.04*zi;.. |
| f300 | 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a | z1=pz*cr-px*sr+fz;..x1=pz*sr+px* |
| f320 | 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b | cr+fx;......Calculate.heightmap; |
| f340 | 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 | ..py=(sin(x1*0.37+1)*sin(z1*0.43 |
| f360 | 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 | 33-c1*71)..+sin(x1*.4-c2*3)*sin( |
| f380 | 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a | z1*.6+cos(z1)+sin(c2*5)*20)*.6.. |
| f3a0 | 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a | +sin(x1*0.419+c2*10+1.5)*sin(z1* |
| f3c0 | 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b | 0.1333+c1*20)*.4..+sin(x1*0.597+ |
| f3e0 | 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 | 2+c1*17+sin(x1*.71+c2*81-c1*45.1 |
| f400 | 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 | -sin(x1*.7)*1.3)*.5)*sin(z1*0.75 |
| f420 | 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e | 4+cos(z1*0.8+1+c2*12.5))*.2..)*. |
| f440 | 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 | 8-fy..;......Derivative.of.heigh |
| f460 | 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 | t.wrt.depth;..lm=1-.7*(ly-py)/zi |
| f480 | 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d | ;ly=py;......Compare.voxels;..x= |
| f4a0 | 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d | 1/(pz+zf);..py=py+pz*elevz;..ph= |
| f4c0 | 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f | if(i,max(py*x,ph),ph);......Colo |
| f4e0 | 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a | rcoding;..ddy=(ly+fy);lo=sin(x1* |
| f500 | 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 | .1+reg43)*.4;lp=cos(z1*.151+reg4 |
| f520 | 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 | 4)*.4;..red1=(.3+ddy*.4+lo*.8+lp |
| f540 | 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 | *.3+lp*ddy*.3)*lm;..green1=(.492 |
| f560 | 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 | -lp*.6-lo*.4)*lm;..blue1=(.31+dd |
| f580 | 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 | y*.1+lo*.8-lp*.3)*lm;..lo=sin(x1 |
| f5a0 | 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 | *.1+reg41)*.4;lp=cos(z1*.151+reg |
| f5c0 | 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f | 42)*.4;..red=red1+((.3+ddy*.4+lo |
| f5e0 | 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 | *.8+lp*.3+lp*ddy*.3)*lm-red1)*re |
| f600 | 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d | g45;..green=green1+((.492-lp*.6- |
| f620 | 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 | lo*.4)*lm-green1)*reg45;..blue=b |
| f640 | 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c | lue1+((.31+ddy*.1+lo*.8-lp*.3)*l |
| f660 | 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 | m-blue1)*reg45;......Project.and |
| f680 | 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b | .add.fog;..x=sqr(sqr(i));lm=1-x; |
| f6a0 | 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a | ..red=x*(.65+reg40*.2)+red*lm;.. |
| f6c0 | 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b | green=x*(.95+reg40*.1)+green*lm; |
| f6e0 | 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c | ..blue=x+blue*lm;..y=if(equal(i, |
| f700 | 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d | 1),-1,-ph*af);..x=dx*iw+.001;... |
| f720 | 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f | ...Adjust.depth.step;..zi=if(abo |
| f740 | 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 | ve(i,.4),zi*1.03,zi);.....fx=reg |
| f760 | 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d | 00;fy=reg01;fz=reg02;..ph=-1;ly= |
| f780 | 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 | 0;....zf=reg03;..px=0;pz=-zf;..e |
| f7a0 | 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 | levz=reg04;..cr=reg06;sr=reg07;a |
| f7c0 | 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 | f=w/h;..zi=reg08*invsqrt(1+sqr(d |
| f7e0 | 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b | x*.05));....iw=2/w;....c1=reg10; |
| f800 | 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 31 36 3b | c2=reg11;...........n=50;dx=+16; |
| f820 | 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 | .................$...b.......... |
| f840 | 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 | Setup.tracer;..pz=pz+zi;px=px+dx |
| f860 | 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 | *.04*zi;..z1=pz*cr-px*sr+fz;..x1 |
| f880 | 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 | =pz*sr+px*cr+fx;......Calculate. |
| f8a0 | 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 | heightmap;..py=(sin(x1*0.37+1)*s |
| f8c0 | 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d | in(z1*0.4333-c1*71)..+sin(x1*.4- |
| f8e0 | 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 | c2*3)*sin(z1*.6+cos(z1)+sin(c2*5 |
| f900 | 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e | )*20)*.6..+sin(x1*0.419+c2*10+1. |
| f920 | 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e | 5)*sin(z1*0.1333+c1*20)*.4..+sin |
| f940 | 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a | (x1*0.597+2+c1*17+sin(x1*.71+c2* |
| f960 | 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 | 81-c1*45.1-sin(x1*.7)*1.3)*.5)*s |
| f980 | 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 | in(z1*0.754+cos(z1*0.8+1+c2*12.5 |
| f9a0 | 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 | ))*.2..)*.8-fy..;......Derivativ |
| f9c0 | 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a | e.of.height.wrt.depth;..lm=1-.7* |
| f9e0 | 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 | (ly-py)/zi;ly=py;......Compare.v |
| fa00 | 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 | oxels;..x=1/(pz+zf);..py=py+pz*e |
| fa20 | 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b | levz;..ph=if(i,max(py*x,ph),ph); |
| fa40 | 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b | ......Colorcoding;..ddy=(ly+fy); |
| fa60 | 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 | lo=sin(x1*.1+reg43)*.4;lp=cos(z1 |
| fa80 | 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e | *.151+reg44)*.4;..red1=(.3+ddy*. |
| faa0 | 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 | 4+lo*.8+lp*.3+lp*ddy*.3)*lm;..gr |
| fac0 | 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 | een1=(.492-lp*.6-lo*.4)*lm;..blu |
| fae0 | 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d | e1=(.31+ddy*.1+lo*.8-lp*.3)*lm;. |
| fb00 | 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a | .lo=sin(x1*.1+reg41)*.4;lp=cos(z |
| fb20 | 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 | 1*.151+reg42)*.4;..red=red1+((.3 |
| fb40 | 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c | +ddy*.4+lo*.8+lp*.3+lp*ddy*.3)*l |
| fb60 | 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e | m-red1)*reg45;..green=green1+((. |
| fb80 | 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 | 492-lp*.6-lo*.4)*lm-green1)*reg4 |
| fba0 | 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e | 5;..blue=blue1+((.31+ddy*.1+lo*. |
| fbc0 | 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 | 8-lp*.3)*lm-blue1)*reg45;......P |
| fbe0 | 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 | roject.and.add.fog;..x=sqr(sqr(i |
| fc00 | 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 | ));lm=1-x;..red=x*(.65+reg40*.2) |
| fc20 | 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 | +red*lm;..green=x*(.95+reg40*.1) |
| fc40 | 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 | +green*lm;..blue=x+blue*lm;..y=i |
| fc60 | 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 | f(equal(i,1),-1,-ph*af);..x=dx*i |
| fc80 | 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d | w+.001;......Adjust.depth.step;. |
| fca0 | 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 | .zi=if(above(i,.4),zi*1.03,zi);. |
| fcc0 | b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d | ....fx=reg00;fy=reg01;fz=reg02;. |
| fce0 | 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b | .ph=-1;ly=0;....zf=reg03;..px=0; |
| fd00 | 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b | pz=-zf;..elevz=reg04;..cr=reg06; |
| fd20 | 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 | sr=reg07;af=w/h;..zi=reg08*invsq |
| fd40 | 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d | rt(1+sqr(dx*.05));....iw=2/w;... |
| fd60 | 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d | .c1=reg10;c2=reg11;...........n= |
| fd80 | 35 30 3b 64 78 3d 2b 31 37 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 | 50;dx=+17;.................$...b |
| fda0 | 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a | ..........Setup.tracer;..pz=pz+z |
| fdc0 | 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a | i;px=px+dx*.04*zi;..z1=pz*cr-px* |
| fde0 | 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 | sr+fz;..x1=pz*sr+px*cr+fx;...... |
| fe00 | 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 | Calculate.heightmap;..py=(sin(x1 |
| fe20 | 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b | *0.37+1)*sin(z1*0.4333-c1*71)..+ |
| fe40 | 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 | sin(x1*.4-c2*3)*sin(z1*.6+cos(z1 |
| fe60 | 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 | )+sin(c2*5)*20)*.6..+sin(x1*0.41 |
| fe80 | 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 | 9+c2*10+1.5)*sin(z1*0.1333+c1*20 |
| fea0 | 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 | )*.4..+sin(x1*0.597+2+c1*17+sin( |
| fec0 | 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a | x1*.71+c2*81-c1*45.1-sin(x1*.7)* |
| fee0 | 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 | 1.3)*.5)*sin(z1*0.754+cos(z1*0.8 |
| ff00 | 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 | +1+c2*12.5))*.2..)*.8-fy..;..... |
| ff20 | 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b | .Derivative.of.height.wrt.depth; |
| ff40 | 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 | ..lm=1-.7*(ly-py)/zi;ly=py;..... |
| ff60 | 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a | .Compare.voxels;..x=1/(pz+zf);.. |
| ff80 | 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a | py=py+pz*elevz;..ph=if(i,max(py* |
| ffa0 | 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 | x,ph),ph);......Colorcoding;..dd |
| ffc0 | 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 | y=(ly+fy);lo=sin(x1*.1+reg43)*.4 |
| ffe0 | 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 | ;lp=cos(z1*.151+reg44)*.4;..red1 |
| 10000 | 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e | =(.3+ddy*.4+lo*.8+lp*.3+lp*ddy*. |
| 10020 | 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 | 3)*lm;..green1=(.492-lp*.6-lo*.4 |
| 10040 | 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c | )*lm;..blue1=(.31+ddy*.1+lo*.8-l |
| 10060 | 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e | p*.3)*lm;..lo=sin(x1*.1+reg41)*. |
| 10080 | 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 | 4;lp=cos(z1*.151+reg42)*.4;..red |
| 100a0 | 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 | =red1+((.3+ddy*.4+lo*.8+lp*.3+lp |
| 100c0 | 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d | *ddy*.3)*lm-red1)*reg45;..green= |
| 100e0 | 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 | green1+((.492-lp*.6-lo*.4)*lm-gr |
| 10100 | 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 | een1)*reg45;..blue=blue1+((.31+d |
| 10120 | 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 | dy*.1+lo*.8-lp*.3)*lm-blue1)*reg |
| 10140 | 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 | 45;......Project.and.add.fog;..x |
| 10160 | 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 | =sqr(sqr(i));lm=1-x;..red=x*(.65 |
| 10180 | 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 | +reg40*.2)+red*lm;..green=x*(.95 |
| 101a0 | 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 | +reg40*.1)+green*lm;..blue=x+blu |
| 101c0 | 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 | e*lm;..y=if(equal(i,1),-1,-ph*af |
| 101e0 | 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 | );..x=dx*iw+.001;......Adjust.de |
| 10200 | 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a | pth.step;..zi=if(above(i,.4),zi* |
| 10220 | 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b | 1.03,zi);.....fx=reg00;fy=reg01; |
| 10240 | 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 | fz=reg02;..ph=-1;ly=0;....zf=reg |
| 10260 | 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d | 03;..px=0;pz=-zf;..elevz=reg04;. |
| 10280 | 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 | .cr=reg06;sr=reg07;af=w/h;..zi=r |
| 102a0 | 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a | eg08*invsqrt(1+sqr(dx*.05));.... |
| 102c0 | 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 | iw=2/w;....c1=reg10;c2=reg11;... |
| 102e0 | 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 31 38 3b 00 02 00 00 00 01 00 00 00 ff ff ff | ........n=50;dx=+18;............ |
| 10300 | 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 | .....$...b..........Setup.tracer |
| 10320 | 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 | ;..pz=pz+zi;px=px+dx*.04*zi;..z1 |
| 10340 | 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 | =pz*cr-px*sr+fz;..x1=pz*sr+px*cr |
| 10360 | 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a | +fx;......Calculate.heightmap;.. |
| 10380 | 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 | py=(sin(x1*0.37+1)*sin(z1*0.4333 |
| 103a0 | 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 | -c1*71)..+sin(x1*.4-c2*3)*sin(z1 |
| 103c0 | 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 | *.6+cos(z1)+sin(c2*5)*20)*.6..+s |
| 103e0 | 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e | in(x1*0.419+c2*10+1.5)*sin(z1*0. |
| 10400 | 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b | 1333+c1*20)*.4..+sin(x1*0.597+2+ |
| 10420 | 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 | c1*17+sin(x1*.71+c2*81-c1*45.1-s |
| 10440 | 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b | in(x1*.7)*1.3)*.5)*sin(z1*0.754+ |
| 10460 | 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d | cos(z1*0.8+1+c2*12.5))*.2..)*.8- |
| 10480 | 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 | fy..;......Derivative.of.height. |
| 104a0 | 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c | wrt.depth;..lm=1-.7*(ly-py)/zi;l |
| 104c0 | 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f | y=py;......Compare.voxels;..x=1/ |
| 104e0 | 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 | (pz+zf);..py=py+pz*elevz;..ph=if |
| 10500 | 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 | (i,max(py*x,ph),ph);......Colorc |
| 10520 | 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 | oding;..ddy=(ly+fy);lo=sin(x1*.1 |
| 10540 | 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 | +reg43)*.4;lp=cos(z1*.151+reg44) |
| 10560 | 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e | *.4;..red1=(.3+ddy*.4+lo*.8+lp*. |
| 10580 | 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c | 3+lp*ddy*.3)*lm;..green1=(.492-l |
| 105a0 | 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a | p*.6-lo*.4)*lm;..blue1=(.31+ddy* |
| 105c0 | 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e | .1+lo*.8-lp*.3)*lm;..lo=sin(x1*. |
| 105e0 | 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 | 1+reg41)*.4;lp=cos(z1*.151+reg42 |
| 10600 | 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e | )*.4;..red=red1+((.3+ddy*.4+lo*. |
| 10620 | 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 | 8+lp*.3+lp*ddy*.3)*lm-red1)*reg4 |
| 10640 | 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f | 5;..green=green1+((.492-lp*.6-lo |
| 10660 | 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 | *.4)*lm-green1)*reg45;..blue=blu |
| 10680 | 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d | e1+((.31+ddy*.1+lo*.8-lp*.3)*lm- |
| 106a0 | 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 | blue1)*reg45;......Project.and.a |
| 106c0 | 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a | dd.fog;..x=sqr(sqr(i));lm=1-x;.. |
| 106e0 | 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 | red=x*(.65+reg40*.2)+red*lm;..gr |
| 10700 | 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a | een=x*(.95+reg40*.1)+green*lm;.. |
| 10720 | 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 | blue=x+blue*lm;..y=if(equal(i,1) |
| 10740 | 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 | ,-1,-ph*af);..x=dx*iw+.001;..... |
| 10760 | 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 | .Adjust.depth.step;..zi=if(above |
| 10780 | 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 | (i,.4),zi*1.03,zi);.....fx=reg00 |
| 107a0 | 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b | ;fy=reg01;fz=reg02;..ph=-1;ly=0; |
| 107c0 | 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 | ....zf=reg03;..px=0;pz=-zf;..ele |
| 107e0 | 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d | vz=reg04;..cr=reg06;sr=reg07;af= |
| 10800 | 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a | w/h;..zi=reg08*invsqrt(1+sqr(dx* |
| 10820 | 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 | .05));....iw=2/w;....c1=reg10;c2 |
| 10840 | 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 31 39 3b 00 02 | =reg11;...........n=50;dx=+19;.. |
| 10860 | 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 | ...............$...b..........Se |
| 10880 | 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e | tup.tracer;..pz=pz+zi;px=px+dx*. |
| 108a0 | 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 | 04*zi;..z1=pz*cr-px*sr+fz;..x1=p |
| 108c0 | 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 | z*sr+px*cr+fx;......Calculate.he |
| 108e0 | 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e | ightmap;..py=(sin(x1*0.37+1)*sin |
| 10900 | 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 | (z1*0.4333-c1*71)..+sin(x1*.4-c2 |
| 10920 | 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a | *3)*sin(z1*.6+cos(z1)+sin(c2*5)* |
| 10940 | 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 | 20)*.6..+sin(x1*0.419+c2*10+1.5) |
| 10960 | 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 | *sin(z1*0.1333+c1*20)*.4..+sin(x |
| 10980 | 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 | 1*0.597+2+c1*17+sin(x1*.71+c2*81 |
| 109a0 | 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e | -c1*45.1-sin(x1*.7)*1.3)*.5)*sin |
| 109c0 | 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 | (z1*0.754+cos(z1*0.8+1+c2*12.5)) |
| 109e0 | 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 | *.2..)*.8-fy..;......Derivative. |
| 10a00 | 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c | of.height.wrt.depth;..lm=1-.7*(l |
| 10a20 | 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 | y-py)/zi;ly=py;......Compare.vox |
| 10a40 | 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 | els;..x=1/(pz+zf);..py=py+pz*ele |
| 10a60 | 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a | vz;..ph=if(i,max(py*x,ph),ph);.. |
| 10a80 | 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f | ....Colorcoding;..ddy=(ly+fy);lo |
| 10aa0 | 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e | =sin(x1*.1+reg43)*.4;lp=cos(z1*. |
| 10ac0 | 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b | 151+reg44)*.4;..red1=(.3+ddy*.4+ |
| 10ae0 | 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 | lo*.8+lp*.3+lp*ddy*.3)*lm;..gree |
| 10b00 | 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 | n1=(.492-lp*.6-lo*.4)*lm;..blue1 |
| 10b20 | 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c | =(.31+ddy*.1+lo*.8-lp*.3)*lm;..l |
| 10b40 | 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a | o=sin(x1*.1+reg41)*.4;lp=cos(z1* |
| 10b60 | 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 | .151+reg42)*.4;..red=red1+((.3+d |
| 10b80 | 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d | dy*.4+lo*.8+lp*.3+lp*ddy*.3)*lm- |
| 10ba0 | 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 | red1)*reg45;..green=green1+((.49 |
| 10bc0 | 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b | 2-lp*.6-lo*.4)*lm-green1)*reg45; |
| 10be0 | 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d | ..blue=blue1+((.31+ddy*.1+lo*.8- |
| 10c00 | 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f | lp*.3)*lm-blue1)*reg45;......Pro |
| 10c20 | 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 | ject.and.add.fog;..x=sqr(sqr(i)) |
| 10c40 | 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 | ;lm=1-x;..red=x*(.65+reg40*.2)+r |
| 10c60 | 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 | ed*lm;..green=x*(.95+reg40*.1)+g |
| 10c80 | 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 | reen*lm;..blue=x+blue*lm;..y=if( |
| 10ca0 | 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b | equal(i,1),-1,-ph*af);..x=dx*iw+ |
| 10cc0 | 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a | .001;......Adjust.depth.step;..z |
| 10ce0 | 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 | i=if(above(i,.4),zi*1.03,zi);... |
| 10d00 | 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 | ..fx=reg00;fy=reg01;fz=reg02;..p |
| 10d20 | 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a | h=-1;ly=0;....zf=reg03;..px=0;pz |
| 10d40 | 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 | =-zf;..elevz=reg04;..cr=reg06;sr |
| 10d60 | 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 | =reg07;af=w/h;..zi=reg08*invsqrt |
| 10d80 | 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 | (1+sqr(dx*.05));....iw=2/w;....c |
| 10da0 | 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 | 1=reg10;c2=reg11;...........n=50 |
| 10dc0 | 3b 64 78 3d 2b 32 30 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 | ;dx=+20;.................$...b.. |
| 10de0 | 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b | ........Setup.tracer;..pz=pz+zi; |
| 10e00 | 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 | px=px+dx*.04*zi;..z1=pz*cr-px*sr |
| 10e20 | 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 | +fz;..x1=pz*sr+px*cr+fx;......Ca |
| 10e40 | 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 | lculate.heightmap;..py=(sin(x1*0 |
| 10e60 | 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 | .37+1)*sin(z1*0.4333-c1*71)..+si |
| 10e80 | 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b | n(x1*.4-c2*3)*sin(z1*.6+cos(z1)+ |
| 10ea0 | 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b | sin(c2*5)*20)*.6..+sin(x1*0.419+ |
| 10ec0 | 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a | c2*10+1.5)*sin(z1*0.1333+c1*20)* |
| 10ee0 | 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 | .4..+sin(x1*0.597+2+c1*17+sin(x1 |
| 10f00 | 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e | *.71+c2*81-c1*45.1-sin(x1*.7)*1. |
| 10f20 | 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 | 3)*.5)*sin(z1*0.754+cos(z1*0.8+1 |
| 10f40 | 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 | +c2*12.5))*.2..)*.8-fy..;......D |
| 10f60 | 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a | erivative.of.height.wrt.depth;.. |
| 10f80 | 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 | lm=1-.7*(ly-py)/zi;ly=py;......C |
| 10fa0 | 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 | ompare.voxels;..x=1/(pz+zf);..py |
| 10fc0 | 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c | =py+pz*elevz;..ph=if(i,max(py*x, |
| 10fe0 | 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d | ph),ph);......Colorcoding;..ddy= |
| 11000 | 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c | (ly+fy);lo=sin(x1*.1+reg43)*.4;l |
| 11020 | 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 | p=cos(z1*.151+reg44)*.4;..red1=( |
| 11040 | 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 | .3+ddy*.4+lo*.8+lp*.3+lp*ddy*.3) |
| 11060 | 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a | *lm;..green1=(.492-lp*.6-lo*.4)* |
| 11080 | 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a | lm;..blue1=(.31+ddy*.1+lo*.8-lp* |
| 110a0 | 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b | .3)*lm;..lo=sin(x1*.1+reg41)*.4; |
| 110c0 | 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 | lp=cos(z1*.151+reg42)*.4;..red=r |
| 110e0 | 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 | ed1+((.3+ddy*.4+lo*.8+lp*.3+lp*d |
| 11100 | 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 | dy*.3)*lm-red1)*reg45;..green=gr |
| 11120 | 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 | een1+((.492-lp*.6-lo*.4)*lm-gree |
| 11140 | 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 | n1)*reg45;..blue=blue1+((.31+ddy |
| 11160 | 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 | *.1+lo*.8-lp*.3)*lm-blue1)*reg45 |
| 11180 | 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 | ;......Project.and.add.fog;..x=s |
| 111a0 | 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 | qr(sqr(i));lm=1-x;..red=x*(.65+r |
| 111c0 | 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 | eg40*.2)+red*lm;..green=x*(.95+r |
| 111e0 | 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a | eg40*.1)+green*lm;..blue=x+blue* |
| 11200 | 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b | lm;..y=if(equal(i,1),-1,-ph*af); |
| 11220 | 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 | ..x=dx*iw+.001;......Adjust.dept |
| 11240 | 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e | h.step;..zi=if(above(i,.4),zi*1. |
| 11260 | 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a | 03,zi);.....fx=reg00;fy=reg01;fz |
| 11280 | 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 | =reg02;..ph=-1;ly=0;....zf=reg03 |
| 112a0 | 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 | ;..px=0;pz=-zf;..elevz=reg04;..c |
| 112c0 | 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 | r=reg06;sr=reg07;af=w/h;..zi=reg |
| 112e0 | 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 | 08*invsqrt(1+sqr(dx*.05));....iw |
| 11300 | 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 | =2/w;....c1=reg10;c2=reg11;..... |
| 11320 | 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 32 31 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 | ......n=50;dx=+21;.............. |
| 11340 | 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d | ...$...b..........Setup.tracer;. |
| 11360 | 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 | .pz=pz+zi;px=px+dx*.04*zi;..z1=p |
| 11380 | 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 | z*cr-px*sr+fz;..x1=pz*sr+px*cr+f |
| 113a0 | 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 | x;......Calculate.heightmap;..py |
| 113c0 | 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 | =(sin(x1*0.37+1)*sin(z1*0.4333-c |
| 113e0 | 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e | 1*71)..+sin(x1*.4-c2*3)*sin(z1*. |
| 11400 | 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e | 6+cos(z1)+sin(c2*5)*20)*.6..+sin |
| 11420 | 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 | (x1*0.419+c2*10+1.5)*sin(z1*0.13 |
| 11440 | 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 | 33+c1*20)*.4..+sin(x1*0.597+2+c1 |
| 11460 | 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e | *17+sin(x1*.71+c2*81-c1*45.1-sin |
| 11480 | 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f | (x1*.7)*1.3)*.5)*sin(z1*0.754+co |
| 114a0 | 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 | s(z1*0.8+1+c2*12.5))*.2..)*.8-fy |
| 114c0 | 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 | ..;......Derivative.of.height.wr |
| 114e0 | 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d | t.depth;..lm=1-.7*(ly-py)/zi;ly= |
| 11500 | 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 | py;......Compare.voxels;..x=1/(p |
| 11520 | 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 | z+zf);..py=py+pz*elevz;..ph=if(i |
| 11540 | 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 | ,max(py*x,ph),ph);......Colorcod |
| 11560 | 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 | ing;..ddy=(ly+fy);lo=sin(x1*.1+r |
| 11580 | 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e | eg43)*.4;lp=cos(z1*.151+reg44)*. |
| 115a0 | 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b | 4;..red1=(.3+ddy*.4+lo*.8+lp*.3+ |
| 115c0 | 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a | lp*ddy*.3)*lm;..green1=(.492-lp* |
| 115e0 | 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 | .6-lo*.4)*lm;..blue1=(.31+ddy*.1 |
| 11600 | 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b | +lo*.8-lp*.3)*lm;..lo=sin(x1*.1+ |
| 11620 | 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a | reg41)*.4;lp=cos(z1*.151+reg42)* |
| 11640 | 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b | .4;..red=red1+((.3+ddy*.4+lo*.8+ |
| 11660 | 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b | lp*.3+lp*ddy*.3)*lm-red1)*reg45; |
| 11680 | 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e | ..green=green1+((.492-lp*.6-lo*. |
| 116a0 | 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 | 4)*lm-green1)*reg45;..blue=blue1 |
| 116c0 | 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c | +((.31+ddy*.1+lo*.8-lp*.3)*lm-bl |
| 116e0 | 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 | ue1)*reg45;......Project.and.add |
| 11700 | 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 | .fog;..x=sqr(sqr(i));lm=1-x;..re |
| 11720 | 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 | d=x*(.65+reg40*.2)+red*lm;..gree |
| 11740 | 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c | n=x*(.95+reg40*.1)+green*lm;..bl |
| 11760 | 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d | ue=x+blue*lm;..y=if(equal(i,1),- |
| 11780 | 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 | 1,-ph*af);..x=dx*iw+.001;......A |
| 117a0 | 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 | djust.depth.step;..zi=if(above(i |
| 117c0 | 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 | ,.4),zi*1.03,zi);.....fx=reg00;f |
| 117e0 | 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a | y=reg01;fz=reg02;..ph=-1;ly=0;.. |
| 11800 | 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a | ..zf=reg03;..px=0;pz=-zf;..elevz |
| 11820 | 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f | =reg04;..cr=reg06;sr=reg07;af=w/ |
| 11840 | 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 | h;..zi=reg08*invsqrt(1+sqr(dx*.0 |
| 11860 | 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 | 5));....iw=2/w;....c1=reg10;c2=r |
| 11880 | 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 32 32 3b 00 02 00 00 | eg11;...........n=50;dx=+22;.... |
| 118a0 | 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 | .............$...b..........Setu |
| 118c0 | 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 | p.tracer;..pz=pz+zi;px=px+dx*.04 |
| 118e0 | 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a | *zi;..z1=pz*cr-px*sr+fz;..x1=pz* |
| 11900 | 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 | sr+px*cr+fx;......Calculate.heig |
| 11920 | 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a | htmap;..py=(sin(x1*0.37+1)*sin(z |
| 11940 | 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 | 1*0.4333-c1*71)..+sin(x1*.4-c2*3 |
| 11960 | 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 | )*sin(z1*.6+cos(z1)+sin(c2*5)*20 |
| 11980 | 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 | )*.6..+sin(x1*0.419+c2*10+1.5)*s |
| 119a0 | 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a | in(z1*0.1333+c1*20)*.4..+sin(x1* |
| 119c0 | 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 | 0.597+2+c1*17+sin(x1*.71+c2*81-c |
| 119e0 | 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a | 1*45.1-sin(x1*.7)*1.3)*.5)*sin(z |
| 11a00 | 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e | 1*0.754+cos(z1*0.8+1+c2*12.5))*. |
| 11a20 | 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 | 2..)*.8-fy..;......Derivative.of |
| 11a40 | 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d | .height.wrt.depth;..lm=1-.7*(ly- |
| 11a60 | 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c | py)/zi;ly=py;......Compare.voxel |
| 11a80 | 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a | s;..x=1/(pz+zf);..py=py+pz*elevz |
| 11aa0 | 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a | ;..ph=if(i,max(py*x,ph),ph);.... |
| 11ac0 | a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 | ..Colorcoding;..ddy=(ly+fy);lo=s |
| 11ae0 | 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 | in(x1*.1+reg43)*.4;lp=cos(z1*.15 |
| 11b00 | 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f | 1+reg44)*.4;..red1=(.3+ddy*.4+lo |
| 11b20 | 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 | *.8+lp*.3+lp*ddy*.3)*lm;..green1 |
| 11b40 | 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 | =(.492-lp*.6-lo*.4)*lm;..blue1=( |
| 11b60 | 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d | .31+ddy*.1+lo*.8-lp*.3)*lm;..lo= |
| 11b80 | 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 | sin(x1*.1+reg41)*.4;lp=cos(z1*.1 |
| 11ba0 | 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 | 51+reg42)*.4;..red=red1+((.3+ddy |
| 11bc0 | 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 | *.4+lo*.8+lp*.3+lp*ddy*.3)*lm-re |
| 11be0 | 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d | d1)*reg45;..green=green1+((.492- |
| 11c00 | 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a | lp*.6-lo*.4)*lm-green1)*reg45;.. |
| 11c20 | 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 | blue=blue1+((.31+ddy*.1+lo*.8-lp |
| 11c40 | 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 | *.3)*lm-blue1)*reg45;......Proje |
| 11c60 | 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c | ct.and.add.fog;..x=sqr(sqr(i));l |
| 11c80 | 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 | m=1-x;..red=x*(.65+reg40*.2)+red |
| 11ca0 | 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 | *lm;..green=x*(.95+reg40*.1)+gre |
| 11cc0 | 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 | en*lm;..blue=x+blue*lm;..y=if(eq |
| 11ce0 | 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 | ual(i,1),-1,-ph*af);..x=dx*iw+.0 |
| 11d00 | 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d | 01;......Adjust.depth.step;..zi= |
| 11d20 | 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 | if(above(i,.4),zi*1.03,zi);..... |
| 11d40 | 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d | fx=reg00;fy=reg01;fz=reg02;..ph= |
| 11d60 | 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d | -1;ly=0;....zf=reg03;..px=0;pz=- |
| 11d80 | 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 | zf;..elevz=reg04;..cr=reg06;sr=r |
| 11da0 | 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 | eg07;af=w/h;..zi=reg08*invsqrt(1 |
| 11dc0 | 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d | +sqr(dx*.05));....iw=2/w;....c1= |
| 11de0 | 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 | reg10;c2=reg11;...........n=50;d |
| 11e00 | 78 3d 2b 32 33 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 62 05 00 00 01 | x=+23;.................$...b.... |
| 11e20 | 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 7a 3d 70 7a 2b 7a 69 3b 70 78 | ......Setup.tracer;..pz=pz+zi;px |
| 11e40 | 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a 63 72 2d 70 78 2a 73 72 2b 66 | =px+dx*.04*zi;..z1=pz*cr-px*sr+f |
| 11e60 | 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b 0d 0a 0d 0a a3 20 43 61 6c 63 | z;..x1=pz*sr+px*cr+fx;......Calc |
| 11e80 | 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 73 69 6e 28 78 31 2a 30 2e 33 | ulate.heightmap;..py=(sin(x1*0.3 |
| 11ea0 | 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 | 7+1)*sin(z1*0.4333-c1*71)..+sin( |
| 11ec0 | 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b 63 6f 73 28 7a 31 29 2b 73 69 | x1*.4-c2*3)*sin(z1*.6+cos(z1)+si |
| 11ee0 | 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 34 31 39 2b 63 32 | n(c2*5)*20)*.6..+sin(x1*0.419+c2 |
| 11f00 | 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 | *10+1.5)*sin(z1*0.1333+c1*20)*.4 |
| 11f20 | 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 31 2a 2e | ..+sin(x1*0.597+2+c1*17+sin(x1*. |
| 11f40 | 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 31 2a 2e 37 29 2a 31 2e 33 29 | 71+c2*81-c1*45.1-sin(x1*.7)*1.3) |
| 11f60 | 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 7a 31 2a 30 2e 38 2b 31 2b 63 | *.5)*sin(z1*0.754+cos(z1*0.8+1+c |
| 11f80 | 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 3b 0d 0a 0d 0a a3 20 44 65 72 | 2*12.5))*.2..)*.8-fy..;......Der |
| 11fa0 | 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 64 65 70 74 68 3b 0d 0a 6c 6d | ivative.of.height.wrt.depth;..lm |
| 11fc0 | 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 3b 0d 0a 0d 0a a3 20 43 6f 6d | =1-.7*(ly-py)/zi;ly=py;......Com |
| 11fe0 | 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b 7a 66 29 3b 0d 0a 70 79 3d 70 | pare.voxels;..x=1/(pz+zf);..py=p |
| 12000 | 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d 61 78 28 70 79 2a 78 2c 70 68 | y+pz*elevz;..ph=if(i,max(py*x,ph |
| 12020 | 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e 67 3b 0d 0a 64 64 79 3d 28 6c | ),ph);......Colorcoding;..ddy=(l |
| 12040 | 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 33 29 2a 2e 34 3b 6c 70 3d | y+fy);lo=sin(x1*.1+reg43)*.4;lp= |
| 12060 | 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b 0d 0a 72 65 64 31 3d 28 2e 33 | cos(z1*.151+reg44)*.4;..red1=(.3 |
| 12080 | 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c | +ddy*.4+lo*.8+lp*.3+lp*ddy*.3)*l |
| 120a0 | 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d | m;..green1=(.492-lp*.6-lo*.4)*lm |
| 120c0 | 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 | ;..blue1=(.31+ddy*.1+lo*.8-lp*.3 |
| 120e0 | 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 34 31 29 2a 2e 34 3b 6c 70 | )*lm;..lo=sin(x1*.1+reg41)*.4;lp |
| 12100 | 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 3b 0d 0a 72 65 64 3d 72 65 64 | =cos(z1*.151+reg42)*.4;..red=red |
| 12120 | 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 2a 64 64 79 | 1+((.3+ddy*.4+lo*.8+lp*.3+lp*ddy |
| 12140 | 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a 67 72 65 65 6e 3d 67 72 65 65 | *.3)*lm-red1)*reg45;..green=gree |
| 12160 | 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 2a 6c 6d 2d 67 72 65 65 6e 31 | n1+((.492-lp*.6-lo*.4)*lm-green1 |
| 12180 | 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 28 2e 33 31 2b 64 64 79 2a 2e | )*reg45;..blue=blue1+((.31+ddy*. |
| 121a0 | 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 31 29 2a 72 65 67 34 35 3b 0d | 1+lo*.8-lp*.3)*lm-blue1)*reg45;. |
| 121c0 | 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 6f 67 3b 0d 0a 78 3d 73 71 72 | .....Project.and.add.fog;..x=sqr |
| 121e0 | 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d 78 2a 28 2e 36 35 2b 72 65 67 | (sqr(i));lm=1-x;..red=x*(.65+reg |
| 12200 | 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d 78 2a 28 2e 39 35 2b 72 65 67 | 40*.2)+red*lm;..green=x*(.95+reg |
| 12220 | 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 3d 78 2b 62 6c 75 65 2a 6c 6d | 40*.1)+green*lm;..blue=x+blue*lm |
| 12240 | 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c 2d 70 68 2a 61 66 29 3b 0d 0a | ;..y=if(equal(i,1),-1,-ph*af);.. |
| 12260 | 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a 75 73 74 20 64 65 70 74 68 20 | x=dx*iw+.001;......Adjust.depth. |
| 12280 | 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e 34 29 2c 7a 69 2a 31 2e 30 33 | step;..zi=if(above(i,.4),zi*1.03 |
| 122a0 | 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d 72 65 67 30 31 3b 66 7a 3d 72 | ,zi);.....fx=reg00;fy=reg01;fz=r |
| 122c0 | 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d | eg02;..ph=-1;ly=0;....zf=reg03;. |
| 122e0 | 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d | .px=0;pz=-zf;..elevz=reg04;..cr= |
| 12300 | 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 7a 69 3d 72 65 67 30 38 | reg06;sr=reg07;af=w/h;..zi=reg08 |
| 12320 | 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 29 3b 0d 0a 0d 0a 69 77 3d 32 | *invsqrt(1+sqr(dx*.05));....iw=2 |
| 12340 | 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 31 31 3b 0d 0a 00 00 00 00 00 | /w;....c1=reg10;c2=reg11;....... |
| 12360 | 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 32 34 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 | ....n=50;dx=+24;................ |
| 12380 | 00 24 00 00 00 62 05 00 00 01 82 04 00 00 a3 20 53 65 74 75 70 20 74 72 61 63 65 72 3b 0d 0a 70 | .$...b..........Setup.tracer;..p |
| 123a0 | 7a 3d 70 7a 2b 7a 69 3b 70 78 3d 70 78 2b 64 78 2a 2e 30 34 2a 7a 69 3b 0d 0a 7a 31 3d 70 7a 2a | z=pz+zi;px=px+dx*.04*zi;..z1=pz* |
| 123c0 | 63 72 2d 70 78 2a 73 72 2b 66 7a 3b 0d 0a 78 31 3d 70 7a 2a 73 72 2b 70 78 2a 63 72 2b 66 78 3b | cr-px*sr+fz;..x1=pz*sr+px*cr+fx; |
| 123e0 | 0d 0a 0d 0a a3 20 43 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 3b 0d 0a 70 79 3d 28 | ......Calculate.heightmap;..py=( |
| 12400 | 73 69 6e 28 78 31 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 31 2a 30 2e 34 33 33 33 2d 63 31 2a | sin(x1*0.37+1)*sin(z1*0.4333-c1* |
| 12420 | 37 31 29 0d 0a 2b 73 69 6e 28 78 31 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 6e 28 7a 31 2a 2e 36 2b | 71)..+sin(x1*.4-c2*3)*sin(z1*.6+ |
| 12440 | 63 6f 73 28 7a 31 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 0d 0a 2b 73 69 6e 28 78 | cos(z1)+sin(c2*5)*20)*.6..+sin(x |
| 12460 | 31 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 31 33 33 33 | 1*0.419+c2*10+1.5)*sin(z1*0.1333 |
| 12480 | 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 31 2a 30 2e 35 39 37 2b 32 2b 63 31 2a 31 | +c1*20)*.4..+sin(x1*0.597+2+c1*1 |
| 124a0 | 37 2b 73 69 6e 28 78 31 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 2e 31 2d 73 69 6e 28 78 | 7+sin(x1*.71+c2*81-c1*45.1-sin(x |
| 124c0 | 31 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 31 2a 30 2e 37 35 34 2b 63 6f 73 28 | 1*.7)*1.3)*.5)*sin(z1*0.754+cos( |
| 124e0 | 7a 31 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 2a 2e 38 2d 66 79 20 20 | z1*0.8+1+c2*12.5))*.2..)*.8-fy.. |
| 12500 | 3b 0d 0a 0d 0a a3 20 44 65 72 69 76 61 74 69 76 65 20 6f 66 20 68 65 69 67 68 74 20 77 72 74 20 | ;......Derivative.of.height.wrt. |
| 12520 | 64 65 70 74 68 3b 0d 0a 6c 6d 3d 31 2d 2e 37 2a 28 6c 79 2d 70 79 29 2f 7a 69 3b 6c 79 3d 70 79 | depth;..lm=1-.7*(ly-py)/zi;ly=py |
| 12540 | 3b 0d 0a 0d 0a a3 20 43 6f 6d 70 61 72 65 20 76 6f 78 65 6c 73 3b 0d 0a 78 3d 31 2f 28 70 7a 2b | ;......Compare.voxels;..x=1/(pz+ |
| 12560 | 7a 66 29 3b 0d 0a 70 79 3d 70 79 2b 70 7a 2a 65 6c 65 76 7a 3b 0d 0a 70 68 3d 69 66 28 69 2c 6d | zf);..py=py+pz*elevz;..ph=if(i,m |
| 12580 | 61 78 28 70 79 2a 78 2c 70 68 29 2c 70 68 29 3b 0d 0a 0d 0a a3 20 43 6f 6c 6f 72 63 6f 64 69 6e | ax(py*x,ph),ph);......Colorcodin |
| 125a0 | 67 3b 0d 0a 64 64 79 3d 28 6c 79 2b 66 79 29 3b 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 67 | g;..ddy=(ly+fy);lo=sin(x1*.1+reg |
| 125c0 | 34 33 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 34 29 2a 2e 34 3b | 43)*.4;lp=cos(z1*.151+reg44)*.4; |
| 125e0 | 0d 0a 72 65 64 31 3d 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 2a 2e 33 2b 6c 70 | ..red1=(.3+ddy*.4+lo*.8+lp*.3+lp |
| 12600 | 2a 64 64 79 2a 2e 33 29 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 31 3d 28 2e 34 39 32 2d 6c 70 2a 2e 36 | *ddy*.3)*lm;..green1=(.492-lp*.6 |
| 12620 | 2d 6c 6f 2a 2e 34 29 2a 6c 6d 3b 0d 0a 62 6c 75 65 31 3d 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c | -lo*.4)*lm;..blue1=(.31+ddy*.1+l |
| 12640 | 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 3b 0d 0a 6c 6f 3d 73 69 6e 28 78 31 2a 2e 31 2b 72 65 | o*.8-lp*.3)*lm;..lo=sin(x1*.1+re |
| 12660 | 67 34 31 29 2a 2e 34 3b 6c 70 3d 63 6f 73 28 7a 31 2a 2e 31 35 31 2b 72 65 67 34 32 29 2a 2e 34 | g41)*.4;lp=cos(z1*.151+reg42)*.4 |
| 12680 | 3b 0d 0a 72 65 64 3d 72 65 64 31 2b 28 28 2e 33 2b 64 64 79 2a 2e 34 2b 6c 6f 2a 2e 38 2b 6c 70 | ;..red=red1+((.3+ddy*.4+lo*.8+lp |
| 126a0 | 2a 2e 33 2b 6c 70 2a 64 64 79 2a 2e 33 29 2a 6c 6d 2d 72 65 64 31 29 2a 72 65 67 34 35 3b 0d 0a | *.3+lp*ddy*.3)*lm-red1)*reg45;.. |
| 126c0 | 67 72 65 65 6e 3d 67 72 65 65 6e 31 2b 28 28 2e 34 39 32 2d 6c 70 2a 2e 36 2d 6c 6f 2a 2e 34 29 | green=green1+((.492-lp*.6-lo*.4) |
| 126e0 | 2a 6c 6d 2d 67 72 65 65 6e 31 29 2a 72 65 67 34 35 3b 0d 0a 62 6c 75 65 3d 62 6c 75 65 31 2b 28 | *lm-green1)*reg45;..blue=blue1+( |
| 12700 | 28 2e 33 31 2b 64 64 79 2a 2e 31 2b 6c 6f 2a 2e 38 2d 6c 70 2a 2e 33 29 2a 6c 6d 2d 62 6c 75 65 | (.31+ddy*.1+lo*.8-lp*.3)*lm-blue |
| 12720 | 31 29 2a 72 65 67 34 35 3b 0d 0a 0d 0a a3 20 50 72 6f 6a 65 63 74 20 61 6e 64 20 61 64 64 20 66 | 1)*reg45;......Project.and.add.f |
| 12740 | 6f 67 3b 0d 0a 78 3d 73 71 72 28 73 71 72 28 69 29 29 3b 6c 6d 3d 31 2d 78 3b 0d 0a 72 65 64 3d | og;..x=sqr(sqr(i));lm=1-x;..red= |
| 12760 | 78 2a 28 2e 36 35 2b 72 65 67 34 30 2a 2e 32 29 2b 72 65 64 2a 6c 6d 3b 0d 0a 67 72 65 65 6e 3d | x*(.65+reg40*.2)+red*lm;..green= |
| 12780 | 78 2a 28 2e 39 35 2b 72 65 67 34 30 2a 2e 31 29 2b 67 72 65 65 6e 2a 6c 6d 3b 0d 0a 62 6c 75 65 | x*(.95+reg40*.1)+green*lm;..blue |
| 127a0 | 3d 78 2b 62 6c 75 65 2a 6c 6d 3b 0d 0a 79 3d 69 66 28 65 71 75 61 6c 28 69 2c 31 29 2c 2d 31 2c | =x+blue*lm;..y=if(equal(i,1),-1, |
| 127c0 | 2d 70 68 2a 61 66 29 3b 0d 0a 78 3d 64 78 2a 69 77 2b 2e 30 30 31 3b 0d 0a 0d 0a a3 20 41 64 6a | -ph*af);..x=dx*iw+.001;......Adj |
| 127e0 | 75 73 74 20 64 65 70 74 68 20 73 74 65 70 3b 0d 0a 7a 69 3d 69 66 28 61 62 6f 76 65 28 69 2c 2e | ust.depth.step;..zi=if(above(i,. |
| 12800 | 34 29 2c 7a 69 2a 31 2e 30 33 2c 7a 69 29 3b 00 b2 00 00 00 66 78 3d 72 65 67 30 30 3b 66 79 3d | 4),zi*1.03,zi);.....fx=reg00;fy= |
| 12820 | 72 65 67 30 31 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 70 68 3d 2d 31 3b 6c 79 3d 30 3b 0d 0a 0d 0a | reg01;fz=reg02;..ph=-1;ly=0;.... |
| 12840 | 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 | zf=reg03;..px=0;pz=-zf;..elevz=r |
| 12860 | 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b | eg04;..cr=reg06;sr=reg07;af=w/h; |
| 12880 | 0d 0a 7a 69 3d 72 65 67 30 38 2a 69 6e 76 73 71 72 74 28 31 2b 73 71 72 28 64 78 2a 2e 30 35 29 | ..zi=reg08*invsqrt(1+sqr(dx*.05) |
| 128a0 | 29 3b 0d 0a 0d 0a 69 77 3d 32 2f 77 3b 0d 0a 0d 0a 63 31 3d 72 65 67 31 30 3b 63 32 3d 72 65 67 | );....iw=2/w;....c1=reg10;c2=reg |
| 128c0 | 31 31 3b 0d 0a 00 00 00 00 00 0d 00 00 00 6e 3d 35 30 3b 64 78 3d 2b 32 35 3b 00 02 00 00 00 01 | 11;...........n=50;dx=+25;...... |
| 128e0 | 00 00 00 ff ff ff 00 01 00 00 00 2b 00 00 00 43 00 00 00 01 08 00 00 00 78 3d 78 2a 73 66 78 00 | ...........+...C........x=x*sfx. |
| 12900 | 0a 00 00 00 73 66 78 3d 35 30 2f 77 3b 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 | ....sfx=50/w;................... |
| 12920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe ff ff ff ec 04 00 00 81 01 | ................................ |
| 12940 | 00 04 24 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 | ..$............................. |
| 12960 | 00 00 00 00 40 00 00 41 56 53 20 32 2e 38 2b 20 45 66 66 65 63 74 20 4c 69 73 74 20 43 6f 6e 66 | ....@..AVS.2.8+.Effect.List.Conf |
| 12980 | 69 67 00 00 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 04 00 00 00 02 | ig.....................(........ |
| 129a0 | 00 0a 80 24 00 00 00 7f 04 00 00 01 ed 02 00 00 2f 2f 20 6f 62 6a 65 63 74 2d 73 70 61 63 65 0d | ...$............//.object-space. |
| 129c0 | 0a 75 3d 69 2a 38 30 2f 7a 66 3b 72 3d 69 2a 2e 32 34 2a 28 31 2d 72 65 67 33 35 29 3b 0d 0a 70 | .u=i*80/zf;r=i*.24*(1-reg35);..p |
| 129e0 | 78 3d 63 6f 73 28 75 29 2a 72 3b 70 79 3d 2d 30 2e 31 3b 70 7a 3d 73 69 6e 28 75 29 2a 72 2a 31 | x=cos(u)*r;py=-0.1;pz=sin(u)*r*1 |
| 12a00 | 2e 35 3b 0d 0a 2f 2f 20 63 61 6d 65 72 61 2d 73 70 61 63 65 0d 0a 78 30 3d 70 78 2a 63 70 72 7a | .5;..//.camera-space..x0=px*cprz |
| 12a20 | 2d 70 79 2a 73 70 72 7a 3b 79 30 3d 70 78 2a 73 70 72 7a 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 | -py*sprz;y0=px*sprz+py*cprz;..y1 |
| 12a40 | 3d 79 30 2a 63 78 2d 70 7a 2a 73 78 2d 66 79 3b 7a 31 3d 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d | =y0*cx-pz*sx-fy;z1=y0*sx+pz*cx;. |
| 12a60 | 0a 78 32 3d 78 30 2a 63 79 2d 7a 31 2a 73 79 3b 7a 32 3d 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a | .x2=x0*cy-z1*sy;z2=x0*sy+z1*cy+z |
| 12a80 | 66 3b 0d 0a 0d 0a 2f 2f 20 72 65 76 65 72 73 65 20 70 72 6f 6a 65 63 74 69 6f 6e 0d 0a 7a 33 3d | f;....//.reverse.projection..z3= |
| 12aa0 | 7a 32 2d 7a 66 3b 0d 0a 79 33 3d 79 31 2a 63 6d 72 78 63 2b 7a 33 2a 63 6d 72 78 73 3b 7a 33 3d | z2-zf;..y3=y1*cmrxc+z3*cmrxs;z3= |
| 12ac0 | 2d 79 31 2a 63 6d 72 78 73 2b 7a 33 2a 63 6d 72 78 63 3b 0d 0a 78 34 3d 78 32 2a 63 72 2b 7a 33 | -y1*cmrxs+z3*cmrxc;..x4=x2*cr+z3 |
| 12ae0 | 2a 73 72 3b 7a 34 3d 2d 78 32 2a 73 72 2b 7a 33 2a 63 72 3b 0d 0a 78 34 3d 78 34 2b 66 78 3b 7a | *sr;z4=-x2*sr+z3*cr;..x4=x4+fx;z |
| 12b00 | 34 3d 7a 34 2b 66 7a 3b 0d 0a 2f 2f 20 63 61 6c 63 75 6c 61 74 65 20 68 65 69 67 68 74 6d 61 70 | 4=z4+fz;..//.calculate.heightmap |
| 12b20 | 0d 0a 79 31 3d 2d 28 28 73 69 6e 28 78 34 2a 30 2e 33 37 2b 31 29 2a 73 69 6e 28 7a 34 2a 30 2e | ..y1=-((sin(x4*0.37+1)*sin(z4*0. |
| 12b40 | 34 33 33 33 2d 63 31 2a 37 31 29 0d 0a 2b 73 69 6e 28 78 34 2a 2e 34 2d 63 32 2a 33 29 2a 73 69 | 4333-c1*71)..+sin(x4*.4-c2*3)*si |
| 12b60 | 6e 28 7a 34 2a 2e 36 2b 63 6f 73 28 7a 34 29 2b 73 69 6e 28 63 32 2a 35 29 2a 32 30 29 2a 2e 36 | n(z4*.6+cos(z4)+sin(c2*5)*20)*.6 |
| 12b80 | 0d 0a 2b 73 69 6e 28 78 34 2a 30 2e 34 31 39 2b 63 32 2a 31 30 2b 31 2e 35 29 2a 73 69 6e 28 7a | ..+sin(x4*0.419+c2*10+1.5)*sin(z |
| 12ba0 | 34 2a 30 2e 31 33 33 33 2b 63 31 2a 32 30 29 2a 2e 34 0d 0a 2b 73 69 6e 28 78 34 2a 30 2e 35 39 | 4*0.1333+c1*20)*.4..+sin(x4*0.59 |
| 12bc0 | 37 2b 32 2b 63 31 2a 31 37 2b 73 69 6e 28 78 34 2a 2e 37 31 2b 63 32 2a 38 31 2d 63 31 2a 34 35 | 7+2+c1*17+sin(x4*.71+c2*81-c1*45 |
| 12be0 | 2e 31 2d 73 69 6e 28 78 34 2a 2e 37 29 2a 31 2e 33 29 2a 2e 35 29 2a 73 69 6e 28 7a 34 2a 30 2e | .1-sin(x4*.7)*1.3)*.5)*sin(z4*0. |
| 12c00 | 37 35 34 2b 63 6f 73 28 7a 34 2a 30 2e 38 2b 31 2b 63 32 2a 31 32 2e 35 29 29 2a 2e 32 0d 0a 29 | 754+cos(z4*0.8+1+c2*12.5))*.2..) |
| 12c20 | 2a 2e 38 2d 72 65 67 30 31 29 2d 7a 33 2a 65 76 3b 0d 0a 0d 0a 69 7a 3d 31 2f 7a 32 3b 0d 0a 78 | *.8-reg01)-z3*ev;....iz=1/z2;..x |
| 12c40 | 3d 78 32 2a 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d 0a 69 70 3d 2d 69 70 3b 0d 0a 0d 0a 72 | =x2*iz;y=y1*iz*af;..ip=-ip;....r |
| 12c60 | 65 64 3d 28 31 2d 69 29 2a 2e 32 35 2a 6d 61 78 28 30 2c 6d 69 6e 28 31 2c 31 2e 31 2d 72 65 67 | ed=(1-i)*.25*max(0,min(1,1.1-reg |
| 12c80 | 33 35 2a 32 29 29 3b 67 72 65 65 6e 3d 72 65 64 3b 62 6c 75 65 3d 72 65 64 3b 0d 0a 00 64 01 00 | 35*2));green=red;blue=red;...d.. |
| 12ca0 | 00 66 78 3d 72 65 67 30 30 3b 66 7a 3d 72 65 67 30 32 3b 0d 0a 7a 66 3d 72 65 67 30 33 3b 0d 0a | .fx=reg00;fz=reg02;..zf=reg03;.. |
| 12cc0 | 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 | px=0;pz=-zf;..elevz=reg04;..cr=r |
| 12ce0 | 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 32 31 3b | eg06;sr=reg07;af=w/h;..vx=reg21; |
| 12d00 | 0d 0a 76 79 3d 72 65 67 32 32 3b 0d 0a 76 7a 3d 72 65 67 32 33 3b 0d 0a 72 79 3d 72 65 67 32 34 | ..vy=reg22;..vz=reg23;..ry=reg24 |
| 12d20 | 3b 63 79 3d 72 65 67 32 35 3b 73 79 3d 72 65 67 32 36 3b 0d 0a 72 78 3d 72 65 67 32 37 3b 63 78 | ;cy=reg25;sy=reg26;..rx=reg27;cx |
| 12d40 | 3d 72 65 67 32 38 3b 73 78 3d 72 65 67 32 39 3b 0d 0a 66 79 3d 72 65 67 33 30 3b 0d 0a 70 72 7a | =reg28;sx=reg29;..fy=reg30;..prz |
| 12d60 | 3d 72 65 67 33 31 3b 0d 0a 63 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d 72 65 67 33 33 | =reg31;..cprz=reg32;..sprz=reg33 |
| 12d80 | 3b 0d 0a 69 70 3d 31 3b 0d 0a 0d 0a 63 6d 72 78 3d 61 74 61 6e 32 28 72 65 67 30 34 2c 72 65 67 | ;..ip=1;....cmrx=atan2(reg04,reg |
| 12da0 | 30 33 29 3b 63 6d 72 78 63 3d 63 6f 73 28 63 6d 72 78 29 3b 63 6d 72 78 73 3d 73 69 6e 28 63 6d | 03);cmrxc=cos(cmrx);cmrxs=sin(cm |
| 12dc0 | 72 78 29 3b 0d 0a 65 76 3d 72 65 67 30 34 2f 72 65 67 30 33 3b 0d 0a 63 31 3d 72 65 67 31 30 3b | rx);..ev=reg04/reg03;..c1=reg10; |
| 12de0 | 63 32 3d 72 65 67 31 31 3b 0d 0a 0d 0a 6e 3d 28 28 77 2a 2e 37 29 2f 7a 66 29 7c 30 3b 72 65 67 | c2=reg11;....n=((w*.7)/zf)|0;reg |
| 12e00 | 33 39 3d 6e 00 00 00 00 00 0d 00 00 00 2f 2f 20 53 68 61 64 6f 77 3b 0d 0a 00 02 00 00 00 01 00 | 39=n.........//.Shadow;......... |
| 12e20 | 00 00 ff ff ff 00 01 00 00 00 28 00 00 00 04 00 00 00 00 00 02 80 24 00 00 00 d6 02 00 00 01 4e | ..........(...........$........N |
| 12e40 | 01 00 00 75 3d 2d 31 2e 35 37 2d 72 65 67 32 37 2b 28 69 2d 2e 35 29 2a 61 70 31 3b 0d 0a 78 31 | ...u=-1.57-reg27+(i-.5)*ap1;..x1 |
| 12e60 | 3d 69 70 2a 2e 30 32 3b 70 79 3d 2d 30 2e 31 2b 63 6f 73 28 75 29 2a 2e 30 37 3b 70 7a 3d 73 69 | =ip*.02;py=-0.1+cos(u)*.07;pz=si |
| 12e80 | 6e 28 75 29 2a 2e 30 37 3b 0d 0a 70 78 3d 78 31 2a 63 77 2d 70 7a 2a 73 77 3b 70 7a 3d 78 31 2a | n(u)*.07;..px=x1*cw-pz*sw;pz=x1* |
| 12ea0 | 73 77 2b 70 7a 2a 63 77 3b 0d 0a 70 78 3d 73 69 67 6e 28 73 79 29 2a 28 70 78 2b 2e 31 34 29 3b | sw+pz*cw;..px=sign(sy)*(px+.14); |
| 12ec0 | 70 7a 3d 70 7a 2b 2e 31 35 3b 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d 70 79 2a 73 70 72 7a 3b 79 | pz=pz+.15;..x0=px*cprz-py*sprz;y |
| 12ee0 | 30 3d 70 78 2a 73 70 72 7a 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d 79 30 2a 63 78 2d 70 7a 2a | 0=px*sprz+py*cprz;..y1=y0*cx-pz* |
| 12f00 | 73 78 2d 66 79 3b 7a 31 3d 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a 78 32 3d 78 30 2a 63 79 2d | sx-fy;z1=y0*sx+pz*cx;..x2=x0*cy- |
| 12f20 | 7a 31 2a 73 79 3b 7a 32 3d 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 3b 0d 0a 69 7a 3d 31 2f 7a | z1*sy;z2=x0*sy+z1*cy+zf;..iz=1/z |
| 12f40 | 32 3b 0d 0a 78 3d 78 32 2a 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d 0a 69 70 3d 2d 69 70 3b | 2;..x=x2*iz;y=y1*iz*af;..ip=-ip; |
| 12f60 | 0d 0a 72 65 64 3d 73 69 6e 28 28 75 2b 72 6f 6c 6c 29 2a 34 29 2a 2e 31 2b 2e 34 3b 0d 0a 67 72 | ..red=sin((u+roll)*4)*.1+.4;..gr |
| 12f80 | 65 65 6e 3d 72 65 64 3b 62 6c 75 65 3d 72 65 64 00 46 01 00 00 7a 66 3d 72 65 67 30 33 3b 0d 0a | een=red;blue=red.F...zf=reg03;.. |
| 12fa0 | 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 | px=0;pz=-zf;..elevz=reg04;..cr=r |
| 12fc0 | 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 32 31 3b | eg06;sr=reg07;af=w/h;..vx=reg21; |
| 12fe0 | 0d 0a 76 79 3d 72 65 67 32 32 3b 0d 0a 76 7a 3d 72 65 67 32 33 3b 0d 0a 72 79 3d 72 65 67 32 34 | ..vy=reg22;..vz=reg23;..ry=reg24 |
| 13000 | 3b 63 79 3d 72 65 67 32 35 3b 73 79 3d 72 65 67 32 36 3b 0d 0a 72 78 3d 72 65 67 32 37 3b 63 78 | ;cy=reg25;sy=reg26;..rx=reg27;cx |
| 13020 | 3d 72 65 67 32 38 3b 73 78 3d 72 65 67 32 39 3b 0d 0a 66 79 3d 72 65 67 33 30 3b 0d 0a 70 72 7a | =reg28;sx=reg29;..fy=reg30;..prz |
| 13040 | 3d 72 65 67 33 31 3b 0d 0a 63 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d 72 65 67 33 33 | =reg31;..cprz=reg32;..sprz=reg33 |
| 13060 | 3b 0d 0a 69 70 3d 31 3b 0d 0a 0d 0a 61 70 31 3d 24 70 69 2d 61 73 69 6e 28 2e 30 37 2f 7a 66 29 | ;..ip=1;....ap1=$pi-asin(.07/zf) |
| 13080 | 2a 32 3b 0d 0a 72 6f 6c 6c 3d 72 65 67 33 34 2a 2e 30 37 2a 24 70 69 2a 32 3b 0d 0a 6e 3d 34 30 | *2;..roll=reg34*.07*$pi*2;..n=40 |
| 130a0 | 2f 7a 66 2a 77 2f 33 32 30 3b 0d 0a 0d 0a 64 72 3d 72 65 67 33 36 3b 0d 0a 63 77 3d 63 6f 73 28 | /zf*w/320;....dr=reg36;..cw=cos( |
| 130c0 | 64 72 29 3b 73 77 3d 73 69 6e 28 64 72 29 2a 73 69 67 6e 28 73 79 29 3b 0d 0a 00 00 00 00 00 21 | dr);sw=sin(dr)*sign(sy);.......! |
| 130e0 | 00 00 00 2f 2f 20 54 69 72 65 20 6f 75 74 65 72 20 62 61 63 6b 20 61 77 61 79 3b 0d 0a 6e 3d 31 | ...//.Tire.outer.back.away;..n=1 |
| 13100 | 30 30 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 f9 02 00 00 01 46 01 00 | 00;.................$........F.. |
| 13120 | 00 75 3d 69 2a 24 70 69 2a 32 3b 72 3d 2e 30 37 2a 69 70 3b 0d 0a 78 31 3d 78 6f 66 66 2d 2e 30 | .u=i*$pi*2;r=.07*ip;..x1=xoff-.0 |
| 13140 | 32 3b 70 79 3d 2d 30 2e 31 2b 63 6f 73 28 75 29 2a 72 3b 70 7a 3d 73 69 6e 28 75 29 2a 72 3b 0d | 2;py=-0.1+cos(u)*r;pz=sin(u)*r;. |
| 13160 | 0a 70 78 3d 78 31 2a 63 77 2d 70 7a 2a 73 77 3b 70 7a 3d 78 31 2a 73 77 2b 70 7a 2a 63 77 3b 0d | .px=x1*cw-pz*sw;pz=x1*sw+pz*cw;. |
| 13180 | 0a 70 78 3d 73 69 67 6e 28 73 79 29 2a 28 70 78 2b 2e 31 34 29 3b 70 7a 3d 70 7a 2b 2e 31 35 3b | .px=sign(sy)*(px+.14);pz=pz+.15; |
| 131a0 | 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d 70 79 2a 73 70 72 7a 3b 79 30 3d 70 78 2a 73 70 72 7a 2b | ..x0=px*cprz-py*sprz;y0=px*sprz+ |
| 131c0 | 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d 79 30 2a 63 78 2d 70 7a 2a 73 78 2d 66 79 3b 7a 31 3d 79 | py*cprz;..y1=y0*cx-pz*sx-fy;z1=y |
| 131e0 | 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a 78 32 3d 78 30 2a 63 79 2d 7a 31 2a 73 79 3b 7a 32 3d 78 | 0*sx+pz*cx;..x2=x0*cy-z1*sy;z2=x |
| 13200 | 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 3b 0d 0a 69 7a 3d 31 2f 7a 32 3b 0d 0a 78 3d 78 32 2a 69 | 0*sy+z1*cy+zf;..iz=1/z2;..x=x2*i |
| 13220 | 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d 0a 69 70 3d 2d 69 70 3b 0d 0a 72 65 64 3d 73 69 6e 28 | z;y=y1*iz*af;..ip=-ip;..red=sin( |
| 13240 | 28 75 2b 72 6f 6c 6c 29 2a 34 29 2a 2e 34 2b 2e 34 3b 0d 0a 67 72 65 65 6e 3d 72 65 64 3b 62 6c | (u+roll)*4)*.4+.4;..green=red;bl |
| 13260 | 75 65 3d 72 65 64 00 72 01 00 00 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a | ue=red.r...zf=reg03;..px=0;pz=-z |
| 13280 | 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 | f;..elevz=reg04;..cr=reg06;sr=re |
| 132a0 | 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 32 31 3b 0d 0a 76 79 3d 72 65 67 32 32 | g07;af=w/h;..vx=reg21;..vy=reg22 |
| 132c0 | 3b 0d 0a 76 7a 3d 72 65 67 32 33 3b 0d 0a 72 79 3d 72 65 67 32 34 3b 63 79 3d 72 65 67 32 35 3b | ;..vz=reg23;..ry=reg24;cy=reg25; |
| 132e0 | 73 79 3d 72 65 67 32 36 3b 0d 0a 72 78 3d 72 65 67 32 37 3b 63 78 3d 72 65 67 32 38 3b 73 78 3d | sy=reg26;..rx=reg27;cx=reg28;sx= |
| 13300 | 72 65 67 32 39 3b 0d 0a 66 79 3d 72 65 67 33 30 3b 0d 0a 70 72 7a 3d 72 65 67 33 31 3b 0d 0a 63 | reg29;..fy=reg30;..prz=reg31;..c |
| 13320 | 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d 72 65 67 33 33 3b 0d 0a 69 70 3d 31 3b 0d 0a | prz=reg32;..sprz=reg33;..ip=1;.. |
| 13340 | 0d 0a 61 70 31 3d 24 70 69 2d 61 73 69 6e 28 2e 30 37 2f 7a 66 29 2a 32 3b 0d 0a 72 6f 6c 6c 3d | ..ap1=$pi-asin(.07/zf)*2;..roll= |
| 13360 | 72 65 67 33 34 2a 2e 30 37 2a 24 70 69 2a 32 3b 0d 0a 6e 3d 38 30 2f 7a 66 2a 77 2f 33 32 30 3b | reg34*.07*$pi*2;..n=80/zf*w/320; |
| 13380 | 0d 0a 0d 0a 64 72 3d 72 65 67 33 36 3b 0d 0a 63 77 3d 63 6f 73 28 64 72 29 3b 73 77 3d 73 69 6e | ....dr=reg36;..cw=cos(dr);sw=sin |
| 133a0 | 28 64 72 29 2a 73 69 67 6e 28 73 79 29 3b 0d 0a 78 6f 66 66 3d 2e 30 34 2a 61 62 6f 76 65 28 2d | (dr)*sign(sy);..xoff=.04*above(- |
| 133c0 | 73 69 67 6e 28 73 79 29 2a 7a 66 2a 73 79 2c 2e 31 34 35 2b 73 77 2a 7a 66 29 0d 0a 00 00 00 00 | sign(sy)*zf*sy,.145+sw*zf)...... |
| 133e0 | 00 20 00 00 00 2f 2f 20 54 69 72 65 20 66 61 63 65 20 62 61 63 6b 20 61 77 61 79 3b 0d 0a 6e 3d | .....//.Tire.face.back.away;..n= |
| 13400 | 31 30 30 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 7c 02 00 00 01 21 01 | 100;.................$...|....!. |
| 13420 | 00 00 75 3d 2d 31 2e 35 37 2d 72 65 67 32 37 2b 28 69 2d 2e 35 29 2a 61 70 31 3b 0d 0a 70 78 3d | ..u=-1.57-reg27+(i-.5)*ap1;..px= |
| 13440 | 73 69 67 6e 28 73 79 29 2a 28 2e 31 34 2b 69 70 2a 2e 30 32 29 3b 70 79 3d 2d 30 2e 31 2b 63 6f | sign(sy)*(.14+ip*.02);py=-0.1+co |
| 13460 | 73 28 75 29 2a 2e 30 37 3b 70 7a 3d 2d 2e 31 35 2b 73 69 6e 28 75 29 2a 2e 30 37 3b 0d 0a 78 30 | s(u)*.07;pz=-.15+sin(u)*.07;..x0 |
| 13480 | 3d 70 78 2a 63 70 72 7a 2d 70 79 2a 73 70 72 7a 3b 79 30 3d 70 78 2a 73 70 72 7a 2b 70 79 2a 63 | =px*cprz-py*sprz;y0=px*sprz+py*c |
| 134a0 | 70 72 7a 3b 0d 0a 79 31 3d 79 30 2a 63 78 2d 70 7a 2a 73 78 2d 66 79 3b 7a 31 3d 79 30 2a 73 78 | prz;..y1=y0*cx-pz*sx-fy;z1=y0*sx |
| 134c0 | 2b 70 7a 2a 63 78 3b 0d 0a 78 32 3d 78 30 2a 63 79 2d 7a 31 2a 73 79 3b 7a 32 3d 78 30 2a 73 79 | +pz*cx;..x2=x0*cy-z1*sy;z2=x0*sy |
| 134e0 | 2b 7a 31 2a 63 79 2b 7a 66 3b 0d 0a 69 7a 3d 31 2f 7a 32 3b 0d 0a 78 3d 78 32 2a 69 7a 3b 79 3d | +z1*cy+zf;..iz=1/z2;..x=x2*iz;y= |
| 13500 | 79 31 2a 69 7a 2a 61 66 3b 0d 0a 69 70 3d 2d 69 70 3b 0d 0a 72 65 64 3d 73 69 6e 28 28 75 2b 72 | y1*iz*af;..ip=-ip;..red=sin((u+r |
| 13520 | 6f 6c 6c 29 2a 34 29 2a 2e 31 2b 2e 34 3b 0d 0a 67 72 65 65 6e 3d 72 65 64 3b 62 6c 75 65 3d 72 | oll)*4)*.1+.4;..green=red;blue=r |
| 13540 | 65 64 00 16 01 00 00 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a | ed.....zf=reg03;..px=0;pz=-zf;.. |
| 13560 | 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b | elevz=reg04;..cr=reg06;sr=reg07; |
| 13580 | 61 66 3d 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 32 31 3b 0d 0a 76 79 3d 72 65 67 32 32 3b 0d 0a 76 | af=w/h;..vx=reg21;..vy=reg22;..v |
| 135a0 | 7a 3d 72 65 67 32 33 3b 0d 0a 72 79 3d 72 65 67 32 34 3b 63 79 3d 72 65 67 32 35 3b 73 79 3d 72 | z=reg23;..ry=reg24;cy=reg25;sy=r |
| 135c0 | 65 67 32 36 3b 0d 0a 72 78 3d 72 65 67 32 37 3b 63 78 3d 72 65 67 32 38 3b 73 78 3d 72 65 67 32 | eg26;..rx=reg27;cx=reg28;sx=reg2 |
| 135e0 | 39 3b 0d 0a 66 79 3d 72 65 67 33 30 3b 0d 0a 70 72 7a 3d 72 65 67 33 31 3b 0d 0a 63 70 72 7a 3d | 9;..fy=reg30;..prz=reg31;..cprz= |
| 13600 | 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d 72 65 67 33 33 3b 0d 0a 69 70 3d 31 3b 0d 0a 0d 0a 61 70 | reg32;..sprz=reg33;..ip=1;....ap |
| 13620 | 31 3d 24 70 69 2d 61 73 69 6e 28 2e 30 37 2f 7a 66 29 2a 32 3b 0d 0a 72 6f 6c 6c 3d 72 65 67 33 | 1=$pi-asin(.07/zf)*2;..roll=reg3 |
| 13640 | 34 2a 2e 30 37 2a 24 70 69 2a 32 3b 0d 0a 6e 3d 35 30 2f 7a 66 2a 77 2f 33 32 30 3b 00 00 00 00 | 4*.07*$pi*2;..n=50/zf*w/320;.... |
| 13660 | 00 24 00 00 00 2f 2f 20 54 69 72 65 20 6f 75 74 65 72 20 62 61 63 6b 20 74 6f 77 61 72 64 73 3b | .$...//.Tire.outer.back.towards; |
| 13680 | 0d 0a 6e 3d 31 30 30 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 68 02 00 | ..n=100;.................$...h.. |
| 136a0 | 00 01 0e 01 00 00 75 3d 69 2a 24 70 69 2a 32 3b 72 3d 2e 30 37 2a 69 70 3b 0d 0a 70 78 3d 73 69 | ......u=i*$pi*2;r=.07*ip;..px=si |
| 136c0 | 67 6e 28 73 79 29 2a 2e 31 32 3b 70 79 3d 2d 30 2e 31 2b 63 6f 73 28 75 29 2a 72 3b 70 7a 3d 2d | gn(sy)*.12;py=-0.1+cos(u)*r;pz=- |
| 136e0 | 2e 31 35 2b 73 69 6e 28 75 29 2a 72 3b 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d 70 79 2a 73 70 72 | .15+sin(u)*r;..x0=px*cprz-py*spr |
| 13700 | 7a 3b 79 30 3d 70 78 2a 73 70 72 7a 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d 79 30 2a 63 78 2d | z;y0=px*sprz+py*cprz;..y1=y0*cx- |
| 13720 | 70 7a 2a 73 78 2d 66 79 3b 7a 31 3d 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a 78 32 3d 78 30 2a | pz*sx-fy;z1=y0*sx+pz*cx;..x2=x0* |
| 13740 | 63 79 2d 7a 31 2a 73 79 3b 7a 32 3d 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 3b 0d 0a 69 7a 3d | cy-z1*sy;z2=x0*sy+z1*cy+zf;..iz= |
| 13760 | 31 2f 7a 32 3b 0d 0a 78 3d 78 32 2a 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d 0a 69 70 3d 2d | 1/z2;..x=x2*iz;y=y1*iz*af;..ip=- |
| 13780 | 69 70 3b 0d 0a 72 65 64 3d 73 69 6e 28 28 75 2b 72 6f 6c 6c 29 2a 34 29 2a 2e 34 2b 2e 34 3b 0d | ip;..red=sin((u+roll)*4)*.4+.4;. |
| 137a0 | 0a 67 72 65 65 6e 3d 72 65 64 3b 62 6c 75 65 3d 72 65 64 00 16 01 00 00 7a 66 3d 72 65 67 30 33 | .green=red;blue=red.....zf=reg03 |
| 137c0 | 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 | ;..px=0;pz=-zf;..elevz=reg04;..c |
| 137e0 | 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 | r=reg06;sr=reg07;af=w/h;..vx=reg |
| 13800 | 32 31 3b 0d 0a 76 79 3d 72 65 67 32 32 3b 0d 0a 76 7a 3d 72 65 67 32 33 3b 0d 0a 72 79 3d 72 65 | 21;..vy=reg22;..vz=reg23;..ry=re |
| 13820 | 67 32 34 3b 63 79 3d 72 65 67 32 35 3b 73 79 3d 72 65 67 32 36 3b 0d 0a 72 78 3d 72 65 67 32 37 | g24;cy=reg25;sy=reg26;..rx=reg27 |
| 13840 | 3b 63 78 3d 72 65 67 32 38 3b 73 78 3d 72 65 67 32 39 3b 0d 0a 66 79 3d 72 65 67 33 30 3b 0d 0a | ;cx=reg28;sx=reg29;..fy=reg30;.. |
| 13860 | 70 72 7a 3d 72 65 67 33 31 3b 0d 0a 63 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d 72 65 | prz=reg31;..cprz=reg32;..sprz=re |
| 13880 | 67 33 33 3b 0d 0a 69 70 3d 31 3b 0d 0a 0d 0a 61 70 31 3d 24 70 69 2d 61 73 69 6e 28 2e 30 37 2f | g33;..ip=1;....ap1=$pi-asin(.07/ |
| 138a0 | 7a 66 29 2a 32 3b 0d 0a 72 6f 6c 6c 3d 72 65 67 33 34 2a 2e 30 37 2a 24 70 69 2a 32 3b 0d 0a 6e | zf)*2;..roll=reg34*.07*$pi*2;..n |
| 138c0 | 3d 38 30 2f 7a 66 2a 77 2f 33 32 30 3b 00 00 00 00 00 23 00 00 00 2f 2f 20 54 69 72 65 20 66 61 | =80/zf*w/320;.....#...//.Tire.fa |
| 138e0 | 63 65 20 62 61 63 6b 20 74 6f 77 61 72 64 73 3b 0d 0a 6e 3d 31 30 30 3b 00 02 00 00 00 01 00 00 | ce.back.towards;..n=100;........ |
| 13900 | 00 ff ff ff 00 01 00 00 00 28 00 00 00 04 00 00 00 00 00 02 80 24 00 00 00 01 03 00 00 01 85 01 | .........(...........$.......... |
| 13920 | 00 00 75 3d 31 2e 35 37 2d 67 79 2a 69 67 32 2a 2e 35 37 3b 0d 0a 70 78 3d 28 28 67 78 2a 69 67 | ..u=1.57-gy*ig2*.57;..px=((gx*ig |
| 13940 | 31 2a 32 2d 31 29 2a 2e 31 32 29 2a 66 6c 69 70 3b 70 79 3d 2d 63 6f 73 28 75 29 2a 2e 31 2d 2e | 1*2-1)*.12)*flip;py=-cos(u)*.1-. |
| 13960 | 31 3b 70 7a 3d 73 69 6e 28 75 29 2a 2e 32 2b 2e 31 3b 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d 70 | 1;pz=sin(u)*.2+.1;..x0=px*cprz-p |
| 13980 | 79 2a 73 70 72 7a 3b 79 30 3d 70 78 2a 73 70 72 7a 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d 79 | y*sprz;y0=px*sprz+py*cprz;..y1=y |
| 139a0 | 30 2a 63 78 2d 70 7a 2a 73 78 2d 66 79 3b 7a 31 3d 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a 78 | 0*cx-pz*sx-fy;z1=y0*sx+pz*cx;..x |
| 139c0 | 32 3d 78 30 2a 63 79 2d 7a 31 2a 73 79 3b 7a 32 3d 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 3b | 2=x0*cy-z1*sy;z2=x0*sy+z1*cy+zf; |
| 139e0 | 0d 0a 69 7a 3d 31 2f 7a 32 3b 0d 0a 78 3d 78 32 2a 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d | ..iz=1/z2;..x=x2*iz;y=y1*iz*af;. |
| 13a00 | 0a 69 70 3d 2d 69 70 3b 0d 0a 72 65 64 3d 62 6e 6f 74 28 65 71 75 61 6c 28 67 78 2c 33 29 2b 65 | .ip=-ip;..red=bnot(equal(gx,3)+e |
| 13a20 | 71 75 61 6c 28 67 78 2c 35 29 29 2a 28 2e 38 2d 2e 31 2a 73 69 6e 28 32 2a 67 79 2a 69 67 32 2a | qual(gx,5))*(.8-.1*sin(2*gy*ig2* |
| 13a40 | 24 70 69 2b 2e 39 29 29 3b 67 72 65 65 6e 3d 30 3b 62 6c 75 65 3d 30 3b 0d 0a 0d 0a 67 78 3d 69 | $pi+.9));green=0;blue=0;....gx=i |
| 13a60 | 66 28 62 65 6c 6f 77 28 67 78 2c 67 31 2d 31 29 2c 67 78 2b 31 2c 30 29 3b 0d 0a 67 79 3d 69 66 | f(below(gx,g1-1),gx+1,0);..gy=if |
| 13a80 | 28 67 78 2c 67 79 2c 67 79 2b 31 29 3b 0d 0a 66 6c 69 70 3d 69 66 28 67 78 2c 66 6c 69 70 2c 2d | (gx,gy,gy+1);..flip=if(gx,flip,- |
| 13aa0 | 66 6c 69 70 29 3b 00 4e 01 00 00 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a | flip);.N...zf=reg03;..px=0;pz=-z |
| 13ac0 | 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 | f;..elevz=reg04;..cr=reg06;sr=re |
| 13ae0 | 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 32 31 3b 0d 0a 76 79 3d 72 65 67 32 32 | g07;af=w/h;..vx=reg21;..vy=reg22 |
| 13b00 | 3b 0d 0a 76 7a 3d 72 65 67 32 33 3b 0d 0a 72 79 3d 72 65 67 32 34 3b 63 79 3d 72 65 67 32 35 3b | ;..vz=reg23;..ry=reg24;cy=reg25; |
| 13b20 | 73 79 3d 72 65 67 32 36 3b 0d 0a 72 78 3d 72 65 67 32 37 3b 63 78 3d 72 65 67 32 38 3b 73 78 3d | sy=reg26;..rx=reg27;cx=reg28;sx= |
| 13b40 | 72 65 67 32 39 3b 0d 0a 66 79 3d 66 79 2b 28 72 65 67 33 30 2d 66 79 29 2a 2e 35 3b 0d 0a 66 79 | reg29;..fy=fy+(reg30-fy)*.5;..fy |
| 13b60 | 3d 6d 69 6e 28 72 65 67 33 30 2b 2e 31 2c 6d 61 78 28 72 65 67 33 30 2d 2e 31 2c 66 79 29 29 3b | =min(reg30+.1,max(reg30-.1,fy)); |
| 13b80 | 0d 0a 70 72 7a 3d 72 65 67 33 31 3b 0d 0a 63 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d | ..prz=reg31;..cprz=reg32;..sprz= |
| 13ba0 | 72 65 67 33 33 3b 0d 0a 0d 0a 67 31 3d 38 3b 67 32 3d 38 2f 7a 66 2a 77 2f 33 32 30 3b 0d 0a 69 | reg33;....g1=8;g2=8/zf*w/320;..i |
| 13bc0 | 67 31 3d 31 2f 28 67 31 2d 31 29 3b 69 67 32 3d 31 2f 28 67 32 2d 31 29 3b 0d 0a 6e 3d 67 31 2a | g1=1/(g1-1);ig2=1/(g2-1);..n=g1* |
| 13be0 | 67 32 3b 0d 0a 67 78 3d 30 3b 67 79 3d 30 3b 0d 0a 66 6c 69 70 3d 31 3b 00 00 00 00 00 0d 00 00 | g2;..gx=0;gy=0;..flip=1;........ |
| 13c00 | 00 2f 2f 20 46 72 6f 6e 74 20 61 0d 0a 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 | .//.Front.a...................$. |
| 13c20 | 00 00 f9 02 00 00 01 7c 01 00 00 75 3d 67 79 2a 69 67 32 3b 0d 0a 70 78 3d 28 28 67 78 2a 69 67 | .......|...u=gy*ig2;..px=((gx*ig |
| 13c40 | 31 2a 32 2d 31 29 2a 2e 31 32 29 2a 66 6c 69 70 3b 70 79 3d 2d 63 6f 73 28 75 29 2a 2e 31 2d 2e | 1*2-1)*.12)*flip;py=-cos(u)*.1-. |
| 13c60 | 31 3b 70 7a 3d 73 69 6e 28 75 29 2a 2e 32 2b 2e 31 3b 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d 70 | 1;pz=sin(u)*.2+.1;..x0=px*cprz-p |
| 13c80 | 79 2a 73 70 72 7a 3b 79 30 3d 70 78 2a 73 70 72 7a 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d 79 | y*sprz;y0=px*sprz+py*cprz;..y1=y |
| 13ca0 | 30 2a 63 78 2d 70 7a 2a 73 78 2d 66 79 3b 7a 31 3d 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a 78 | 0*cx-pz*sx-fy;z1=y0*sx+pz*cx;..x |
| 13cc0 | 32 3d 78 30 2a 63 79 2d 7a 31 2a 73 79 3b 7a 32 3d 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 3b | 2=x0*cy-z1*sy;z2=x0*sy+z1*cy+zf; |
| 13ce0 | 0d 0a 69 7a 3d 31 2f 7a 32 3b 0d 0a 78 3d 78 32 2a 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d | ..iz=1/z2;..x=x2*iz;y=y1*iz*af;. |
| 13d00 | 0a 69 70 3d 2d 69 70 3b 0d 0a 72 65 64 3d 62 6e 6f 74 28 65 71 75 61 6c 28 67 78 2c 33 29 2b 65 | .ip=-ip;..red=bnot(equal(gx,3)+e |
| 13d20 | 71 75 61 6c 28 67 78 2c 35 29 29 2a 28 2e 38 2d 2e 31 2a 73 69 6e 28 32 2a 67 79 2a 69 67 32 2a | qual(gx,5))*(.8-.1*sin(2*gy*ig2* |
| 13d40 | 24 70 69 2b 2e 39 29 29 3b 67 72 65 65 6e 3d 30 3b 62 6c 75 65 3d 30 3b 0d 0a 0d 0a 67 78 3d 69 | $pi+.9));green=0;blue=0;....gx=i |
| 13d60 | 66 28 62 65 6c 6f 77 28 67 78 2c 67 31 2d 31 29 2c 67 78 2b 31 2c 30 29 3b 0d 0a 67 79 3d 69 66 | f(below(gx,g1-1),gx+1,0);..gy=if |
| 13d80 | 28 67 78 2c 67 79 2c 67 79 2b 31 29 3b 0d 0a 66 6c 69 70 3d 69 66 28 67 78 2c 66 6c 69 70 2c 2d | (gx,gy,gy+1);..flip=if(gx,flip,- |
| 13da0 | 66 6c 69 70 29 3b 00 4f 01 00 00 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a | flip);.O...zf=reg03;..px=0;pz=-z |
| 13dc0 | 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 | f;..elevz=reg04;..cr=reg06;sr=re |
| 13de0 | 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 32 31 3b 0d 0a 76 79 3d 72 65 67 32 32 | g07;af=w/h;..vx=reg21;..vy=reg22 |
| 13e00 | 3b 0d 0a 76 7a 3d 72 65 67 32 33 3b 0d 0a 72 79 3d 72 65 67 32 34 3b 63 79 3d 72 65 67 32 35 3b | ;..vz=reg23;..ry=reg24;cy=reg25; |
| 13e20 | 73 79 3d 72 65 67 32 36 3b 0d 0a 72 78 3d 72 65 67 32 37 3b 63 78 3d 72 65 67 32 38 3b 73 78 3d | sy=reg26;..rx=reg27;cx=reg28;sx= |
| 13e40 | 72 65 67 32 39 3b 0d 0a 66 79 3d 66 79 2b 28 72 65 67 33 30 2d 66 79 29 2a 2e 35 3b 0d 0a 66 79 | reg29;..fy=fy+(reg30-fy)*.5;..fy |
| 13e60 | 3d 6d 69 6e 28 72 65 67 33 30 2b 2e 31 2c 6d 61 78 28 72 65 67 33 30 2d 2e 31 2c 66 79 29 29 3b | =min(reg30+.1,max(reg30-.1,fy)); |
| 13e80 | 0d 0a 70 72 7a 3d 72 65 67 33 31 3b 0d 0a 63 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d | ..prz=reg31;..cprz=reg32;..sprz= |
| 13ea0 | 72 65 67 33 33 3b 0d 0a 0d 0a 67 31 3d 38 3b 67 32 3d 31 38 2f 7a 66 2a 77 2f 33 32 30 3b 0d 0a | reg33;....g1=8;g2=18/zf*w/320;.. |
| 13ec0 | 69 67 31 3d 31 2f 28 67 31 2d 31 29 3b 69 67 32 3d 31 2f 28 67 32 2d 31 29 3b 0d 0a 6e 3d 67 31 | ig1=1/(g1-1);ig2=1/(g2-1);..n=g1 |
| 13ee0 | 2a 67 32 3b 0d 0a 67 78 3d 30 3b 67 79 3d 30 3b 0d 0a 66 6c 69 70 3d 31 3b 00 00 00 00 00 0d 00 | *g2;..gx=0;gy=0;..flip=1;....... |
| 13f00 | 00 00 2f 2f 20 46 72 6f 6e 74 20 62 0d 0a 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 | ..//.Front.b...................$ |
| 13f20 | 00 00 00 bb 03 00 00 01 2c 02 00 00 75 3d 67 79 2a 69 67 32 3b 0d 0a 70 78 3d 2d 2e 31 32 2a 73 | ........,...u=gy*ig2;..px=-.12*s |
| 13f40 | 69 64 65 3b 70 79 3d 2d 69 2a 2e 31 35 2d 2e 31 3b 0d 0a 6a 3d 69 2a 31 2e 33 35 3b 0d 0a 70 7a | ide;py=-i*.15-.1;..j=i*1.35;..pz |
| 13f60 | 3d 69 66 28 69 70 2b 31 2c 69 66 28 62 65 6c 6f 77 28 6a 2c 31 29 2c 73 71 72 74 28 31 2d 73 71 | =if(ip+1,if(below(j,1),sqrt(1-sq |
| 13f80 | 72 28 6a 29 29 2a 2e 32 2b 2e 31 2c 2e 31 2d 28 6a 2d 2e 35 29 2a 2e 30 32 35 29 2c 69 66 28 62 | r(j))*.2+.1,.1-(j-.5)*.025),if(b |
| 13fa0 | 65 6c 6f 77 28 6a 2c 31 29 2c 2d 73 71 72 74 28 31 2d 73 71 72 28 6a 29 29 2a 2e 31 2d 2e 31 2c | elow(j,1),-sqrt(1-sqr(j))*.1-.1, |
| 13fc0 | 2d 2e 31 2b 28 6a 2d 31 29 2a 2e 30 35 29 29 3b 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d 70 79 2a | -.1+(j-1)*.05));..x0=px*cprz-py* |
| 13fe0 | 73 70 72 7a 3b 79 30 3d 70 78 2a 73 70 72 7a 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d 79 30 2a | sprz;y0=px*sprz+py*cprz;..y1=y0* |
| 14000 | 63 78 2d 70 7a 2a 73 78 2d 66 79 3b 7a 31 3d 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a 78 32 3d | cx-pz*sx-fy;z1=y0*sx+pz*cx;..x2= |
| 14020 | 78 30 2a 63 79 2d 7a 31 2a 73 79 3b 7a 32 3d 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 3b 0d 0a | x0*cy-z1*sy;z2=x0*sy+z1*cy+zf;.. |
| 14040 | 69 7a 3d 31 2f 7a 32 3b 0d 0a 78 3d 78 32 2a 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d 0a 69 | iz=1/z2;..x=x2*iz;y=y1*iz*af;..i |
| 14060 | 70 3d 2d 69 70 3b 0d 0a 73 73 3d 61 62 6f 76 65 28 6a 2c 31 29 3b 0d 0a 72 65 64 3d 28 31 2d 73 | p=-ip;..ss=above(j,1);..red=(1-s |
| 14080 | 73 29 3b 0d 0a 62 6c 75 65 3d 31 2d 72 65 64 3b 63 76 3d 62 6c 75 65 2a 73 71 72 28 73 71 72 28 | s);..blue=1-red;cv=blue*sqr(sqr( |
| 140a0 | 73 69 6e 28 28 78 2a 63 72 2d 79 2a 73 72 2b 63 79 2b 31 29 2a 31 30 29 2a 2e 35 2b 2e 35 29 29 | sin((x*cr-y*sr+cy+1)*10)*.5+.5)) |
| 140c0 | 3b 0d 0a 67 72 65 65 6e 3d 62 6c 75 65 2a 2e 37 2b 63 76 3b 72 65 64 3d 72 65 64 2a 28 2e 38 2d | ;..green=blue*.7+cv;red=red*(.8- |
| 140e0 | 2e 31 2a 73 69 6e 28 32 2a 67 79 2a 69 67 32 2a 24 70 69 2b 2e 39 29 29 2b 63 76 3b 62 6c 75 65 | .1*sin(2*gy*ig2*$pi+.9))+cv;blue |
| 14100 | 3d 62 6c 75 65 2b 63 76 3b 0d 0a 0d 0a 67 78 3d 69 66 28 62 65 6c 6f 77 28 67 78 2c 67 31 2d 31 | =blue+cv;....gx=if(below(gx,g1-1 |
| 14120 | 29 2c 67 78 2b 31 2c 30 29 3b 0d 0a 67 79 3d 69 66 28 67 78 2c 67 79 2c 67 79 2b 31 29 3b 0d 0a | ),gx+1,0);..gy=if(gx,gy,gy+1);.. |
| 14140 | 66 6c 69 70 3d 69 66 28 67 78 2c 66 6c 69 70 2c 2d 66 6c 69 70 29 3b 00 64 01 00 00 7a 66 3d 72 | flip=if(gx,flip,-flip);.d...zf=r |
| 14160 | 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 | eg03;..px=0;pz=-zf;..elevz=reg04 |
| 14180 | 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 76 78 | ;..cr=reg06;sr=reg07;af=w/h;..vx |
| 141a0 | 3d 72 65 67 32 31 3b 0d 0a 76 79 3d 72 65 67 32 32 3b 0d 0a 76 7a 3d 72 65 67 32 33 3b 0d 0a 72 | =reg21;..vy=reg22;..vz=reg23;..r |
| 141c0 | 79 3d 72 65 67 32 34 3b 63 79 3d 72 65 67 32 35 3b 73 79 3d 72 65 67 32 36 3b 0d 0a 72 78 3d 72 | y=reg24;cy=reg25;sy=reg26;..rx=r |
| 141e0 | 65 67 32 37 3b 63 78 3d 72 65 67 32 38 3b 73 78 3d 72 65 67 32 39 3b 0d 0a 66 79 3d 66 79 2b 28 | eg27;cx=reg28;sx=reg29;..fy=fy+( |
| 14200 | 72 65 67 33 30 2d 66 79 29 2a 2e 35 3b 0d 0a 66 79 3d 6d 69 6e 28 72 65 67 33 30 2b 2e 31 2c 6d | reg30-fy)*.5;..fy=min(reg30+.1,m |
| 14220 | 61 78 28 72 65 67 33 30 2d 2e 31 2c 66 79 29 29 3b 0d 0a 70 72 7a 3d 72 65 67 33 31 3b 0d 0a 63 | ax(reg30-.1,fy));..prz=reg31;..c |
| 14240 | 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d 72 65 67 33 33 3b 0d 0a 0d 0a 67 31 3d 36 3b | prz=reg32;..sprz=reg33;....g1=6; |
| 14260 | 67 32 3d 31 30 2f 7a 66 2a 77 2f 33 32 30 3b 0d 0a 69 67 31 3d 31 2f 28 67 31 2d 31 29 3b 69 67 | g2=10/zf*w/320;..ig1=1/(g1-1);ig |
| 14280 | 32 3d 31 2f 28 67 32 2d 31 29 3b 0d 0a 6e 3d 67 31 2a 67 32 3b 0d 0a 67 78 3d 30 3b 67 79 3d 30 | 2=1/(g2-1);..n=g1*g2;..gx=0;gy=0 |
| 142a0 | 3b 0d 0a 69 70 3d 31 3b 0d 0a 73 69 64 65 3d 73 69 67 6e 28 73 79 2b 73 70 72 7a 2a 2e 35 29 00 | ;..ip=1;..side=sign(sy+sprz*.5). |
| 142c0 | 00 00 00 00 0a 00 00 00 2f 2f 20 53 69 64 65 0d 0a 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 | ........//.Side................. |
| 142e0 | 00 00 28 00 00 00 04 00 00 00 00 00 02 80 24 00 00 00 d9 02 00 00 01 4f 01 00 00 75 3d 2d 31 2e | ..(...........$........O...u=-1. |
| 14300 | 35 37 2d 72 65 67 32 37 2b 28 69 2d 2e 35 29 2a 61 70 31 3b 0d 0a 78 31 3d 69 70 2a 2e 30 32 3b | 57-reg27+(i-.5)*ap1;..x1=ip*.02; |
| 14320 | 70 79 3d 2d 30 2e 31 2b 63 6f 73 28 75 29 2a 2e 30 37 3b 70 7a 3d 73 69 6e 28 75 29 2a 2e 30 37 | py=-0.1+cos(u)*.07;pz=sin(u)*.07 |
| 14340 | 3b 0d 0a 70 78 3d 78 31 2a 63 77 2d 70 7a 2a 73 77 3b 70 7a 3d 78 31 2a 73 77 2b 70 7a 2a 63 77 | ;..px=x1*cw-pz*sw;pz=x1*sw+pz*cw |
| 14360 | 3b 0d 0a 70 78 3d 2d 73 69 67 6e 28 73 79 29 2a 28 70 78 2b 2e 31 34 29 3b 70 7a 3d 70 7a 2b 2e | ;..px=-sign(sy)*(px+.14);pz=pz+. |
| 14380 | 31 35 3b 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d 70 79 2a 73 70 72 7a 3b 79 30 3d 70 78 2a 73 70 | 15;..x0=px*cprz-py*sprz;y0=px*sp |
| 143a0 | 72 7a 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d 79 30 2a 63 78 2d 70 7a 2a 73 78 2d 66 79 3b 7a | rz+py*cprz;..y1=y0*cx-pz*sx-fy;z |
| 143c0 | 31 3d 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a 78 32 3d 78 30 2a 63 79 2d 7a 31 2a 73 79 3b 7a | 1=y0*sx+pz*cx;..x2=x0*cy-z1*sy;z |
| 143e0 | 32 3d 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 3b 0d 0a 69 7a 3d 31 2f 7a 32 3b 0d 0a 78 3d 78 | 2=x0*sy+z1*cy+zf;..iz=1/z2;..x=x |
| 14400 | 32 2a 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d 0a 69 70 3d 2d 69 70 3b 0d 0a 72 65 64 3d 73 | 2*iz;y=y1*iz*af;..ip=-ip;..red=s |
| 14420 | 69 6e 28 28 75 2b 72 6f 6c 6c 29 2a 34 29 2a 2e 31 2b 2e 34 3b 0d 0a 67 72 65 65 6e 3d 72 65 64 | in((u+roll)*4)*.1+.4;..green=red |
| 14440 | 3b 62 6c 75 65 3d 72 65 64 00 47 01 00 00 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a | ;blue=red.G...zf=reg03;..px=0;pz |
| 14460 | 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 | =-zf;..elevz=reg04;..cr=reg06;sr |
| 14480 | 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 32 31 3b 0d 0a 76 79 3d 72 65 | =reg07;af=w/h;..vx=reg21;..vy=re |
| 144a0 | 67 32 32 3b 0d 0a 76 7a 3d 72 65 67 32 33 3b 0d 0a 72 79 3d 72 65 67 32 34 3b 63 79 3d 72 65 67 | g22;..vz=reg23;..ry=reg24;cy=reg |
| 144c0 | 32 35 3b 73 79 3d 72 65 67 32 36 3b 0d 0a 72 78 3d 72 65 67 32 37 3b 63 78 3d 72 65 67 32 38 3b | 25;sy=reg26;..rx=reg27;cx=reg28; |
| 144e0 | 73 78 3d 72 65 67 32 39 3b 0d 0a 66 79 3d 72 65 67 33 30 3b 0d 0a 70 72 7a 3d 72 65 67 33 31 3b | sx=reg29;..fy=reg30;..prz=reg31; |
| 14500 | 0d 0a 63 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d 72 65 67 33 33 3b 0d 0a 69 70 3d 31 | ..cprz=reg32;..sprz=reg33;..ip=1 |
| 14520 | 3b 0d 0a 0d 0a 61 70 31 3d 24 70 69 2d 61 73 69 6e 28 2e 30 37 2f 7a 66 29 2a 32 3b 0d 0a 72 6f | ;....ap1=$pi-asin(.07/zf)*2;..ro |
| 14540 | 6c 6c 3d 72 65 67 33 34 2a 2e 30 37 2a 24 70 69 2a 32 3b 0d 0a 6e 3d 35 30 2f 7a 66 2a 77 2f 33 | ll=reg34*.07*$pi*2;..n=50/zf*w/3 |
| 14560 | 32 30 3b 0d 0a 0d 0a 64 72 3d 72 65 67 33 36 3b 0d 0a 63 77 3d 63 6f 73 28 64 72 29 3b 73 77 3d | 20;....dr=reg36;..cw=cos(dr);sw= |
| 14580 | 2d 73 69 6e 28 64 72 29 2a 73 69 67 6e 28 73 79 29 3b 0d 0a 00 00 00 00 00 22 00 00 00 2f 2f 20 | -sin(dr)*sign(sy);......."...//. |
| 145a0 | 54 69 72 65 20 6f 75 74 65 72 20 66 72 6f 6e 74 20 61 77 61 79 3b 0d 0a 6e 3d 31 30 30 3b 00 02 | Tire.outer.front.away;..n=100;.. |
| 145c0 | 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 fc 02 00 00 01 48 01 00 00 75 3d 69 2a | ...............$........H...u=i* |
| 145e0 | 24 70 69 2a 32 3b 72 3d 2e 30 37 2a 69 70 3b 0d 0a 78 31 3d 78 6f 66 66 2d 2e 30 32 3b 70 79 3d | $pi*2;r=.07*ip;..x1=xoff-.02;py= |
| 14600 | 2d 30 2e 31 2b 63 6f 73 28 75 29 2a 72 3b 70 7a 3d 73 69 6e 28 75 29 2a 72 3b 0d 0a 70 78 3d 78 | -0.1+cos(u)*r;pz=sin(u)*r;..px=x |
| 14620 | 31 2a 63 77 2d 70 7a 2a 73 77 3b 70 7a 3d 78 31 2a 73 77 2b 70 7a 2a 63 77 3b 0d 0a 70 78 3d 2d | 1*cw-pz*sw;pz=x1*sw+pz*cw;..px=- |
| 14640 | 73 69 67 6e 28 73 79 29 2a 28 70 78 2b 2e 31 34 29 3b 70 7a 3d 70 7a 2b 2e 31 35 3b 0d 0a 78 30 | sign(sy)*(px+.14);pz=pz+.15;..x0 |
| 14660 | 3d 70 78 2a 63 70 72 7a 2d 70 79 2a 73 70 72 7a 3b 79 30 3d 70 78 2a 73 70 72 7a 2b 70 79 2a 63 | =px*cprz-py*sprz;y0=px*sprz+py*c |
| 14680 | 70 72 7a 3b 0d 0a 79 31 3d 79 30 2a 63 78 2d 70 7a 2a 73 78 2d 66 79 3b 7a 31 3d 79 30 2a 73 78 | prz;..y1=y0*cx-pz*sx-fy;z1=y0*sx |
| 146a0 | 2b 70 7a 2a 63 78 3b 0d 0a 78 32 3d 78 30 2a 63 79 2d 7a 31 2a 73 79 3b 7a 32 3d 78 30 2a 73 79 | +pz*cx;..x2=x0*cy-z1*sy;z2=x0*sy |
| 146c0 | 2b 7a 31 2a 63 79 2b 7a 66 3b 0d 0a 69 7a 3d 31 2f 7a 32 3b 0d 0a 78 3d 78 32 2a 69 7a 3b 79 3d | +z1*cy+zf;..iz=1/z2;..x=x2*iz;y= |
| 146e0 | 79 31 2a 69 7a 2a 61 66 3b 0d 0a 69 70 3d 2d 69 70 3b 0d 0a 72 65 64 3d 73 69 6e 28 28 75 2b 72 | y1*iz*af;..ip=-ip;..red=sin((u+r |
| 14700 | 6f 6c 6c 29 2a 34 29 2a 2e 34 2b 2e 34 3b 0d 0a 67 72 65 65 6e 3d 72 65 64 3b 62 6c 75 65 3d 72 | oll)*4)*.4+.4;..green=red;blue=r |
| 14720 | 65 64 3b 00 72 01 00 00 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d | ed;.r...zf=reg03;..px=0;pz=-zf;. |
| 14740 | 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 | .elevz=reg04;..cr=reg06;sr=reg07 |
| 14760 | 3b 61 66 3d 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 32 31 3b 0d 0a 76 79 3d 72 65 67 32 32 3b 0d 0a | ;af=w/h;..vx=reg21;..vy=reg22;.. |
| 14780 | 76 7a 3d 72 65 67 32 33 3b 0d 0a 72 79 3d 72 65 67 32 34 3b 63 79 3d 72 65 67 32 35 3b 73 79 3d | vz=reg23;..ry=reg24;cy=reg25;sy= |
| 147a0 | 72 65 67 32 36 3b 0d 0a 72 78 3d 72 65 67 32 37 3b 63 78 3d 72 65 67 32 38 3b 73 78 3d 72 65 67 | reg26;..rx=reg27;cx=reg28;sx=reg |
| 147c0 | 32 39 3b 0d 0a 66 79 3d 72 65 67 33 30 3b 0d 0a 70 72 7a 3d 72 65 67 33 31 3b 0d 0a 63 70 72 7a | 29;..fy=reg30;..prz=reg31;..cprz |
| 147e0 | 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d 72 65 67 33 33 3b 0d 0a 69 70 3d 31 3b 0d 0a 0d 0a 61 | =reg32;..sprz=reg33;..ip=1;....a |
| 14800 | 70 31 3d 24 70 69 2d 61 73 69 6e 28 2e 30 37 2f 7a 66 29 2a 32 3b 0d 0a 72 6f 6c 6c 3d 72 65 67 | p1=$pi-asin(.07/zf)*2;..roll=reg |
| 14820 | 33 34 2a 2e 30 37 2a 24 70 69 2a 32 3b 0d 0a 6e 3d 38 30 2f 7a 66 2a 77 2f 33 32 30 3b 0d 0a 0d | 34*.07*$pi*2;..n=80/zf*w/320;... |
| 14840 | 0a 64 72 3d 72 65 67 33 36 3b 0d 0a 63 77 3d 63 6f 73 28 64 72 29 3b 73 77 3d 2d 73 69 6e 28 64 | .dr=reg36;..cw=cos(dr);sw=-sin(d |
| 14860 | 72 29 2a 73 69 67 6e 28 73 79 29 3b 0d 0a 78 6f 66 66 3d 2e 30 34 2a 61 62 6f 76 65 28 73 69 67 | r)*sign(sy);..xoff=.04*above(sig |
| 14880 | 6e 28 73 79 29 2a 7a 66 2a 73 79 2c 2e 31 34 35 2b 73 77 2a 7a 66 29 0d 0a 00 00 00 00 00 21 00 | n(sy)*zf*sy,.145+sw*zf).......!. |
| 148a0 | 00 00 2f 2f 20 54 69 72 65 20 66 61 63 65 20 66 72 6f 6e 74 20 61 77 61 79 3b 0d 0a 6e 3d 31 30 | ..//.Tire.face.front.away;..n=10 |
| 148c0 | 30 3b 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 28 00 00 00 04 00 00 00 00 00 02 80 24 | 0;.................(...........$ |
| 148e0 | 00 00 00 24 02 00 00 01 d1 00 00 00 70 78 3d 69 70 2a 2e 31 32 3b 70 79 3d 2d 30 2e 31 3b 70 7a | ...$........px=ip*.12;py=-0.1;pz |
| 14900 | 3d 69 2a 2e 34 37 2d 2e 32 3b 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d 70 79 2a 73 70 72 7a 3b 79 | =i*.47-.2;..x0=px*cprz-py*sprz;y |
| 14920 | 30 3d 70 78 2a 73 70 72 7a 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d 79 30 2a 63 78 2d 70 7a 2a | 0=px*sprz+py*cprz;..y1=y0*cx-pz* |
| 14940 | 73 78 2d 66 79 3b 7a 31 3d 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a 78 32 3d 78 30 2a 63 79 2d | sx-fy;z1=y0*sx+pz*cx;..x2=x0*cy- |
| 14960 | 7a 31 2a 73 79 3b 7a 32 3d 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 3b 0d 0a 69 7a 3d 31 2f 7a | z1*sy;z2=x0*sy+z1*cy+zf;..iz=1/z |
| 14980 | 32 3b 0d 0a 78 3d 78 32 2a 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d 0a 69 70 3d 2d 69 70 3b | 2;..x=x2*iz;y=y1*iz*af;..ip=-ip; |
| 149a0 | 0d 0a 72 65 64 3d 2e 32 35 3b 67 72 65 65 6e 3d 2e 32 35 3b 62 6c 75 65 3d 2e 32 35 00 20 01 00 | ..red=.25;green=.25;blue=.25.... |
| 149c0 | 00 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d | .zf=reg03;..px=0;pz=-zf;..elevz= |
| 149e0 | 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 | reg04;..cr=reg06;sr=reg07;af=w/h |
| 14a00 | 3b 0d 0a 76 78 3d 72 65 67 32 31 3b 0d 0a 76 79 3d 72 65 67 32 32 3b 0d 0a 76 7a 3d 72 65 67 32 | ;..vx=reg21;..vy=reg22;..vz=reg2 |
| 14a20 | 33 3b 0d 0a 72 79 3d 72 65 67 32 34 3b 63 79 3d 72 65 67 32 35 3b 73 79 3d 72 65 67 32 36 3b 0d | 3;..ry=reg24;cy=reg25;sy=reg26;. |
| 14a40 | 0a 72 78 3d 72 65 67 32 37 3b 63 78 3d 72 65 67 32 38 3b 73 78 3d 72 65 67 32 39 3b 0d 0a 66 79 | .rx=reg27;cx=reg28;sx=reg29;..fy |
| 14a60 | 3d 66 79 2b 28 72 65 67 33 30 2d 66 79 29 2a 2e 35 3b 0d 0a 66 79 3d 6d 69 6e 28 72 65 67 33 30 | =fy+(reg30-fy)*.5;..fy=min(reg30 |
| 14a80 | 2b 2e 31 2c 6d 61 78 28 72 65 67 33 30 2d 2e 31 2c 66 79 29 29 3b 0d 0a 70 72 7a 3d 72 65 67 33 | +.1,max(reg30-.1,fy));..prz=reg3 |
| 14aa0 | 31 3b 0d 0a 63 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d 72 65 67 33 33 3b 0d 0a 69 70 | 1;..cprz=reg32;..sprz=reg33;..ip |
| 14ac0 | 3d 31 3b 0d 0a 0d 0a 6e 3d 62 65 6c 6f 77 28 73 78 2c 30 29 2a 34 35 2f 7a 66 2a 77 2f 33 32 30 | =1;....n=below(sx,0)*45/zf*w/320 |
| 14ae0 | 00 00 00 00 00 12 00 00 00 2f 2f 20 42 6f 74 74 6f 6d 3b 0d 0a 6e 3d 31 30 3b 00 02 00 00 00 01 | .........//.Bottom;..n=10;...... |
| 14b00 | 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 7e 02 00 00 01 22 01 00 00 75 3d 2d 31 2e 35 37 2d | ...........$...~...."...u=-1.57- |
| 14b20 | 72 65 67 32 37 2b 28 69 2d 2e 35 29 2a 61 70 31 3b 0d 0a 70 78 3d 2d 73 69 67 6e 28 73 79 29 2a | reg27+(i-.5)*ap1;..px=-sign(sy)* |
| 14b40 | 28 2e 31 34 2b 69 70 2a 2e 30 32 29 3b 70 79 3d 2d 30 2e 31 2b 63 6f 73 28 75 29 2a 2e 30 37 3b | (.14+ip*.02);py=-0.1+cos(u)*.07; |
| 14b60 | 70 7a 3d 2d 2e 31 35 2b 73 69 6e 28 75 29 2a 2e 30 37 3b 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d | pz=-.15+sin(u)*.07;..x0=px*cprz- |
| 14b80 | 70 79 2a 73 70 72 7a 3b 79 30 3d 70 78 2a 73 70 72 7a 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d | py*sprz;y0=px*sprz+py*cprz;..y1= |
| 14ba0 | 79 30 2a 63 78 2d 70 7a 2a 73 78 2d 66 79 3b 7a 31 3d 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a | y0*cx-pz*sx-fy;z1=y0*sx+pz*cx;.. |
| 14bc0 | 78 32 3d 78 30 2a 63 79 2d 7a 31 2a 73 79 3b 7a 32 3d 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 | x2=x0*cy-z1*sy;z2=x0*sy+z1*cy+zf |
| 14be0 | 3b 0d 0a 69 7a 3d 31 2f 7a 32 3b 0d 0a 78 3d 78 32 2a 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b | ;..iz=1/z2;..x=x2*iz;y=y1*iz*af; |
| 14c00 | 0d 0a 69 70 3d 2d 69 70 3b 0d 0a 72 65 64 3d 73 69 6e 28 28 75 2b 72 6f 6c 6c 29 2a 34 29 2a 2e | ..ip=-ip;..red=sin((u+roll)*4)*. |
| 14c20 | 31 2b 2e 34 3b 0d 0a 67 72 65 65 6e 3d 72 65 64 3b 62 6c 75 65 3d 72 65 64 00 16 01 00 00 7a 66 | 1+.4;..green=red;blue=red.....zf |
| 14c40 | 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 | =reg03;..px=0;pz=-zf;..elevz=reg |
| 14c60 | 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a | 04;..cr=reg06;sr=reg07;af=w/h;.. |
| 14c80 | 76 78 3d 72 65 67 32 31 3b 0d 0a 76 79 3d 72 65 67 32 32 3b 0d 0a 76 7a 3d 72 65 67 32 33 3b 0d | vx=reg21;..vy=reg22;..vz=reg23;. |
| 14ca0 | 0a 72 79 3d 72 65 67 32 34 3b 63 79 3d 72 65 67 32 35 3b 73 79 3d 72 65 67 32 36 3b 0d 0a 72 78 | .ry=reg24;cy=reg25;sy=reg26;..rx |
| 14cc0 | 3d 72 65 67 32 37 3b 63 78 3d 72 65 67 32 38 3b 73 78 3d 72 65 67 32 39 3b 0d 0a 66 79 3d 72 65 | =reg27;cx=reg28;sx=reg29;..fy=re |
| 14ce0 | 67 33 30 3b 0d 0a 70 72 7a 3d 72 65 67 33 31 3b 0d 0a 63 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 | g30;..prz=reg31;..cprz=reg32;..s |
| 14d00 | 70 72 7a 3d 72 65 67 33 33 3b 0d 0a 69 70 3d 31 3b 0d 0a 0d 0a 61 70 31 3d 24 70 69 2d 61 73 69 | prz=reg33;..ip=1;....ap1=$pi-asi |
| 14d20 | 6e 28 2e 30 37 2f 7a 66 29 2a 32 3b 0d 0a 72 6f 6c 6c 3d 72 65 67 33 34 2a 2e 30 37 2a 24 70 69 | n(.07/zf)*2;..roll=reg34*.07*$pi |
| 14d40 | 2a 32 3b 0d 0a 6e 3d 34 30 2f 7a 66 2a 77 2f 33 32 30 3b 00 00 00 00 00 25 00 00 00 2f 2f 20 54 | *2;..n=40/zf*w/320;.....%...//.T |
| 14d60 | 69 72 65 20 6f 75 74 65 72 20 66 72 6f 6e 74 20 74 6f 77 61 72 64 73 3b 0d 0a 6e 3d 31 30 30 3b | ire.outer.front.towards;..n=100; |
| 14d80 | 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 92 02 00 00 01 16 01 00 00 75 3d | .................$............u= |
| 14da0 | 69 2a 24 70 69 2a 32 3b 72 3d 2e 30 37 2a 69 70 3b 0d 0a 70 78 3d 2d 73 69 67 6e 28 73 79 29 2a | i*$pi*2;r=.07*ip;..px=-sign(sy)* |
| 14dc0 | 28 2e 31 32 2b 78 6f 66 66 29 3b 70 79 3d 2d 30 2e 31 2b 63 6f 73 28 75 29 2a 72 3b 70 7a 3d 2d | (.12+xoff);py=-0.1+cos(u)*r;pz=- |
| 14de0 | 2e 31 35 2b 73 69 6e 28 75 29 2a 72 3b 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d 70 79 2a 73 70 72 | .15+sin(u)*r;..x0=px*cprz-py*spr |
| 14e00 | 7a 3b 79 30 3d 70 78 2a 73 70 72 7a 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d 79 30 2a 63 78 2d | z;y0=px*sprz+py*cprz;..y1=y0*cx- |
| 14e20 | 70 7a 2a 73 78 2d 66 79 3b 7a 31 3d 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a 78 32 3d 78 30 2a | pz*sx-fy;z1=y0*sx+pz*cx;..x2=x0* |
| 14e40 | 63 79 2d 7a 31 2a 73 79 3b 7a 32 3d 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 3b 0d 0a 69 7a 3d | cy-z1*sy;z2=x0*sy+z1*cy+zf;..iz= |
| 14e60 | 31 2f 7a 32 3b 0d 0a 78 3d 78 32 2a 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d 0a 69 70 3d 2d | 1/z2;..x=x2*iz;y=y1*iz*af;..ip=- |
| 14e80 | 69 70 3b 0d 0a 72 65 64 3d 73 69 6e 28 28 75 2b 72 6f 6c 6c 29 2a 34 29 2a 2e 34 2b 2e 34 3b 0d | ip;..red=sin((u+roll)*4)*.4+.4;. |
| 14ea0 | 0a 67 72 65 65 6e 3d 72 65 64 3b 62 6c 75 65 3d 72 65 64 00 37 01 00 00 7a 66 3d 72 65 67 30 33 | .green=red;blue=red.7...zf=reg03 |
| 14ec0 | 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 | ;..px=0;pz=-zf;..elevz=reg04;..c |
| 14ee0 | 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 | r=reg06;sr=reg07;af=w/h;..vx=reg |
| 14f00 | 32 31 3b 0d 0a 76 79 3d 72 65 67 32 32 3b 0d 0a 76 7a 3d 72 65 67 32 33 3b 0d 0a 72 79 3d 72 65 | 21;..vy=reg22;..vz=reg23;..ry=re |
| 14f20 | 67 32 34 3b 63 79 3d 72 65 67 32 35 3b 73 79 3d 72 65 67 32 36 3b 0d 0a 72 78 3d 72 65 67 32 37 | g24;cy=reg25;sy=reg26;..rx=reg27 |
| 14f40 | 3b 63 78 3d 72 65 67 32 38 3b 73 78 3d 72 65 67 32 39 3b 0d 0a 66 79 3d 72 65 67 33 30 3b 0d 0a | ;cx=reg28;sx=reg29;..fy=reg30;.. |
| 14f60 | 70 72 7a 3d 72 65 67 33 31 3b 0d 0a 63 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d 72 65 | prz=reg31;..cprz=reg32;..sprz=re |
| 14f80 | 67 33 33 3b 0d 0a 69 70 3d 31 3b 0d 0a 0d 0a 61 70 31 3d 24 70 69 2d 61 73 69 6e 28 2e 30 37 2f | g33;..ip=1;....ap1=$pi-asin(.07/ |
| 14fa0 | 7a 66 29 2a 32 3b 0d 0a 72 6f 6c 6c 3d 72 65 67 33 34 2a 2e 30 37 2a 24 70 69 2a 32 3b 0d 0a 78 | zf)*2;..roll=reg34*.07*$pi*2;..x |
| 14fc0 | 6f 66 66 3d 2e 30 34 2a 61 62 6f 76 65 28 61 62 73 28 7a 66 2a 73 79 29 2c 2e 30 36 29 3b 0d 0a | off=.04*above(abs(zf*sy),.06);.. |
| 14fe0 | 6e 3d 38 30 2f 7a 66 2a 77 2f 33 32 30 3b 00 00 00 00 00 24 00 00 00 2f 2f 20 54 69 72 65 20 66 | n=80/zf*w/320;.....$...//.Tire.f |
| 15000 | 61 63 65 20 66 72 6f 6e 74 20 74 6f 77 61 72 64 73 3b 0d 0a 6e 3d 31 30 30 3b 00 02 00 00 00 01 | ace.front.towards;..n=100;...... |
| 15020 | 00 00 00 ff ff ff 00 01 00 00 00 28 00 00 00 04 00 00 00 00 00 03 80 24 00 00 00 fc 02 00 00 01 | ...........(...........$........ |
| 15040 | 82 01 00 00 75 3d 67 79 2a 69 67 32 2a 31 2e 35 37 3b 0d 0a 70 78 3d 28 28 67 78 2a 69 67 31 2a | ....u=gy*ig2*1.57;..px=((gx*ig1* |
| 15060 | 32 2d 31 29 2a 2e 31 32 29 2a 66 6c 69 70 3b 70 79 3d 2d 63 6f 73 28 75 29 2a 2e 31 2d 2e 31 3b | 2-1)*.12)*flip;py=-cos(u)*.1-.1; |
| 15080 | 70 7a 3d 2d 73 69 6e 28 75 29 2a 2e 31 2d 2e 31 3b 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d 70 79 | pz=-sin(u)*.1-.1;..x0=px*cprz-py |
| 150a0 | 2a 73 70 72 7a 3b 79 30 3d 70 78 2a 73 70 72 7a 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d 79 30 | *sprz;y0=px*sprz+py*cprz;..y1=y0 |
| 150c0 | 2a 63 78 2d 70 7a 2a 73 78 2d 66 79 3b 7a 31 3d 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a 78 32 | *cx-pz*sx-fy;z1=y0*sx+pz*cx;..x2 |
| 150e0 | 3d 78 30 2a 63 79 2d 7a 31 2a 73 79 3b 7a 32 3d 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 3b 0d | =x0*cy-z1*sy;z2=x0*sy+z1*cy+zf;. |
| 15100 | 0a 69 7a 3d 31 2f 7a 32 3b 0d 0a 78 3d 78 32 2a 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d 0a | .iz=1/z2;..x=x2*iz;y=y1*iz*af;.. |
| 15120 | 69 70 3d 2d 69 70 3b 0d 0a 72 65 64 3d 62 6e 6f 74 28 65 71 75 61 6c 28 67 78 2c 33 29 2b 65 71 | ip=-ip;..red=bnot(equal(gx,3)+eq |
| 15140 | 75 61 6c 28 67 78 2c 35 29 29 2a 28 2e 38 2d 2e 31 2a 73 69 6e 28 32 2a 67 79 2a 69 67 32 2a 24 | ual(gx,5))*(.8-.1*sin(2*gy*ig2*$ |
| 15160 | 70 69 2b 2e 39 29 29 3b 67 72 65 65 6e 3d 30 3b 62 6c 75 65 3d 30 3b 0d 0a 0d 0a 67 78 3d 69 66 | pi+.9));green=0;blue=0;....gx=if |
| 15180 | 28 62 65 6c 6f 77 28 67 78 2c 67 31 2d 31 29 2c 67 78 2b 31 2c 30 29 3b 0d 0a 67 79 3d 69 66 28 | (below(gx,g1-1),gx+1,0);..gy=if( |
| 151a0 | 67 78 2c 67 79 2c 67 79 2b 31 29 3b 0d 0a 66 6c 69 70 3d 69 66 28 67 78 2c 66 6c 69 70 2c 2d 66 | gx,gy,gy+1);..flip=if(gx,flip,-f |
| 151c0 | 6c 69 70 29 3b 00 4f 01 00 00 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 | lip);.O...zf=reg03;..px=0;pz=-zf |
| 151e0 | 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 | ;..elevz=reg04;..cr=reg06;sr=reg |
| 15200 | 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 32 31 3b 0d 0a 76 79 3d 72 65 67 32 32 3b | 07;af=w/h;..vx=reg21;..vy=reg22; |
| 15220 | 0d 0a 76 7a 3d 72 65 67 32 33 3b 0d 0a 72 79 3d 72 65 67 32 34 3b 63 79 3d 72 65 67 32 35 3b 73 | ..vz=reg23;..ry=reg24;cy=reg25;s |
| 15240 | 79 3d 72 65 67 32 36 3b 0d 0a 72 78 3d 72 65 67 32 37 3b 63 78 3d 72 65 67 32 38 3b 73 78 3d 72 | y=reg26;..rx=reg27;cx=reg28;sx=r |
| 15260 | 65 67 32 39 3b 0d 0a 66 79 3d 66 79 2b 28 72 65 67 33 30 2d 66 79 29 2a 2e 35 3b 0d 0a 66 79 3d | eg29;..fy=fy+(reg30-fy)*.5;..fy= |
| 15280 | 6d 69 6e 28 72 65 67 33 30 2b 2e 31 2c 6d 61 78 28 72 65 67 33 30 2d 2e 31 2c 66 79 29 29 3b 0d | min(reg30+.1,max(reg30-.1,fy));. |
| 152a0 | 0a 70 72 7a 3d 72 65 67 33 31 3b 0d 0a 63 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d 72 | .prz=reg31;..cprz=reg32;..sprz=r |
| 152c0 | 65 67 33 33 3b 0d 0a 0d 0a 67 31 3d 38 3b 67 32 3d 32 30 2f 7a 66 2a 77 2f 33 32 30 3b 0d 0a 69 | eg33;....g1=8;g2=20/zf*w/320;..i |
| 152e0 | 67 31 3d 31 2f 28 67 31 2d 31 29 3b 69 67 32 3d 31 2f 28 67 32 2d 31 29 3b 0d 0a 6e 3d 67 31 2a | g1=1/(g1-1);ig2=1/(g2-1);..n=g1* |
| 15300 | 67 32 3b 0d 0a 67 78 3d 30 3b 67 79 3d 30 3b 0d 0a 66 6c 69 70 3d 31 3b 00 00 00 00 00 0a 00 00 | g2;..gx=0;gy=0;..flip=1;........ |
| 15320 | 00 2f 2f 20 42 61 63 6b 0d 0a 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 b2 | .//.Back...................$.... |
| 15340 | 02 00 00 01 38 01 00 00 75 3d 67 79 2a 69 67 32 3b 0d 0a 70 78 3d 28 67 78 2a 69 67 31 2a 2e 32 | ....8...u=gy*ig2;..px=(gx*ig1*.2 |
| 15360 | 34 2d 2e 31 32 29 2a 66 6c 69 70 3b 70 79 3d 2d 2e 32 35 3b 70 7a 3d 75 2a 2e 31 32 35 2d 2e 30 | 4-.12)*flip;py=-.25;pz=u*.125-.0 |
| 15380 | 35 3b 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d 70 79 2a 73 70 72 7a 3b 79 30 3d 70 78 2a 73 70 72 | 5;..x0=px*cprz-py*sprz;y0=px*spr |
| 153a0 | 7a 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d 79 30 2a 63 78 2d 70 7a 2a 73 78 2d 66 79 3b 7a 31 | z+py*cprz;..y1=y0*cx-pz*sx-fy;z1 |
| 153c0 | 3d 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a 78 32 3d 78 30 2a 63 79 2d 7a 31 2a 73 79 3b 7a 32 | =y0*sx+pz*cx;..x2=x0*cy-z1*sy;z2 |
| 153e0 | 3d 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 3b 0d 0a 69 7a 3d 31 2f 7a 32 3b 0d 0a 78 3d 78 32 | =x0*sy+z1*cy+zf;..iz=1/z2;..x=x2 |
| 15400 | 2a 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d 0a 69 70 3d 2d 69 70 3b 0d 0a 0d 0a 72 65 64 3d | *iz;y=y1*iz*af;..ip=-ip;....red= |
| 15420 | 31 3b 67 72 65 65 6e 3d 30 3b 62 6c 75 65 3d 30 3b 0d 0a 0d 0a 67 78 3d 69 66 28 62 65 6c 6f 77 | 1;green=0;blue=0;....gx=if(below |
| 15440 | 28 67 78 2c 67 31 2d 31 29 2c 67 78 2b 31 2c 30 29 3b 0d 0a 67 79 3d 69 66 28 67 78 2c 67 79 2c | (gx,g1-1),gx+1,0);..gy=if(gx,gy, |
| 15460 | 67 79 2b 31 29 3b 0d 0a 66 6c 69 70 3d 69 66 28 67 78 2c 66 6c 69 70 2c 2d 66 6c 69 70 29 3b 00 | gy+1);..flip=if(gx,flip,-flip);. |
| 15480 | 4f 01 00 00 7a 66 3d 72 65 67 30 33 3b 0d 0a 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 | O...zf=reg03;..px=0;pz=-zf;..ele |
| 154a0 | 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d | vz=reg04;..cr=reg06;sr=reg07;af= |
| 154c0 | 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 32 31 3b 0d 0a 76 79 3d 72 65 67 32 32 3b 0d 0a 76 7a 3d 72 | w/h;..vx=reg21;..vy=reg22;..vz=r |
| 154e0 | 65 67 32 33 3b 0d 0a 72 79 3d 72 65 67 32 34 3b 63 79 3d 72 65 67 32 35 3b 73 79 3d 72 65 67 32 | eg23;..ry=reg24;cy=reg25;sy=reg2 |
| 15500 | 36 3b 0d 0a 72 78 3d 72 65 67 32 37 3b 63 78 3d 72 65 67 32 38 3b 73 78 3d 72 65 67 32 39 3b 0d | 6;..rx=reg27;cx=reg28;sx=reg29;. |
| 15520 | 0a 66 79 3d 66 79 2b 28 72 65 67 33 30 2d 66 79 29 2a 2e 35 3b 0d 0a 66 79 3d 6d 69 6e 28 72 65 | .fy=fy+(reg30-fy)*.5;..fy=min(re |
| 15540 | 67 33 30 2b 2e 31 2c 6d 61 78 28 72 65 67 33 30 2d 2e 31 2c 66 79 29 29 3b 0d 0a 70 72 7a 3d 72 | g30+.1,max(reg30-.1,fy));..prz=r |
| 15560 | 65 67 33 31 3b 0d 0a 63 70 72 7a 3d 72 65 67 33 32 3b 0d 0a 73 70 72 7a 3d 72 65 67 33 33 3b 0d | eg31;..cprz=reg32;..sprz=reg33;. |
| 15580 | 0a 0d 0a 67 31 3d 36 3b 67 32 3d 32 30 2f 7a 66 2a 77 2f 33 32 30 3b 0d 0a 69 67 31 3d 31 2f 28 | ...g1=6;g2=20/zf*w/320;..ig1=1/( |
| 155a0 | 67 31 2d 31 29 3b 69 67 32 3d 31 2f 28 67 32 2d 31 29 3b 0d 0a 6e 3d 67 31 2a 67 32 3b 0d 0a 67 | g1-1);ig2=1/(g2-1);..n=g1*g2;..g |
| 155c0 | 78 3d 30 3b 67 79 3d 30 3b 0d 0a 66 6c 69 70 3d 31 3b 00 00 00 00 00 0a 00 00 00 2f 2f 20 52 6f | x=0;gy=0;..flip=1;.........//.Ro |
| 155e0 | 6f 66 0d 0a 00 02 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 24 00 00 00 4f 03 00 00 01 cf 01 | of...................$...O...... |
| 15600 | 00 00 75 3d 67 79 2a 69 67 32 3b 0d 0a 70 78 3d 28 28 67 78 2a 69 67 31 2a 32 2d 31 29 2a 2e 31 | ..u=gy*ig2;..px=((gx*ig1*2-1)*.1 |
| 15620 | 32 29 2a 66 6c 69 70 3b 70 79 3d 2d 2e 32 2d 69 2a 2e 30 35 3b 70 7a 3d 75 2a 2e 30 35 2d 2e 31 | 2)*flip;py=-.2-i*.05;pz=u*.05-.1 |
| 15640 | 3b 0d 0a 78 30 3d 70 78 2a 63 70 72 7a 2d 70 79 2a 73 70 72 7a 3b 79 30 3d 70 78 2a 73 70 72 7a | ;..x0=px*cprz-py*sprz;y0=px*sprz |
| 15660 | 2b 70 79 2a 63 70 72 7a 3b 0d 0a 79 31 3d 79 30 2a 63 78 2d 70 7a 2a 73 78 2d 66 79 3b 7a 31 3d | +py*cprz;..y1=y0*cx-pz*sx-fy;z1= |
| 15680 | 79 30 2a 73 78 2b 70 7a 2a 63 78 3b 0d 0a 78 32 3d 78 30 2a 63 79 2d 7a 31 2a 73 79 3b 7a 32 3d | y0*sx+pz*cx;..x2=x0*cy-z1*sy;z2= |
| 156a0 | 78 30 2a 73 79 2b 7a 31 2a 63 79 2b 7a 66 3b 0d 0a 69 7a 3d 31 2f 7a 32 3b 0d 0a 78 3d 78 32 2a | x0*sy+z1*cy+zf;..iz=1/z2;..x=x2* |
| 156c0 | 69 7a 3b 79 3d 79 31 2a 69 7a 2a 61 66 3b 0d 0a 69 70 3d 2d 69 70 3b 0d 0a 0d 0a 72 65 64 3d 65 | iz;y=y1*iz*af;..ip=-ip;....red=e |
| 156e0 | 71 75 61 6c 28 67 78 2c 31 29 2b 65 71 75 61 6c 28 67 78 2c 35 29 2b 61 62 6f 76 65 28 67 79 2c | qual(gx,1)+equal(gx,5)+above(gy, |
| 15700 | 67 32 2d 32 29 3b 0d 0a 62 6c 75 65 3d 31 2d 72 65 64 3b 63 76 3d 62 6c 75 65 2a 73 71 72 28 73 | g2-2);..blue=1-red;cv=blue*sqr(s |
| 15720 | 71 72 28 73 71 72 28 73 69 6e 28 28 78 2a 63 72 2d 79 2a 73 72 2b 63 78 29 2a 31 30 29 2a 2e 35 | qr(sqr(sin((x*cr-y*sr+cx)*10)*.5 |
| 15740 | 2b 2e 35 29 29 29 3b 0d 0a 67 72 65 65 6e 3d 62 6c 75 65 2a 2e 37 2b 63 76 3b 72 65 64 3d 72 65 | +.5)));..green=blue*.7+cv;red=re |
| 15760 | 64 2a 28 2e 39 2b 67 79 2a 69 67 32 2a 2e 30 35 29 2b 63 76 3b 62 6c 75 65 3d 62 6c 75 65 2b 63 | d*(.9+gy*ig2*.05)+cv;blue=blue+c |
| 15780 | 76 3b 0d 0a 0d 0a 67 78 3d 69 66 28 62 65 6c 6f 77 28 67 78 2c 67 31 2d 31 29 2c 67 78 2b 31 2c | v;....gx=if(below(gx,g1-1),gx+1, |
| 157a0 | 30 29 3b 0d 0a 67 79 3d 69 66 28 67 78 2c 67 79 2c 67 79 2b 31 29 3b 0d 0a 66 6c 69 70 3d 69 66 | 0);..gy=if(gx,gy,gy+1);..flip=if |
| 157c0 | 28 67 78 2c 66 6c 69 70 2c 2d 66 6c 69 70 29 3b 00 4f 01 00 00 7a 66 3d 72 65 67 30 33 3b 0d 0a | (gx,flip,-flip);.O...zf=reg03;.. |
| 157e0 | 70 78 3d 30 3b 70 7a 3d 2d 7a 66 3b 0d 0a 65 6c 65 76 7a 3d 72 65 67 30 34 3b 0d 0a 63 72 3d 72 | px=0;pz=-zf;..elevz=reg04;..cr=r |
| 15800 | 65 67 30 36 3b 73 72 3d 72 65 67 30 37 3b 61 66 3d 77 2f 68 3b 0d 0a 76 78 3d 72 65 67 32 31 3b | eg06;sr=reg07;af=w/h;..vx=reg21; |
| 15820 | 0d 0a 76 79 3d 72 65 67 32 32 3b 0d 0a 76 7a 3d 72 65 67 32 33 3b 0d 0a 72 79 3d 72 65 67 32 34 | ..vy=reg22;..vz=reg23;..ry=reg24 |
| 15840 | 3b 63 79 3d 72 65 67 32 35 3b 73 79 3d 72 65 67 32 36 3b 0d 0a 72 78 3d 72 65 67 32 37 3b 63 78 | ;cy=reg25;sy=reg26;..rx=reg27;cx |
| 15860 | 3d 72 65 67 32 38 3b 73 78 3d 72 65 67 32 39 3b 0d 0a 66 79 3d 66 79 2b 28 72 65 67 33 30 2d 66 | =reg28;sx=reg29;..fy=fy+(reg30-f |
| 15880 | 79 29 2a 2e 35 3b 0d 0a 66 79 3d 6d 69 6e 28 72 65 67 33 30 2b 2e 31 2c 6d 61 78 28 72 65 67 33 | y)*.5;..fy=min(reg30+.1,max(reg3 |
| 158a0 | 30 2d 2e 31 2c 66 79 29 29 3b 0d 0a 70 72 7a 3d 72 65 67 33 31 3b 0d 0a 63 70 72 7a 3d 72 65 67 | 0-.1,fy));..prz=reg31;..cprz=reg |
| 158c0 | 33 32 3b 0d 0a 73 70 72 7a 3d 72 65 67 33 33 3b 0d 0a 0d 0a 67 31 3d 36 3b 67 32 3d 32 30 2f 7a | 32;..sprz=reg33;....g1=6;g2=20/z |
| 158e0 | 66 2a 77 2f 33 32 30 3b 0d 0a 69 67 31 3d 31 2f 28 67 31 2d 31 29 3b 69 67 32 3d 31 2f 28 67 32 | f*w/320;..ig1=1/(g1-1);ig2=1/(g2 |
| 15900 | 2d 31 29 3b 0d 0a 6e 3d 67 31 2a 67 32 3b 0d 0a 67 78 3d 30 3b 67 79 3d 30 3b 0d 0a 66 6c 69 70 | -1);..n=g1*g2;..gx=0;gy=0;..flip |
| 15920 | 3d 31 3b 00 00 00 00 00 10 00 00 00 2f 2f 20 55 70 70 65 72 20 42 61 63 6b 0d 0a 00 02 00 00 00 | =1;.........//.Upper.Back....... |
| 15940 | 01 00 00 00 ff ff ff 00 01 00 00 00 28 00 00 00 04 00 00 00 04 00 01 80 24 00 00 00 d4 00 00 00 | ............(...........$....... |
| 15960 | 01 85 00 00 00 75 3d 69 66 28 69 70 2c 75 2c 69 2a 24 70 69 2a 31 2e 35 2b 32 2e 33 35 29 3b 0d | .....u=if(ip,u,i*$pi*1.5+2.35);. |
| 15980 | 0a 72 3d 2e 32 32 35 2b 69 70 2a 2e 30 35 3b 0d 0a 78 3d 30 2e 37 2b 63 6f 73 28 75 29 2a 72 3b | .r=.225+ip*.05;..x=0.7+cos(u)*r; |
| 159a0 | 79 3d 2e 39 39 2d 61 73 70 2a 2e 32 35 2b 73 69 6e 28 75 29 2a 72 2a 61 73 70 3b 0d 0a 69 70 3d | y=.99-asp*.25+sin(u)*r*asp;..ip= |
| 159c0 | 62 6e 6f 74 28 69 70 29 3b 0d 0a 72 65 64 3d 31 2d 69 70 3b 67 72 65 65 6e 3d 72 65 64 3b 62 6c | bnot(ip);..red=1-ip;green=red;bl |
| 159e0 | 75 65 3d 72 65 64 3b 0d 0a 00 0f 00 00 00 61 73 70 3d 77 2f 68 3b 0d 0a 69 70 3d 30 00 00 00 00 | ue=red;.......asp=w/h;..ip=0.... |
| 15a00 | 00 1f 00 00 00 6e 3d 33 30 3b 0d 0a 2f 2a 20 73 70 65 65 64 6f 6d 65 74 65 72 20 6d 61 72 6b 73 | .....n=30;../*.speedometer.marks |
| 15a20 | 20 2a 2f 00 06 00 00 00 01 00 00 00 ff ff ff 00 01 00 00 00 28 00 00 00 04 00 00 00 01 00 01 80 | .*/.................(........... |
| 15a40 | 24 00 00 00 02 01 00 00 01 b3 00 00 00 75 3d 69 66 28 69 70 2c 75 2c 69 2a 24 70 69 2a 31 2e 35 | $............u=if(ip,u,i*$pi*1.5 |
| 15a60 | 2b 32 2e 33 35 29 3b 0d 0a 72 3d 2e 32 32 35 2b 69 70 2a 2e 30 35 3b 0d 0a 78 3d 30 2e 37 2b 63 | +2.35);..r=.225+ip*.05;..x=0.7+c |
| 15a80 | 6f 73 28 75 29 2a 72 3b 79 3d 2e 39 39 2d 61 73 70 2a 2e 32 35 2b 73 69 6e 28 75 29 2a 72 2a 61 | os(u)*r;y=.99-asp*.25+sin(u)*r*a |
| 15aa0 | 73 70 3b 0d 0a 69 70 3d 62 6e 6f 74 28 69 70 29 3b 0d 0a 72 65 64 3d 31 2d 69 70 3b 0d 0a 67 72 | sp;..ip=bnot(ip);..red=1-ip;..gr |
| 15ac0 | 65 65 6e 3d 72 65 64 2a 28 62 65 6c 6f 77 28 69 2c 2e 39 29 2d 61 62 6f 76 65 28 69 2c 2e 38 29 | een=red*(below(i,.9)-above(i,.8) |
| 15ae0 | 2a 2e 35 29 3b 0d 0a 62 6c 75 65 3d 72 65 64 2a 28 62 65 6c 6f 77 28 69 2c 2e 37 35 29 29 3b 00 | *.5);..blue=red*(below(i,.75));. |
| 15b00 | 0f 00 00 00 61 73 70 3d 77 2f 68 3b 0d 0a 69 70 3d 30 00 00 00 00 00 1f 00 00 00 6e 3d 33 30 3b | ....asp=w/h;..ip=0.........n=30; |
| 15b20 | 0d 0a 2f 2a 20 73 70 65 65 64 6f 6d 65 74 65 72 20 6d 61 72 6b 73 20 2a 2f 00 06 00 00 00 01 00 | ../*.speedometer.marks.*/....... |
| 15b40 | 00 00 ff ff ff 00 01 00 00 00 28 00 00 00 04 00 00 00 00 00 02 80 24 00 00 00 ec 00 00 00 01 a1 | ..........(...........$......... |
| 15b60 | 00 00 00 75 3d 69 2a 24 70 69 2a 31 2e 35 2b 32 2e 33 35 3b 0d 0a 78 3d 30 2e 37 2b 63 6f 73 28 | ...u=i*$pi*1.5+2.35;..x=0.7+cos( |
| 15b80 | 75 29 2a 2e 32 35 3b 79 3d 2e 39 39 2d 61 73 70 2a 2e 32 35 2b 73 69 6e 28 75 29 2a 2e 32 35 2a | u)*.25;y=.99-asp*.25+sin(u)*.25* |
| 15ba0 | 61 73 70 3b 0d 0a 0d 0a 67 72 65 65 6e 3d 62 65 6c 6f 77 28 69 2c 2e 39 29 2d 61 62 6f 76 65 28 | asp;....green=below(i,.9)-above( |
| 15bc0 | 69 2c 2e 38 29 2a 2e 32 3b 0d 0a 62 6c 75 65 3d 62 65 6c 6f 77 28 69 2c 2e 37 35 29 3b 0d 0a 6c | i,.8)*.2;..blue=below(i,.75);..l |
| 15be0 | 69 6e 65 73 69 7a 65 3d 32 2b 61 62 6f 76 65 28 69 2c 2e 37 35 29 2b 61 62 6f 76 65 28 69 2c 2e | inesize=2+above(i,.75)+above(i,. |
| 15c00 | 39 29 3b 00 09 00 00 00 61 73 70 3d 77 2f 68 3b 00 00 00 00 00 21 00 00 00 6e 3d 31 30 30 3b 0d | 9);.....asp=w/h;.....!...n=100;. |
| 15c20 | 0a 2f 2a 20 73 70 65 65 64 6f 6d 65 74 65 72 20 63 69 72 63 6c 65 20 2a 2f 00 06 00 00 00 01 00 | ./*.speedometer.circle.*/....... |
| 15c40 | 00 00 ff ff ff 00 01 00 00 00 28 00 00 00 04 00 00 00 00 00 01 80 24 00 00 00 f9 00 00 00 01 a8 | ..........(...........$......... |
| 15c60 | 00 00 00 75 3d 72 65 67 33 37 2a 2e 32 3b 72 3d 69 70 2a 2e 33 31 2d 2e 30 32 3b 6b 3d 69 2a 32 | ...u=reg37*.2;r=ip*.31-.02;k=i*2 |
| 15c80 | 2d 31 3b 0d 0a 75 3d 75 2a 24 70 69 2a 31 2e 35 2b 32 2e 33 35 2b 28 31 2d 69 70 29 2a 6b 3b 0d | -1;..u=u*$pi*1.5+2.35+(1-ip)*k;. |
| 15ca0 | 0a 78 3d 30 2e 37 2b 63 6f 73 28 75 29 2a 72 3b 0d 0a 79 3d 2e 39 39 2b 61 73 70 2a 28 2d 2e 32 | .x=0.7+cos(u)*r;..y=.99+asp*(-.2 |
| 15cc0 | 35 2b 73 69 6e 28 75 29 2a 72 29 3b 0d 0a 69 70 3d 62 6e 6f 74 28 69 70 29 3b 0d 0a 6c 69 6e 65 | 5+sin(u)*r);..ip=bnot(ip);..line |
| 15ce0 | 73 69 7a 65 3d 33 3b 0d 0a 62 6c 75 65 3d 69 2a 2e 33 2b 2e 37 3b 72 65 64 3d 62 6c 75 65 3b 67 | size=3;..blue=i*.3+.7;red=blue;g |
| 15d00 | 72 65 65 6e 3d 62 6c 75 65 3b 00 10 00 00 00 61 73 70 3d 77 2f 68 3b 0d 0a 69 70 3d 30 3b 00 00 | reen=blue;.....asp=w/h;..ip=0;.. |
| 15d20 | 00 00 00 20 00 00 00 6e 3d 32 30 3b 0d 0a 2f 2a 20 73 70 65 65 64 6f 6d 65 74 65 72 20 6e 65 65 | .......n=20;../*.speedometer.nee |
| 15d40 | 64 6c 65 20 2a 2f 00 06 00 00 00 01 00 00 00 e2 cd d1 00 01 00 00 00 | dle.*/................. |