|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hello, I am currently having trouble with isosurfaces. I am currently
checking out the documentation,
http://www.econym.demon.co.uk/isotut/index.htm and
http://www.f-lohmueller.de/pov_tut/pov__eng.htm
As far as i can tell, everything seems fine syntax wise, but when I write
#declare Sphere= function {x*x+y*y+z*z-R*R} //both with and without semi
colon at the end of the declare statement
isosurface
{
function{Sphere(/*any vars here, as long as theres 4*/)}
threshold 0
texture{...}
}//lets say this is line 37
i get an error stating that I placed an } aat line 37 where there was an
expected parameter/float.
I have tried adding other parameters, but i always get this error. why
is it?
Thanks, Matt
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <mat### [at] netplexaussieorg>,
Matthew Pace <mat### [at] lycoscom> wrote:
> Hello, I am currently having trouble with isosurfaces. I am currently
> checking out the documentation,
> http://www.econym.demon.co.uk/isotut/index.htm and
> http://www.f-lohmueller.de/pov_tut/pov__eng.htm
Those are third-party tutorials, not the official documentation as you
imply. And the second page doesn't have anything about isosurfaces, as
far as I can tell.
> #declare Sphere= function {x*x+y*y+z*z-R*R} //both with and without semi
> colon at the end of the declare statement
...snip...
> i get an error stating that I placed an } aat line 37 where there was an
> expected parameter/float.
You didn't specify that R was a parameter:
#declare Sphere = function (x, y, z, R) {x*x+y*y+z*z-R*R}
--
Christopher James Huff <cja### [at] earthlinknet>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: chr### [at] tagpovrayorg
http://tag.povray.org/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Wasn't it Matthew Pace who wrote:
>Hello, I am currently having trouble with isosurfaces. I am currently
>checking out the documentation,
>http://www.econym.demon.co.uk/isotut/index.htm and
>http://www.f-lohmueller.de/pov_tut/pov__eng.htm
>
>As far as i can tell, everything seems fine syntax wise, but when I write
>
>#declare Sphere= function {x*x+y*y+z*z-R*R} //both with and without semi
>colon at the end of the declare statement
>
>isosurface
>{
> function{Sphere(/*any vars here, as long as theres 4*/)}
> threshold 0
> texture{...}
>}//lets say this is line 37
>
>i get an error stating that I placed an } aat line 37 where there was an
>expected parameter/float.
>
>I have tried adding other parameters, but i always get this error. why
>is it?
>
>Thanks, Matt
There's nothing wrong with the code fragments that you've shown here
(except that it should be "any vars here, as long as there's 3", if you
give it 4 you get "Invalid number of parameters: 4 supplied, 3
required"). My guess would be that your texture{...} or some other
modifier that you've omitted is incomplete.
If you still can't spot your typo, you'll need to post a larger chunk of
code, and actually copy the code from the scene rather than retyping it.
--
Mike Williams
Gentleman of Leisure
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Alrighty, Thanks to you guys, I shall test out the parameter
declarations (correct term?), and if that does not work, I will post my
code. Thanks a lot.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Holy Jumping Mother of God! It worked! Sorta, anyways. It rendered,
yes, but there was nothing there. My guess is because I messed up
somewhere along with placing the objects and camera.
in case anyone was interested still, this is the fixed code:
#declare AmbientLight= 0;
camera
{
location <0,.5,-7>
look_at <0,0,0>
}
light_source
{
<.5,11,-3>
color rgb 2
spotlight
radius 3
falloff 15
tightness 5
point_at <0,0,0>
area_light
<.5,0,0>,<0,.5,0>,5,5
adaptive 1
jitter
}
plane
{
y,0
hollow
texture
{
pigment
{
checker
color rgb <.8,.8,.8>
color rgb <0,0,.25>
}
}
}
#declare Sphere=function (x,y,z,R) {x*x+y*y+z*z}
isosurface
{
function{Sphere(2,2,2,4)}
threshold 0
contained_by {box {-5,5}}
texture
{
pigment
{
color rgb .6
}
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Matthew Pace" <mat### [at] lycoscom> wrote in message
news:mat### [at] netplexaussieorg...
> Holy Jumping Mother of God! It worked! Sorta, anyways. It rendered,
> yes, but there was nothing there. My guess is because I messed up
> somewhere along with placing the objects and camera.
>
> in case anyone was interested still, this is the fixed code:
> #declare Sphere=function (x,y,z,R) {x*x+y*y+z*z}
>
> isosurface
> {
> function{Sphere(2,2,2,4)}
> threshold 0
> contained_by {box {-5,5}}
> texture
> {
> pigment
> {
> color rgb .6
> }
> }
Close - you specify the R param, but then don't do anything with it.
Consequently, with a threshold of 0, you have a 0-width sphere (i.e. the only
points where your equation evaluates to =< 0 is at <0,0,0>).
Next, you correctly specify (x,y,z,R) as params to the function, but then pass
the constant (2,2,2,4), instead of (x,y,z,4). You want the isosurface to be
evaluated for all points of (x,y,z) within the contained_by box, not just for
<2,2,2>.
Also, and less importantly, you probably want {pow(x*x+y*y+z*z,0.5)-R}, since
otherwise you sphere is going to have a radius of the square-root of R, rather
than R (which is fine, but breaks the doctrine of least surprise ;)
Finally, once you sort these problems out, you're still going to have trouble
because you haven't specified a max_gradient, and the default (1.1 iirc) is too
low. So...
Try:
#declare FSphere=function (x,y,z,R) {pow(x*x+y*y+z*z,0.5) - R}
isosurface
{
function{FSphere(x,y,z,2)}
threshold 0
contained_by {box {-5,5}}
max_gradient 13
texture{
pigment{color rgb .6}
}
}
One final point - your texture is wrong. You should specify a perfect reflective
texture for all spheres on checked planes, otherwise you are breaking the terms
of the pov-licence.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Tom Melly wrote:
> [...]
>
> #declare FSphere=function (x,y,z,R) {pow(x*x+y*y+z*z,0.5) - R}
> isosurface
> {
> function{FSphere(x,y,z,2)}
> threshold 0
> contained_by {box {-5,5}}
> max_gradient 13
> texture{
> pigment{color rgb .6}
> }
> }
Actually you should use sqrt() instead of pow(,0.5).
And since the radius R is a render time constant it is not necessary for
it to be a parameter:
#declare R=2;
#declare FSphere=function {sqrt(x*x+y*y+z*z) - R}
isosurface
{
function{FSphere(x,y,z)}
...
}
And this is exctly how it is shown in the isosurface tutorial in the
documentation.
Christoph
--
POV-Ray tutorials, include files, Sim-POV,
HCR-Edit and more: http://www.tu-bs.de/~y0013390/
Last updated 25 Oct. 2003 _____./\/^>_*_<^\/\.______
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Christoph Hormann" <chr### [at] gmxde> wrote in message
news:afb### [at] tritonimagicode...
> Actually you should use sqrt() instead of pow(,0.5).
True (but I'm too lazy to check the docs, and couldn't remember how the keyword
was spelt ;). Also, never a bad idea to remind a newbie that pow(n,0.5) and
sqrt(n) are the same thing...
>
> And since the radius R is a render time constant it is not necessary for
> it to be a parameter:
>
> #declare R=2;
>
Also true - still, I quite liked the example of passing x,y,z and another param.
I don't suppose there's any chance that pov will recognise that R is a constant
and perform an optimisation?*
* yeah, right, and monkeys will fly out of my butt.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Tom Melly <tom### [at] tomandlucouk> wrote:
> Also, and less importantly, you probably want {pow(x*x+y*y+z*z,0.5)-R}, since
> otherwise you sphere is going to have a radius of the square-root of R, rather
> than R (which is fine, but breaks the doctrine of least surprise ;)
Why use a heavy solution to a simple problem?
If the R needs to be squared, then simply square it. This will probably
result in much faster renderings, the result being equal:
#declare FSphere = function(x,y,z,R) { x*x+y*y+z*z-R*R }
--
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Christoph Hormann <chr### [at] gmxde> wrote:
> Actually you should use sqrt() instead of pow(,0.5).
How about simply squaring the radius (R*R) instead of using the slow
sqrt() function?-)
--
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|