|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I'll try again.. (sorry for any inclarities, i dont exactly know what i'm
asking for :) )
We're doing a project at school, where we are making a modelling tool for
some arty guys.
The view in the tool will be i the x,y plane, viewed from top.. in the
"drawing board" they will place differented shapes suchs as bezier curves,
parabolas, circles (closed, open), ellipes (closed, open), and so on. these
shapes will have user-specific properties regarding to absorption,
diffusion, width, and color. After placing a light source, we want to render
the scene in povray. The main point is to illustrate the caustics generated
by the system of mirrors in the scene..
Anyway, we've looked at the documentation, and tested a little "coding", and
concluded with that we probably should use the prism object to generate the
pov-ray figures, atleast the bezier shapes.
We've also looked at the various internal/math/whatever-functions in the
.inc files, but we really cant understand how we actually use these to get
shapes into the scene.. i'm looking at:
Quartic_Paraboloid
Quartic parabola - a 4th degree polynomial (has two bumps at the bottom)
that has been swept around the z axis. The equation is:
0.1 x^4 - x^2 - y^2 - z^2 + 0.9 = 0
how do i use this?
all in all, we do have the mathematical parametres from the 2d-plane, and
what we're looking for is some easy way to apply these to generate the 3d
figures..
thanks in advance,
lars petter
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"lars petter" <lar### [at] higno> wrote in message
news:4030e7fc$1@news.povray.org...
> I'll try again.. (sorry for any inclarities, i dont exactly know what i'm
> asking for :) )
I've seen your original message post at the programming group.
> The view in the tool will be in the x,y plane, viewed from top.. in the
> "drawing board" they will place differented shapes suchs as bezier curves,
> parabolas, circles (closed, open), ellipes (closed, open), and so on.
these
> shapes will have user-specific properties regarding to absorption,
> diffusion, width, and color. After placing a light source, we want to
render
> the scene in povray. The main point is to illustrate the caustics
generated
> by the system of mirrors in the scene..
So you'll be using photons, no doubt.
> Anyway, we've looked at the documentation, and tested a little "coding",
and
> concluded with that we probably should use the prism object to generate
the
> pov-ray figures, at least the bezier shapes.
You could be right about that. Not real sure myself.
> We've also looked at the various internal/math/whatever-functions in the
> .inc files, but we really cant understand how we actually use these to get
> shapes into the scene.. i'm looking at:
> Quartic_Paraboloid
> Quartic parabola - a 4th degree polynomial (has two bumps at the bottom)
> that has been swept around the z axis. The equation is:
> 0.1 x^4 - x^2 - y^2 - z^2 + 0.9 = 0
>
> how do i use this?
>
> all in all, we do have the mathematical parametres from the 2d-plane, and
> what we're looking for is some easy way to apply these to generate the 3d
> figures..
Isosurfaces seem the most plausible thing to me, since you'll be working
with equations anyhow. I've taken the example for f_quartic_paraboloid()
from the scenes\incdemo\i_internal.inc to make:
camera {
location <0.0, 0.0, -5.0>
look_at <0.0, 0.0, 0.0>
}
sky_sphere {
pigment {
gradient y
color_map {
[0 rgb <0.9,0.9,0.9>]
[1 rgb <0.3,0.3,0.3>]
}
}
}
light_source {
-100*z,
color rgb <1, 1, 1>
rotate <15, 15, 0>
}
// ----------------------------------------
#include "functions.inc"
#declare IsoQP=
isosurface {
function {
// f_quartic_paraboloid(x,y,z, -0.01)
0-(0.5*x*x*x*x-x*x-y*y-z*z+0.5)
}
// contained_by {box { <-1.45, -0.1, -1.45>, <1.45, 2.5, 1.45> }}
max_gradient 2.5
all_intersections
}
difference {
object { // outside
IsoQP
material {
texture {
pigment {color rgb 0.75}
finish {reflection {0.3,0.9}}
}
}
}
object { // inside
IsoQP
scale <0.95,0.95,0.95>
translate y/6
material {
texture {
pigment {color rgb 0.25}
finish {reflection {0.1,0.3}}
}
}
}
// rotate -90*x // turn to look into parabloid
}
Maybe you can figure something out from this and by reading up on isosurface
functions. I'm not very good at the math, and you should be warned that the
carat (^) sign is not used in POV-Ray. If you'll be needing semitransparent
materials, the above texturing won't suffice to blend from one side to the
other.
Bob H.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
thanks, we've gotten some basic knowledge on the isosurfaces now.
the problem is, they're only surfaces, not solid figures with a certain
width, so we're wondering if there is a way to, e.g., extrude a parabola 2
units, making it solid? that would've been smooth, he he. or do you see some
other way?
(sorry about the double posting with binary attached, first, i was about to
post in a .binaries group, but i found out that i
didnt need the image, so i posted here instead. however, i forgot to remove
the image. sheesh. =) )
- lars petter
"Hughes, B." <omn### [at] charternet> wrote in message
news:40316c8c$1@news.povray.org...
> "lars petter" <lar### [at] higno> wrote in message
> news:4030e7fc$1@news.povray.org...
> > I'll try again.. (sorry for any inclarities, i dont exactly know what
i'm
> > asking for :) )
>
> I've seen your original message post at the programming group.
>
> > The view in the tool will be in the x,y plane, viewed from top.. in the
> > "drawing board" they will place differented shapes suchs as bezier
curves,
> > parabolas, circles (closed, open), ellipes (closed, open), and so on.
> these
> > shapes will have user-specific properties regarding to absorption,
> > diffusion, width, and color. After placing a light source, we want to
> render
> > the scene in povray. The main point is to illustrate the caustics
> generated
> > by the system of mirrors in the scene..
>
> So you'll be using photons, no doubt.
>
> > Anyway, we've looked at the documentation, and tested a little "coding",
> and
> > concluded with that we probably should use the prism object to generate
> the
> > pov-ray figures, at least the bezier shapes.
>
> You could be right about that. Not real sure myself.
>
> > We've also looked at the various internal/math/whatever-functions in the
> > .inc files, but we really cant understand how we actually use these to
get
> > shapes into the scene.. i'm looking at:
> > Quartic_Paraboloid
> > Quartic parabola - a 4th degree polynomial (has two bumps at the bottom)
> > that has been swept around the z axis. The equation is:
> > 0.1 x^4 - x^2 - y^2 - z^2 + 0.9 = 0
> >
> > how do i use this?
> >
> > all in all, we do have the mathematical parametres from the 2d-plane,
and
> > what we're looking for is some easy way to apply these to generate the
3d
> > figures..
>
> Isosurfaces seem the most plausible thing to me, since you'll be working
> with equations anyhow. I've taken the example for f_quartic_paraboloid()
> from the scenes\incdemo\i_internal.inc to make:
>
> camera {
> location <0.0, 0.0, -5.0>
> look_at <0.0, 0.0, 0.0>
> }
>
> sky_sphere {
> pigment {
> gradient y
> color_map {
> [0 rgb <0.9,0.9,0.9>]
> [1 rgb <0.3,0.3,0.3>]
> }
> }
> }
>
> light_source {
> -100*z,
> color rgb <1, 1, 1>
> rotate <15, 15, 0>
> }
>
> // ----------------------------------------
>
> #include "functions.inc"
>
> #declare IsoQP=
> isosurface {
> function {
> // f_quartic_paraboloid(x,y,z, -0.01)
> 0-(0.5*x*x*x*x-x*x-y*y-z*z+0.5)
> }
> // contained_by {box { <-1.45, -0.1, -1.45>, <1.45, 2.5, 1.45> }}
> max_gradient 2.5
> all_intersections
> }
>
> difference {
> object { // outside
> IsoQP
> material {
> texture {
> pigment {color rgb 0.75}
> finish {reflection {0.3,0.9}}
> }
> }
> }
> object { // inside
> IsoQP
> scale <0.95,0.95,0.95>
> translate y/6
> material {
> texture {
> pigment {color rgb 0.25}
> finish {reflection {0.1,0.3}}
> }
> }
> }
> // rotate -90*x // turn to look into parabloid
> }
>
> Maybe you can figure something out from this and by reading up on
isosurface
> functions. I'm not very good at the math, and you should be warned that
the
> carat (^) sign is not used in POV-Ray. If you'll be needing
semitransparent
> materials, the above texturing won't suffice to blend from one side to the
> other.
>
> Bob H.
>
>
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"lars petter" <lar### [at] higno> wrote in message
news:40320fba$1@news.povray.org...
> thanks, we've gotten some basic knowledge on the isosurfaces now.
> the problem is, they're only surfaces, not solid figures with a certain
> width, so we're wondering if there is a way to, e.g., extrude a parabola 2
> units, making it solid? that would've been smooth, he he. or do you see some
> other way?
>
? do you mean you only want surfaces, or that isosurfaces are only surfaces? If
the latter, you need to revise your understanding of iso-surfaces.... (and
possibly take a look at some of the iso keywords, such as all_intersections ?).
> (sorry about the double posting with binary attached, first, i was about to
> post in a .binaries group, but i found out that i
> didnt need the image, so i posted here instead. however, i forgot to remove
> the image. sheesh. =) )
>
s*** happens.... ;)
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"lars petter" <lar### [at] higno> wrote in message
news:40320fba$1@news.povray.org...
> thanks, we've gotten some basic knowledge on the isosurfaces now.
> the problem is, they're only surfaces, not solid figures with a certain
> width, so we're wondering if there is a way to, e.g., extrude a parabola 2
> units, making it solid? that would've been smooth, he he. or do you see some
> other way?
Here's an iso-surface w/ photons etc. for a shape based on sin(x).
I've given it some thickness by differencing the function from an off-set copy
of itself (otherwise the shape would be infinitely thick). I've slightly
coloured the glass to make the shape show up a little more clearly than would
otherwise be the case. Adjust spacing to meet your requirements/patience...
#version 3.5;
#include "colors.inc"
global_settings {
assumed_gamma 1.0
max_trace_level 10
photons {
spacing 0.005 //smaller = better but slower
}
}
camera {
location <0,5,-5>
look_at 0
}
light_source {
<0, 0, 0> // light's position (translated below)
color rgb <1, 1, 1> // light's color
translate <-30, 30, -30>
}
#declare fn_X = function(x,y,z){y-sin(x)}
isosurface {
function { max(fn_X(x, y, z), - fn_X(x,y+0.5,z)) }
contained_by { box {<-2,-10,-1>,<2,10,1> } }
accuracy 0.001
max_gradient 4
all_intersections
pigment{rgbf<0.9,0.9,1.0,1.0>}
finish{reflection{fresnel}}
interior{ior 1.5}
photons{
target 1
refraction on
reflection on
collect off
}
}
plane{y,-2 pigment{White}}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"lars petter" <lar### [at] higno> wrote in message
news:4030e7fc$1@news.povray.org...
> Quartic parabola - a 4th degree polynomial (has two bumps at the bottom)
> that has been swept around the z axis. The equation is:
> 0.1 x^4 - x^2 - y^2 - z^2 + 0.9 = 0
>
> how do i use this?
>
No idea - but this is weird looking if nothing else.... (I've put the abs bit in
since you specified =0 rather than <=0 )
#declare fn_Xb = function(x,y,z){0.1*pow(x,4) - x*x - y*y - z*z + 0.9}
isosurface {
function { abs(fn_Xb(x, y, z)) - 0.1}
contained_by { box {-10,10 } }
accuracy 0.001
max_gradient 250 // Eeeek!!!
all_intersections
pigment{Red}
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Wasn't it lars petter who wrote:
>thanks, we've gotten some basic knowledge on the isosurfaces now.
> the problem is, they're only surfaces, not solid figures with a certain
>width, so we're wondering if there is a way to, e.g., extrude a parabola 2
>units, making it solid? that would've been smooth, he he. or do you see some
>other way?
I'm not sure if this is what you want, but there's a trick for creating
"thick" isosurfaces in my isosurface tutorial
<http://www.econym.demon.co.uk/isotut/substitute.htm#thick>
--
Mike Williams
Gentleman of Leisure
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Tom Melly" <tom### [at] tomandlucouk> wrote in message
news:40325137@news.povray.org...
> "lars petter" <lar### [at] higno> wrote in message
> news:4030e7fc$1@news.povray.org...
>
> > Quartic parabola - a 4th degree polynomial (has two bumps at the bottom)
> > that has been swept around the z axis. The equation is:
> > 0.1 x^4 - x^2 - y^2 - z^2 + 0.9 = 0
> >
> > how do i use this?
>
> No idea - but this is weird looking if nothing else.... (I've put the abs
bit in
> since you specified =0 rather than <=0 )
>
> #declare fn_Xb = function(x,y,z){0.1*pow(x,4) - x*x - y*y - z*z + 0.9}
>
> isosurface {
> function { abs(fn_Xb(x, y, z)) - 0.1}
> contained_by { box {-10,10 } }
> accuracy 0.001
> max_gradient 250 // Eeeek!!!
> all_intersections
> pigment{Red}
> }
Hey, what's with that huge container Tom?? I managed to get a much faster
render by lowering it to a -1,1 size! Heh-heh. Curious shape, I don't know
what it is either mainly because I don't know how much of it is visible.
I figured a way to get just a surface sheet. Maybe compatible with Mike
Williams' iso-thickener? Probably not, I haven't checked. I should have
realized this before, but these function things will always be new to me. I
took Tom's iso and simply removed the y parameter from the function itself.
Here is a whole scene showing it in action, with a tiny difference in the
equation. And although I had used pow(x,4) before, too, I was unsure about
it causing any changes the original equation. I still don't know why I was
subtracting it from zero in the isosurface in my other reply! Something I
picked up from other people, I think. :-D
global_settings {
assumed_gamma 1.0
photons {
spacing 0.02
}
}
camera {
location <1, 2, -3>
look_at <0, -0.25, 0>
}
light_source {
-100*z,
1
rotate <10, 0, 0> // move above y plane
photons {reflection on}
}
plane {
y,0
pigment {color rgb 1}
finish {diffuse 1}
photons {
collect on
}
}
#declare fn_Xb = function (x,z){0.5*pow(x,4) - x*x - y*y - z*z + 0.9}
isosurface {
function { (fn_Xb(x,z))-0.1}
contained_by { box {<-1,0,-1>,<1,0.5,0>} } // get half z, quarter y
accuracy 0.001
max_gradient 2
all_intersections
open
pigment{color rgb 0}
finish {reflection {0.99}}
photons {target 1 reflection on collect on}
}
This could be considered the blind leading the blind, eh?
--
Bob H.
http://www.3digitaleyes.com
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hughes, B. wrote:
>
> Hey, what's with that huge container Tom?? I managed to get a much faster
> render by lowering it to a -1,1 size! Heh-heh. Curious shape, I don't know
> what it is either mainly because I don't know how much of it is visible.
>
-0.1, 0.1 renders even faster! ;)
Like you, I don't know how much of the shape is of interest - I just
kept bumping up the container until I got bored with the
render-speed/max_gradient (I have a vague theory that as long as the mg
keeps increasing, you haven't reached the de facto boundary of the
shape's interest - but this based on intuition rather than knowledge).
> This could be considered the blind leading the blind, eh?
As you say - it's hard to know what shape is expected....
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Tom Melly" <pov### [at] tomandlucouk> wrote in message
news:4032b242@news.povray.org...
>
> -0.1, 0.1 renders even faster! ;)
I bet it does. LOL Don't raise that max_gradient to 1000, too, though.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|