1.4.1.11 How can I bend a object?
There is no direct support for bending in POVRay, but you can achieve acceptable bending with the Object
Bender by Chris Colefax.
Some objects can be "bent" by just modelling it with other objects. For example a bent cylinder can be
more easily (and accurately) achieved using the intersection of a torus and some limiting objects.
It might be a bit strange why most renderers support bending but POVRay does not. To understand this one has to
know how other renderers (the socalled "scanlinerenderers" work):
In the socalled "scanline renders" all objects are modelled with triangle meshes (or by primitives such
as NURBS or bezier patches which can be very easily converted to triangles). The "bending" is, in fact,
achieved by moving the vertices of the triangles.
In this context the term "bending" is a bit misleading. Strictly speaking, bending a triangle mesh would
also bend the triangles themselves, not only move their vertices. No renderer can do this. (It can be, however,
simulated by splitting the triangles into smaller triangles, and so the "bending" effect is more accurate,
although not yet perfect.) What these renderers do is not a true bending in the strict mathematical sense, but only an
approximation achieved by moving the vertices of the triangles.
This difference might sound irrelevant, as the result of this kind of "fake" bending usually looks as
good as a true bending. However, it is not irrelevant from the point of view of POVRay. This is because POVRay does
not represent the objects with triangles, but they are true mathematical surfaces. POVRay cannot "fake" a
bending by moving vertices because there are no vertices to move. In practice bending (and other nonlinear
transformations) would require the calculation of the intersection of the object surface and a curve (instead of a
straight line), which is pretty hard and many times analytically not possible.
Note that isosurface objects can be modified with proper functions in order to achieve all kinds of transformations
(linear and nonlinear) and thus they are not really bound to this limitation. However, achieving the desired
transformation needs some knowledge of mathematics.
See also the variable ior question.
