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.*/................. |