User:Le Forgeron
I use this page to pre-document some experimental code (as experimental, not distributed in official release)
Splines
Imported from Megapov Relicensing from ABX is needed before allowing distribution (some bugs get fixed in the process)
Colour space interpolation
The colour interpolation is available for:
- mesh
- blob
- polygon
It can be used with texture_map, pigment_map or colour_map.
The interpolation is performed between the resulting colours from the evaluation, not along the map.
Which colourspace ?
Interpolation for polygon
Access to camera information
These pieces of information are in read-only mode. You cannot use them to modify the actual value (no #declare
or #local
). The various vectors might have been updated by transform and look_at
.
camera_type
is a string containing the type of the camera (but not its subtype, so cylinder camera might be ambiguous).camera_up
is the actual up vector of the camera.camera_right
is the actual right vector of the camera.camera_direction
is the actual direction vector of the camera.
In case of scene with multiple cameras, each keyword can be followed by an usual array notation to access the relevant camera. (e.g. camera_up[3]
for the fourth camera)
Tesselation & mesh play
Yoda: Yes, run! Yes, a Jedi's strength flows from the Renderer. But beware of the dark side. Mesh, Heightfield, Bicubic Patch; the dark side of the Force are they. Easily they flow, quick to join you in a fight. If once you start down the dark path, forever will it dominate your destiny, consume you it will, as it did Isosurface's apprentice. Luke: Parametric precompute... Is the dark side stronger? Yoda: No, no, no. Quicker, easier, more seductive. Luke: But how am I to know the good side from the bad? Yoda: You will know... when you are calm, at peace, passive. A Jedi uses the Renderer for knowledge and defense, NEVER for attack. Luke: But tell my why I can't... Yoda: No, no! There is no "why".
Mesh from and to file
Loading
A GTS file can be loaded with gts_load
.
#include "colors.inc" camera { location <3,5,-4> direction z up y right image_width/image_height*x look_at <-1/2,1/2,0> angle 35 } light_source{ <-5, 20, -20>, 1} light_source{ <0, 2, 0>, 1/2} gts_load{ "bunny.gts" right rotate 180*y scale 17 translate -2*y texture { pigment { color Aquamarine}} }
Aside from the filename of the file to load, the right
keyword can be used to change the default left-handed coordinate system to a right-handed one.
gts_load
can be used to create a mesh of its own or to incorporate the mesh of the file into a larger mesh, in which case a texture identifier can be applied over the loaded GTS mesh.
mesh { ... gts_load { filename [right] [texture { Tid }] ... } ... } gts_load { filename [right] ... } =====Saving===== <p>A mesh can be saved with <code>gts_save</code>. Beware of I/O restrictions.</p> <pre> gts_save { filename, mesh_object }