POV-Ray : Newsgroups : povray.general : NURBS patch? Server Time
13 Aug 2024 05:48:53 EDT (-0400)
  NURBS patch? (Message 7 to 16 of 16)  
<<< Previous 6 Messages Goto Initial 10 Messages
From: Nathan Kopp
Subject: Re: NURBS patch?
Date: 8 Dec 1998 23:19:07
Message: <366DFA81.E4F23AA0@Kopp.com>
Jeff Garzik wrote:
> 
> Patch wizards -- are there any fundamental reasons why NURBS would be
> difficult to implement in POV?  Perhaps I could take a crack at working
> up a nurbs patch.
> 
>         Jeff

I don't know about working with NURBS directly (that would be really slow,
from my experience), but converting to triangles should be pretty easy.  I
actually had a version of POV that would read in NURBS.  It was really just
a front-end parser to the triangle-mesh object.  POV's triangle mesh object
is actually pretty efficient (both with memory and rendering speed).  But
my code was really slow and may have had some bugs.  I still have it lying
around (I think), so if you want it I'll send it.  Also, didn't somebody
else ask for it once?  I may have forgotten to give it to that person.
oops. ;-)

-Nathan Kopp


Post a reply to this message

From: Nieminen Mika
Subject: Re: NURBS patch?
Date: 9 Dec 1998 05:16:59
Message: <366e4e1b.0@news.povray.org>
Jeff Garzik <jga### [at] poboxcom> wrote:
: Patch wizards -- are there any fundamental reasons why NURBS would be
: difficult to implement in POV?  Perhaps I could take a crack at working
: up a nurbs patch.

  I have absolutely no idea about the mathematics involved in NURBS
calculation, but I can speculate and say that those renderers which use
real NURBS (bmrt, renderman) are not raytracers while povray is. Maybe
calculating the intersection of a ray and a NURBS is not easy and/or fast?
I don't know...
  (Note: Maybe I'm wrong with bmrt, but AFAIK renderman is not a raytracer)

-- 
main(i){char*_="BdsyFBThhHFBThhHFRz]NFTITQF|DJIFHQhhF";while(i=
*_++)for(;i>1;printf("%s",i-70?i&1?"[]":" ":(i=0,"\n")),i/=2);} /*- Warp. -*/


Post a reply to this message

From: Margus Ramst
Subject: Re: NURBS patch?
Date: 9 Dec 1998 05:37:52
Message: <366E52F3.AD2FCD5@peak.edu.ee>
BMRT is a true raytrace/radiosity renderer, although it also adheres to the
Renderman language standard. I am not sure, but I believe BMRT and Renderman
convert NURBS to triangle meshes internally (after all, POV does this with
bezier patches, too)

Margus

Nieminen Mika wrote:
> 
>   I have absolutely no idea about the mathematics involved in NURBS
> calculation, but I can speculate and say that those renderers which use
> real NURBS (bmrt, renderman) are not raytracers while povray is. Maybe
> calculating the intersection of a ray and a NURBS is not easy and/or fast?
> I don't know...
>   (Note: Maybe I'm wrong with bmrt, but AFAIK renderman is not a raytracer)
> 
> --
> main(i){char*_="BdsyFBThhHFBThhHFRz]NFTITQF|DJIFHQhhF";while(i=
> *_++)for(;i>1;printf("%s",i-70?i&1?"[]":" ":(i=0,"\n")),i/=2);} /*- Warp. -*/


Post a reply to this message

From: Thomas Willhalm
Subject: Re: NURBS patch?
Date: 9 Dec 1998 11:10:52
Message: <qqmn24xthxb.fsf@goldach.fmi.uni-konstanz.de>
Nathan Kopp <Nat### [at] Koppcom> writes:

> Jeff Garzik wrote:
> > 
> > Patch wizards -- are there any fundamental reasons why NURBS would be
> > difficult to implement in POV?  Perhaps I could take a crack at working
> > up a nurbs patch.
> > 
> >         Jeff
> 
> I don't know about working with NURBS directly (that would be really slow,
> from my experience), but converting to triangles should be pretty easy.  I
> actually had a version of POV that would read in NURBS.  It was really just
> a front-end parser to the triangle-mesh object.  POV's triangle mesh object
> is actually pretty efficient (both with memory and rendering speed).  But
> my code was really slow and may have had some bugs.  I still have it lying
> around (I think), so if you want it I'll send it.  Also, didn't somebody
> else ask for it once?  I may have forgotten to give it to that person.
> oops. ;-)

Did you consider to generate the triangles "on the fly" while rendering
takes place? This technique is used for Bezier patches. You can choose
between the two methods by a switch. (But probably, you already know all
this.)

In my opinion an analogous implementation of Bezier patches and NURBS
would be nice (and very useful).

Thomas

-- 
http://www.fmi.uni-konstanz.de/~willhalm


Post a reply to this message

From: Jerry Anning
Subject: Re: NURBS patch?
Date: 9 Dec 1998 14:28:32
Message: <366ECF70.102AA13E@dhol.com>
Margus Ramst wrote:
> 
> BMRT is a true raytrace/radiosity renderer, although it also adheres to the
> Renderman language standard. I am not sure, but I believe BMRT and Renderman
> convert NURBS to triangle meshes internally (after all, POV does this with
> bezier patches, too)

BMRT is indeed a true ray tracer.  It does not at any point convert
NURBS to triangles. Neither does RenderMan.  For that matter, neither
they nor POV convert Beziers to triangle meshes.  POV subdivides Beziers
into smaller Bezier patches until they are flat enough to be considered
rectangles.

Jerry Anning
cle### [at] dholcom


Post a reply to this message

From: Nathan Kopp
Subject: Re: NURBS patch?
Date: 9 Dec 1998 14:56:38
Message: <366ED63C.678DD184@Kopp.com>
Jerry Anning wrote:
> 
> BMRT is indeed a true ray tracer.  It does not at any point convert
> NURBS to triangles. Neither does RenderMan.  For that matter, neither
> they nor POV convert Beziers to triangle meshes.  POV subdivides Beziers
> into smaller Bezier patches until they are flat enough to be considered
> rectangles.
> 

I must disagree. (I'm guessing, but it is an educated guess.)  I agree that
BMRT is a true raytracer.  But doing anything with NURBS without converting
them to triangles is very time consuming.  If it did not convert them to
triangles, the render time would make it so nobody would use NURBS with BMRT.
Also, I'd bet that BMRT converts the majority (if not all) of its surfaces into
triangles before rendering.  I know that RenderMan does, since all scanline
renders convert all objects into triangles.

POV can subdivide Beziers on the fly into smaller and smaller beziers until
they are rectangles (the rectangle is rendered as two smooth triangles). 
However, this is 'type 0', which renders quite slowly compared to 'type 1'. 
Type 1 subdivides as a pre-computation step and stores the triangles in a nice,
efficient octree structure.

It should be noted that POV can only subdivide the beziers into sub-patches
because of the nature of the bezier parametric equation.  There is no such
optimization that I know of when dealing with NURBS, especially trimmed NURBS.
Therefore, subdividing NURBS on the fly could end up being VERY slow.

(This is also an answer to Thomas Willhalm's question.)

IMHO, POV does a great job rendering smooth triangles (with the new mesh2
syntax that can be found in UVPov and the SuperPatch), both in memory
efficiency and speed.... so, if we can get a fast pre-processing step, I think
we'd be all set.

-Nathan Kopp


Post a reply to this message

From: Jerry Anning
Subject: Re: NURBS patch?
Date: 9 Dec 1998 16:23:16
Message: <366EEA53.2C943B6C@dhol.com>
Nathan Kopp wrote:
> 
> Jerry Anning wrote:
> >
> > BMRT is indeed a true ray tracer.  It does not at any point convert
> > NURBS to triangles. Neither does RenderMan.  For that matter, neither
> > they nor POV convert Beziers to triangle meshes.  POV subdivides Beziers
> > into smaller Bezier patches until they are flat enough to be considered
> > rectangles.
> >
> 
> I must disagree. (I'm guessing, but it is an educated guess.)  I agree that
> BMRT is a true raytracer.  But doing anything with NURBS without converting
> them to triangles is very time consuming.  If it did not convert them to
> triangles, the render time would make it so nobody would use NURBS with BMRT.
> Also, I'd bet that BMRT converts the majority (if not all) of its surfaces into
> triangles before rendering.  I know that RenderMan does, since all scanline
> renders convert all objects into triangles.

I'm not guessing.  They don't.  RenderMan doesn't use simple scanline,
it uses REYES which is somewhat different.  There are reasonably fast
ways to do NURBS without triangulating.  Inquire on
comp.graphics.rendering.renderman and/or comp.graphics.algorithms if you
are curious.

Jerry Anning
cle### [at] dholcom


Post a reply to this message

From: Nathan Kopp
Subject: Re: NURBS patch?
Date: 10 Dec 1998 00:01:49
Message: <366F5600.6182CEFB@Kopp.com>
Jerry Anning wrote:
> 
> I'm not guessing.  They don't.  RenderMan doesn't use simple scanline,
> it uses REYES which is somewhat different.  There are reasonably fast
> ways to do NURBS without triangulating.  Inquire on
> comp.graphics.rendering.renderman and/or comp.graphics.algorithms if you
> are curious.
> 

Thanks!  I think I'll do a search on Dejanews to see if there have been
any discussions in the past.  I usually don't like to jump into a usenet
group without lurking for a while.  Are there any web pages or online
papers regarding the REYES renderer?  (Or is it top-secret Pixar
technology?)  Also, if you know of any web pages or papers about fast
evaluation of NURBS, could you post them so that people can get started
on adding them to POV.  I abandoned my earlier work mostly because it was
really slow (parsing a triangle mesh was quicker than my NURBS evaluation
code).

-Nathan


Post a reply to this message

From: Mike
Subject: Re: NURBS patch?
Date: 11 Dec 1998 01:48:28
Message: <36715AD1.D69DE75E@aol.com>
Maybe not what you were asking for (I haven't looked at it in depth) but this
library seems like something worth looking into.

http://lowrent.org/nurbs/documentation.shtml

-Mike



Nathan Kopp wrote:

> Thanks!  I think I'll do a search on Dejanews to see if there have been
> any discussions in the past.  I usually don't like to jump into a usenet
> group without lurking for a while.  Are there any web pages or online
> papers regarding the REYES renderer?  (Or is it top-secret Pixar
> technology?)  Also, if you know of any web pages or papers about fast
> evaluation of NURBS, could you post them so that people can get started
> on adding them to POV.  I abandoned my earlier work mostly because it was
> really slow (parsing a triangle mesh was quicker than my NURBS evaluation
> code).
>
> -Nathan


Post a reply to this message

From: Thomas Baier
Subject: Re: NURBS patch?
Date: 11 Dec 1998 03:06:56
Message: <3670D2F8.140664AC@ibm.net>
Hi Nathan,

> run into problems if you convert Rhino to 3DS to POV.  It works with most
> things, but sometimes the textures get messed up.
>

Rhino to 3ds texture conversion works well if you switch off the weld option.

-td


Post a reply to this message

<<< Previous 6 Messages Goto Initial 10 Messages

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