POV-Ray : Newsgroups : povray.advanced-users : A bunch of feature requests! : Re: A bunch of feature requests! Server Time
17 Jun 2024 15:35:28 EDT (-0400)
  Re: A bunch of feature requests!  
From: Warp
Date: 21 Jun 2010 08:30:12
Message: <4c1f5b54@news.povray.org>
Thorsten Froehlich <tho### [at] trfde> wrote:
> > Native support for mesh-based surface approximations

> You can already do this with a macro. Native support would have no benefit - 
> the probable assumption that a high quality mesh would be faster to generate 
> and then render compared to a native object (i.e. an isosurface) is incorrect.

  Given that meshes which approximate the same shape as a complex CSG
composed of other primitves sometimes renders faster than that CSG object,
I don't see how an isosurface would be even faster than that. On the
contrary, an isosurface with the same shape as the complex CSG most probably
would render at least an order of magnitude slower than the original CSG
object.

  Tesselating an isosurface to a mesh would probably be a slow'ish process,
but certainly not slower than rendering the isosurface. Then rendering the
mesh would in most cases be orders of magnitude faster than rendering the
original isosurface (after all, the rendering speed of a mesh is something
like logarithmically related to the amount of triangles, so even really
complex surfaces are going to render quite fast).

  Also there are advantages of tesselation other than faster rendering.
Among others, it would open up possibilities to efficiently simulate
non-linear transformations (applying a non-linear transformation to a CSG
is impossible, and on an isosurface makes the rendering slower, while on a
mesh it has little effect because the amount of triangles stays the same),
uv-mapping and exporting shapes to other formats.

  Of course the *major* problem here is: Which tesselation algorithm to use,
and how to implement it? And who is going to implement it?

  AFAIK the marching triangles algorithm is one of the best in existence
(while the marching cubes algorithm is one of the worst), and it's especially
suited for efficiently tesselating isosurfaces ("efficiently" meaning that it
generates an optimal amount of triangles, creating more on places with high
curvature and less in places with low curvature). It might also be usable
with CSG objects (although there are going to be surprising problems there.)
However, somebody would have to implement it.

-- 
                                                          - Warp


Post a reply to this message

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