POV-Ray : Newsgroups : povray.newusers : Scale by axis? : Re: Scale by axis? Server Time
5 Jul 2024 04:38:47 EDT (-0400)
  Re: Scale by axis?  
From: Warp
Date: 2 Jun 2010 00:57:11
Message: <4c05e4a7@news.povray.org>
Alain <aze### [at] qwertyorg> wrote:
> There is a way to have some non-uniform scaling, but it's more complicated.
> For that, you need to use an isosurface equivalent to your object and 
> work on the function used to represent it.

  Every time non-linear transformation of object comes up, isosurfaces are
suggested. However, isosurfaces are a viable solution in only very limited
cases. You can't simply take a complex CSG object and convert it to an
isosurface. Some objects are simply too complex, or have too much detail
in them in order to be renderable in a rational amount of time as an
isosurface (especially given that applying a non-linear transformation to
it will usually make it even slower to render). Texturing can also sometimes
pose a problem in certain cases, such as when different parts of the object
uses different textures, or they use texturing options not available for
isosurfaces (such as uv-mapping).

  The most efficient and versatile solution would be to use a triangle mesh.
While technically speaking triangle meshes cannot be transformed non-linearly
either, this can be approximated by subdividing the mesh into smaller triangles
and transforming the vertex points (which is basically what all mesh-based
renderers do).

  Of course POV-Ray itself offers little to no tools to create and modify
meshes in this way, so the only option is, basically, to use a third-party
mesh modeling tool to create the mesh.

  There exist some mesh subdivision&transformation macros out there, but
they all assume that you have the vertex points in an array (as it's
currently not possible to extract the vertex points from a mesh object).

-- 
                                                          - Warp


Post a reply to this message

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