|
|
I forgot to put a light source in the code I uploaded.
Your example crashes 3.5.11, but runs under 3.1. It's creates an interesting
pattern, but I still don't understand how, so anyone else's input will be
appreciated.
Thanks,
Bill
"Dennis Miller" <dhm### [at] attbicom> wrote in message
news:3c79475f$1@news.povray.org...
> This code shows up completely black under 3.5....
> I don't have the technical answers, but I have used normals in camera
> statements for great effect; the result is sort of like a 3D filter on the
> camera lens. It changes the surface properties of the lens, in essence.
> Here's a little example: nothing but a sky sphere in here. Animation
> possibilities are endless!
>
> global_settings { assumed_gamma 2.2 }
> #include "colors.inc"
>
> camera {
> location <-5, 6,-58>
> look_at < 0, 5.5, 0>
> angle 35
> normal {
> gradient <1,0,1>
> normal_map {
> [.1 agate 30]
> [.3 marble 50 ]
> [ .6 wood 70 ]
> [ .9 crackle 50 ] } } }
>
> light_source { <10,10,-30> rgb 1.5 }
> sky_sphere
> { pigment
> {gradient y color_map { [0.0 color blue 0.6] [1.0 color rgb 1] } } }
>
> Best,
> D.
>
> "Bill Brehm" <bbr### [at] netzeronet> wrote in message
> news:3c78c415$1@news.povray.org...
> > Hi,
> >
> > I've asked before about simulating lens distortion. I got some helpful
> > pointers, but I'm stuck again.
> >
> > A mathematician working at another company came up with the following
> > additions to my camera definition and sent it to me. But I cannot reach
> him
> > now, so I'm hoping someone here can help me understand.
> >
> > The distortion has the correct form, i.e., a square is distorted to the
> > correct shape. But the image is also magnified and I need to control
that
> > too. Even when I set the factors to zero, there is magnification.
> >
> > So my questions are:
> >
> > 1. What does lens_dist() return? A float? A vector? I think it's
returning
> a
> > single float value based on the X, Y coordinates passed in.
> > 2. What is the Z parameter there for? Is it needed for the normal?
> > 3. How exactly does a normal work when applied to a camera to distort
the
> > image? What is a normal? Is it a function or pattern that has one value
> for
> > each X, Y coordinate? How does that bend the ray? Is there any diagram
> that
> > shows how it works? I would think that a normal would need two values at
> > each coordinate, so it knows how much and in which direction to bend the
> > ray.
> >
> > Thanks,
> >
> > Bill
> >
> > PS: I have tried to find this info in the help, but couldn't.
> >
> >
> > // lens distortion model
> > // i' = i + a * i * sqrt(i^2 + j^2) + b * i^3 * sqrt(i^2 + j^2)
> > // j' = j + a * j * sqrt(i^2 + j^2) + b * j^3 * sqrt(i^2 + j^2)
> >
> > // lens distortion implementation
> > #declare lens_dist = function(x, y, z, a, b) {
> > (x + a * x * sqrt(x*x + y*y) + b * x^3 * sqrt(x*x + y*y) ) ^ 2 +
> > (y + a * y * sqrt(x*x + y*y) + b * y^3 * sqrt(x*x + y*y) ) ^ 2
> > }
> >
> > #declare a_factor = 0.65;
> > #declare b_factor = 0.1;
> >
> > #declare HFOV = 5.00;
> > #declare VFOV = HFOV * 3 / 4;
> >
> > #declare cameraheight = 10.000;
> >
> > camera {
> > orthographic
> > location <0, 0, 0>
> > right <HFOV, 0, 0>
> > up <0, VFOV, 0>
> > sky <0, 1, 0>
> > direction <0, 0, cameraheight>
> > look_at <0, 0, 1>
> > translate <0, 0, -cameraheight>
> >
> > normal{function {lens_dist(x, y, z, a_factor, b_factor)} }
> > }
> >
> > #local mx = 9;
> > #local my = 7;
> > #local ix = 0;
> > #while(ix < mx)
> > #local iy = 0;
> > #while(iy < my)
> > cylinder {
> > <0,0,0>, <0,0,0.010>, 0.25
> > pigment {color rgb <0, 0, 0>}
> > translate <(ix - ((mx - 1) / 2))* 0.8, (iy - ((my - 1) / 2))*
0.8,
> 0>
> > }
> > #local iy = iy + 1;
> > #end
> > #local ix = ix + 1;
> > #end
> >
> >
> >
> >
> >
>
>
Post a reply to this message
|
|