POV-Ray : Newsgroups : povray.programming : Clarifying some issues and a General RFC : Re: Clarifying some issues and a General RFC Server Time
29 Jul 2024 12:25:25 EDT (-0400)
  Re: Clarifying some issues and a General RFC  
From: Mathias Broxvall
Date: 16 Jul 1998 15:50:19
Message: <1dc8533.5jt5jl1it95jeN@dialup148-3-29.swipnet.se>
Ron Parker <ron### [at] rongwmicrocom> wrote:

> The one thing I hear asked for over and over 
> is nonlinear transformations, but the reason that hasn't been done is nobody
> knows how to do it.

It is possible to do (but slow) by expressing the objects as 
mathematical isosurfaces and creating new composite functions that
distorts the object. The following code should work with the isosurface
patch of povray.

------
#declare F1 = function { .... my object ... }
#declare F2 = function { F1(x+noise3d(x,y,z),y+x*x,z) }

isosurface { .... F2 ... }
------

The function F2 declared above would distort the object F1 by
bending it along the y-axis as well as making it 'jagged' along
the x-axis. (At least I think so, haven't tried it yet).

The only problem (despite the speed) with doing this with arbitrary 
objects might be the difficulty with expressing them as mathematical
objects. But as long as all the primitive functions and the 
CSG-operations can be expressed mathematically this should not
be any serious problem.

/ Mathias

PS. For those who don't know what an isosurface object is, it is
an object expressed by a mathematical function where the "inside points"
of the objects evaluate to a value less than zero and the "outside 
points" evaluate to greater than zero.
Example: x*x + y*y + z*z - 1.0   defines a sphere of radius 1
.DS


Post a reply to this message

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