POV-Ray : Newsgroups : povray.binaries.images : Kauai : Re: Kauai Server Time
19 Apr 2024 01:58:01 EDT (-0400)
  Re: Kauai  
From: Melody
Date: 8 Dec 2019 16:15:03
Message: <web.5ded667f9f12fc349da690110@news.povray.org>
"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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.