POV-Ray : Newsgroups : povray.newusers : need help with parametric surface Server Time
22 Dec 2024 00:12:10 EST (-0500)
  need help with parametric surface (Message 1 to 10 of 16)  
Goto Latest 10 Messages Next 6 Messages >>>
From: jr
Subject: need help with parametric surface
Date: 10 Mar 2014 11:31:20
Message: <531ddac8$1@news.povray.org>
hi,

newbie, first post.

having installed v 3.6.1 and played with it for a few days, I decided
that Ferguson's Umbilic Torus [1] would make a fine, first project.

alas, my lack of (mathematical) ability gets in the way of progress. :-(

using the scene file below, I get nothing but a black image.  I
interpret this output
  ------------------------------------------------------------------
  Ray->Shape Intersection          Tests       Succeeded  Percentage
  ------------------------------------------------------------------
  Parametric                      788225               0      0.00
  Parametric Bound                788225          788225    100.00
  ------------------------------------------------------------------
to mean that while the rays hit the default bounding box, they do not
hit the object that's meant to be inside [2].

I've tried various scales for the object and am now out of ideas.

---------- <snip> ----------
// umbilic.pov
// Helaman Ferguson's Umbilic Torus
#version 3.6;

#include "colors.inc"

camera {
  location <0,2,-5>
}

light_source {
  <0,5,0>
  color White
}

// equations from 3dps2v.tk
#declare oUmbilic = parametric {
  function {
sin(pi*u)*(7.0+cos((pi*u/3.0)-(2.0*pi*v))+2.0*cos((pi*u/3.0)+(pi*v))) },
  function {
cos(pi*u)*(7.0+cos((pi*u/3.0)-(2.0*pi*v))+2.0*cos((pi*u/3.0)+(pi*v))) },
  function { sin((pi*u/3.0)-(2.0*pi*v))+2.0*sin((pi*u/3.0)+(pi*v)) }
  <-1.0, -1.0>, <1.0, 1.0>
  contained_by { box { -1.1, 1.1 } }
//  accuracy .0001
}

object {
  oUmbilic
//  texture { uv_mapping pigment { Aquamarine } }
  pigment { rgb 1 }
}

---------- <snip> ----------

any help appreciated.



[1] en.wikipedia.org/wiki/Umbilic_torus
    en.wikipedia.org/wiki/Helaman_Ferguson

[2] I got the x,y,z functions from Blaise Montandon's neat "3D Examiner
for Parametric Surfaces" program which can be found at wiki.tcl.tk/37524.


Post a reply to this message

From: scott
Subject: Re: need help with parametric surface
Date: 10 Mar 2014 12:13:38
Message: <531de4b2$1@news.povray.org>
> using the scene file below, I get nothing but a black image.  I
> interpret this output
>    ------------------------------------------------------------------
>    Ray->Shape Intersection          Tests       Succeeded  Percentage
>    ------------------------------------------------------------------
>    Parametric                      788225               0      0.00
>    Parametric Bound                788225          788225    100.00
>    ------------------------------------------------------------------
> to mean that while the rays hit the default bounding box, they do not
> hit the object that's meant to be inside [2].
>
> I've tried various scales for the object and am now out of ideas.

I changed the following code and get *something* visible, not sure it's 
what you want though:

> camera {
>    location <0,2,-5>
      look_at <0,-4,0>
> }
...
>    contained_by { box { -10, 10 } }


Post a reply to this message

From: jr
Subject: Re: need help with parametric surface
Date: 10 Mar 2014 13:35:05
Message: <531df7c9$1@news.povray.org>
hi scott,

thank you for the swift (~45mins!! wow) reply.

On 10/03/2014 16:13, scott wrote:
> .. *something* visible ..

I see what you mean :-)

>> camera {
>>    location <0,2,-5>
>      look_at <0,-4,0>
>> }
> ...
>>    contained_by { box { -10, 10 } }

well it gives me something to start from.  I now suspect that the object
isn't located at origin and/or that the camera may be somewhere inside
it (because the "*something*" looks like a small section of the object).

I'll play with it tonight.  thanks again.


Post a reply to this message

From: Alain
Subject: Re: need help with parametric surface
Date: 10 Mar 2014 22:49:56
Message: <531e79d4@news.povray.org>

> hi scott,
>
> thank you for the swift (~45mins!! wow) reply.
>
> On 10/03/2014 16:13, scott wrote:
>> .. *something* visible ..
>
> I see what you mean :-)
>
>>> camera {
>>>     location <0,2,-5>
>>       look_at <0,-4,0>
>>> }
>> ...
>>>     contained_by { box { -10, 10 } }
>
> well it gives me something to start from.  I now suspect that the object
> isn't located at origin and/or that the camera may be somewhere inside
> it (because the "*something*" looks like a small section of the object).
>
> I'll play with it tonight.  thanks again.
>

Looking at your function, I suspect that the object is certainly 
contained in a box much larger than the original containing box. My bet 
would be: box {<-9, -2, -9>, <9, 2, 9>}
Make it larger if the object is clipped.
Add an identical box with pigment{rgbt<1, 0.1, 0.1, 1>} to your scene if 
it looks like there are missing parts.
You can also add inside_texture{pigment{rgb<1,0,0>}finish{ambient 1}}. 
That way, any hole should appear in bright red.

Next, the camera needs to be located outside that box.
It can be achieved by placing the camera accordingly, or translating the 
object itself.



Alain


Post a reply to this message

From: jr
Subject: Re: need help with parametric surface
Date: 11 Mar 2014 16:48:55
Message: <531f76b7@news.povray.org>
hi Alain,

thank you for replying.

On 11/03/2014 02:50, Alain wrote:
> Looking at your function, I suspect ... box {<-9, -2, -9>, <9, 2, 9>}

> Add an identical box with pigment{rgbt<1, 0.1, 0.1, 1>} to your scene if
> it looks like there are missing parts.

> You can also add inside_texture{pigment{rgb<1,0,0>}finish{ambient 1}}.
> That way, any hole should appear in bright red.
> 
> Next, the camera needs to be located outside that box.

I followed your advice and used those bounds, initially with colour to
verify the camera placing.  I also placed the box with the transparency.

no joy though, still all black; I even managed to lose the "*something*"
found by Scott. :-(

after some more googling I downloaded Ingo's MMGM and had a look at his
p_umbilic.pov file, which works nicely (and so much faster than the
parametric).  what is very confusing though is that Ingo's version swaps
the x and z functions when compared to the formulas in Wikipedia and
Blaise Montandon's program, and also that BM's formulae incorporate the
pi and use -1..1 bounds while the others use -pi..pi bounds, a different
way of scaling I assume?

I shall have to burn some more 'midnight oil', my aim is to use the
parametric because, AIUI, the surface can then be decorated with a
texture which itself is the result of a computation (needed, I think, to
replicate the Hilbert curve engraved on the original artwork).

btw, inside_texture is not available in v3.6.


Post a reply to this message

From: FractRacer
Subject: Re: need help with parametric surface
Date: 11 Mar 2014 18:12:23
Message: <531f8a47@news.povray.org>

>
> I followed your advice and used those bounds, initially with colour to
> verify the camera placing.  I also placed the box with the transparency.
>
> no joy though, still all black; I even managed to lose the "*something*"
> found by Scott. :-(
>
> after some more googling I downloaded Ingo's MMGM and had a look at his
> p_umbilic.pov file, which works nicely (and so much faster than the
> parametric).  what is very confusing though is that Ingo's version swaps
> the x and z functions when compared to the formulas in Wikipedia and
> Blaise Montandon's program, and also that BM's formulae incorporate the
> pi and use -1..1 bounds while the others use -pi..pi bounds, a different
> way of scaling I assume?

The <-pi,pi> bounds are the values used for the computations. As if you 
compute the cosinus in the range <-pi,pi> or in the range <-1,1>, it is 
not a way to scale. Ex, the values for a circle are in the range 
<0,2pi>, which is like <-pi,pi>.

>
> I shall have to burn some more 'midnight oil', my aim is to use the
> parametric because, AIUI, the surface can then be decorated with a
> texture which itself is the result of a computation (needed, I think, to
> replicate the Hilbert curve engraved on the original artwork).
>
> btw, inside_texture is not available in v3.6.
>

I think Alain make an syntax error, he probably thought:
interior_texture{pigment{rgb<1,0,0>}finish{ambient 1}}
And why not install PovRay 3.7?

If your image is desperately black, add the background statement in your 
scene:
    background {color rgb <0.2,0.4,0.75>}


I can't understand what you want, the p_umbilic.pov file make exactly 
what you want. I think (but I am human and I could be wrong) you can 
texture this object like another, you create your texture with 
calculations and apply then to the shape.

I hope you succeed in your image.

Lionel.
-- 
Do not judge my words, judge my actions.

---

http://www.avast.com


Post a reply to this message

From: jr
Subject: Re: need help with parametric surface
Date: 12 Mar 2014 19:19:39
Message: <5320eb8b$1@news.povray.org>
hi Lionel,

On 11/03/2014 22:18, FractRacer wrote:
> The <-pi,pi> bounds are the values used for the computations. As if you
> compute the cosinus in the range <-pi,pi> or in the range <-1,1>, it is
> not a way to scale. Ex, the values for a circle are in the range
> <0,2pi>, which is like <-pi,pi>.

thanks.  as I said, my maths is .. poor.

>> btw, inside_texture is not available in v3.6.
> I think Alain make an syntax error, he probably thought:
> interior_texture{pigment{rgb<1,0,0>}finish{ambient 1}}

ok.

> And why not install PovRay 3.7?

I'm very new to using Povray and v3.6 will be fine for 'learning the ropes'.

> I can't understand what you want, the p_umbilic.pov file make exactly
> what you want. I think (but I am human and I could be wrong) you can
> texture this object like another, you create your texture with
> calculations and apply then to the shape.

it does, but first I want to learn how to do certain objects/scenes
rather than using a pre-made solution (though it's always good to have a
fall-back).

you, for example, have already enough knowledge to see that Alain just
made a simple error.  I will need to work/learn to gain understanding,
so that I too could spot such errors.

texturing is some way off yet, but I'll bear in mind that both methods
are available.

> I hope you succeed in your image.

sincere thanks.


Post a reply to this message

From: Alain
Subject: Re: need help with parametric surface
Date: 12 Mar 2014 20:18:49
Message: <5320f969@news.povray.org>

> hi Alain,
>
> thank you for replying.
>
> On 11/03/2014 02:50, Alain wrote:
>> Looking at your function, I suspect ... box {<-9, -2, -9>, <9, 2, 9>}
>
>> Add an identical box with pigment{rgbt<1, 0.1, 0.1, 1>} to your scene if
>> it looks like there are missing parts.
>
>> You can also add inside_texture{pigment{rgb<1,0,0>}finish{ambient 1}}.
>> That way, any hole should appear in bright red.
>>
>> Next, the camera needs to be located outside that box.
>
> I followed your advice and used those bounds, initially with colour to
> verify the camera placing.  I also placed the box with the transparency.
>
> no joy though, still all black; I even managed to lose the "*something*"
> found by Scott. :-(
>
> after some more googling I downloaded Ingo's MMGM and had a look at his
> p_umbilic.pov file, which works nicely (and so much faster than the
> parametric).  what is very confusing though is that Ingo's version swaps
> the x and z functions when compared to the formulas in Wikipedia and
> Blaise Montandon's program, and also that BM's formulae incorporate the
> pi and use -1..1 bounds while the others use -pi..pi bounds, a different
> way of scaling I assume?
>
> I shall have to burn some more 'midnight oil', my aim is to use the
> parametric because, AIUI, the surface can then be decorated with a
> texture which itself is the result of a computation (needed, I think, to
> replicate the Hilbert curve engraved on the original artwork).
>
> btw, inside_texture is not available in v3.6.
>

Oups! It's should have been interior_texture, and it's definitively a 
feature found in 3.6. Not sure, but it may have been there in 3.5 or 
earlier.

You should upgrade to version 3.7. It's somewhat faster, can take 
advantage of all cores on modern computer, have several bug fixes, 
introduce some new features like subsurface light transport and high 
dynamic range images as source and output option.
It also have some improvements for focal blur and antialiasing. The irid 
code is totaly redone as it was broken in version 3.6: Just add this to 
some finish to see what's the problem (also try with turbulence 10, 1, 
0.1, 0.01):
irid{0.2 thickness 0.2 turbulence 0.001}




Alain


Post a reply to this message

From: Alain
Subject: Re: need help with parametric surface
Date: 12 Mar 2014 20:21:16
Message: <5320f9fc@news.povray.org>

> hi Lionel,
>
> On 11/03/2014 22:18, FractRacer wrote:
>> The <-pi,pi> bounds are the values used for the computations. As if you
>> compute the cosinus in the range <-pi,pi> or in the range <-1,1>, it is
>> not a way to scale. Ex, the values for a circle are in the range
>> <0,2pi>, which is like <-pi,pi>.
>
> thanks.  as I said, my maths is .. poor.
>
>>> btw, inside_texture is not available in v3.6.
>> I think Alain make an syntax error, he probably thought:
>> interior_texture{pigment{rgb<1,0,0>}finish{ambient 1}}
>
> ok.
>
>> And why not install PovRay 3.7?
>
> I'm very new to using Povray and v3.6 will be fine for 'learning the ropes'.

You should go straight to version 3.7. That way, you won't need to 
UNlearn some of those "ropes"...



Alain


Post a reply to this message

From: FractRacer
Subject: Re: need help with parametric surface
Date: 13 Mar 2014 07:40:16
Message: <53219920@news.povray.org>
Hi Jr,

I have modified Ingo's file like this:
#declare Set=5;

// in switch block add:
#case (5)
#declare F1= function(u,v) 
{sin(pi*u)*(7.0+cos((pi*u/3.0)-(2.0*pi*v))+2.0*cos((pi*u/3.0)+(pi*v))) };
#declare F2= function(u,v) 
{cos(pi*u)*(7.0+cos((pi*u/3.0)-(2.0*pi*v))+2.0*cos((pi*u/3.0)+(pi*v))) };
#declare F3= function(u,v) { 
sin((pi*u/3.0)-(2.0*pi*v))+2.0*sin((pi*u/3.0)+(pi*v)) };
#break

// in object block add:
#if (Set=5)
Parametric(
	F1, F2, F3,
	<-pi, -pi>, < pi, pi>,
	50,50,""
)
#end

I remark your object have some holes on the borders, maybe you have to 
modify the formulas.

Lionel.
-- 
Do not judge my words, judge my actions.

---

parce que la protection avast! Antivirus est active.
http://www.avast.com


Post a reply to this message

Goto Latest 10 Messages Next 6 Messages >>>

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