|
|
"Bald Eagle" <cre### [at] netscapenet> wrote:
> "Melody" <nomail@nomail> wrote:
> > maybe a better texture, because height_field smooth
> > doesnt seem so smooth
>
> Believe me, without the smooth, it's a jagged nightmare.
>
> You are really rockin' this digital elevation project - tons of progress and
> updates, and I can tell from this animation that there's been a LOT of work
> behind the scenes.
>
> Maybe if you touch up the texture(s) and add some normals, then maybe it will
> visually smooth things out. It would also be an amazing feat to be able to get
> some maps or satellite photos in register with the 3D landscape - but I've tried
> that a little, and it's a registration nightmare.
>
> Again: Excellent work! :)
thank you, I didn't think anyone would like it ... heh. I totally grok 3D space
mathematically and triangulation, camera matrix is inverted to world matrix, and
everything is fed thru that world matrix, when working from scratch, which this
is not. just controlling the camera is all that's needed here. not that easy to
write, thought I'd include the flying stereo clock camera for amusement. for
animation, must step movements each frame or lose your place.
goes something like this.
/// /////////////////////////// CAMERA ///////////////////////////////////
#declare ZeroPrlx = 1.6; #declare EyeSep = .01; #declare _stereo_ = 10;
#macro movecam(cl) // 1 / .2 = 5 = execute 3 deg roll in .2 clock // * 5
#if (cl < .8) #declare roll = -3 * cl * 5; #declare roll = _clamp(roll,-3,0);
#end
#if (cl >= .8) #declare roll = -3 + 3 * (cl-.8) * 5; #declare roll =
_clamp(roll,-3,0); #end
#if (cl > 1.1) #declare roll = -5 * (cl-1.1) * 5; #declare roll =
_clamp(roll,-5,0); #end
#if (cl > 1.6) #declare roll = -5 + 5 * (cl-1.6) * 5; #declare roll =
_clamp(roll,-5,0); #end
#declare Eye = rotation(radians(roll/-4),y,Eye);
#declare campos = campos + Eye * 20;
#end
#macro camview(V,rolldeg)
#local e = vnormalize(V);
#local U = rotation(radians(rolldeg),e,y);
#local r = vnormalize(vcross(U,e));
#local U = vnormalize(vcross(e,r));
#declare cameramatrix = array[16] {
r.x,r.y,r.z,0,U.x,U.y,U.z,0,e.x,e.y,e.z,0,0,0,0,1 }
// #local ab = invertmatrix(cameramatrix,worldmatrix);
#end
#declare roll = 0;
#declare startpnt = <100, 50, 200.0>;
#declare campos = startpnt;
#declare Eye = vnormalize(<3240,0,1800> - startpnt);
/// /////////////////////////// CLOCK movecam ////////////////////////////
#declare _clock = clock;
// #declare _clock = .07; // 0-3
#declare finalclock = 3;
#declare step = finalclock / 90; // 90 frames
#declare cli = step;
#while (cli <= _clock)
movecam(cli)
#declare cli=cli+step;
#end
// clock = i / 90 / finalclock, -- 1/30 --- then i = clock * 30
// #declare iter = _clock * 90/finalclock;
// previousclock = (i - 1) / 90/finalclock
// #declare pclock = (iter - 1) / 90/finalclock;
/// ////////////////////////////// CAMERA ////////////////////////////////
camview(Eye,roll)
camera {
#if (_stereo_)
stereoscopic
zeroparallax ZeroPrlx
eyeseparation EyeSep
#end
location campos
right <cameramatrix[0],cameramatrix[1],cameramatrix[2]>
up
<cameramatrix[4],cameramatrix[5],cameramatrix[6]>*(image_height/image_width)
direction
<cameramatrix[8],cameramatrix[9],cameramatrix[10]>*(image_height/image_width)
angle 43
}
3.6+/win7 ini Final_Frame crashes. that wont stop anything.
; keep single instance is off, so if render
; over-runs timer delay, still finishes each frame
you can just run a timer, even over run it.
var %f = %WorkingDir $+ \kauai.ini
write -l1 %f +K $+ $calc(%GI / %step)
write -l5 %f Output_File_Name= $+ %outf
run c:\povray\bin\pvengine.exe %f /EXIT
Post a reply to this message
|
|