aboutsummaryrefslogtreecommitdiff
path: root/Src/resources/data/avs/Community Picks/UnConeD - Don't Trip and Drive.avs
blob: 4fa829e78a98592acaa40381cf212564876589f5 (plain) (blame)
ofshex dumpascii
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.*/.................