One logical expansion of CFDG is to move to 3D
Posted: Tue Feb 15, 2011 2:16 pm
I post my ideas about 3D features in Context Free beacause I think it would be a great opportunity for new beautiful designs.
Unfortunately I don't have time to try to implement it and probably I am not able to.
Context3 (by Nom) has probably already implemented this, but I was never able to use it and now it seems like it is not available anymore.
Structure Synth is a very nice 3D version of Context Free but truly it is very different.
- Structure Synth is oriented in creating 3D models
- Context Free is oriented in painting
----------------------------------------------------------------------------------
1. Rendering Engine.
CF rendering engine should be the same. Output is a "paint" not different from what is now.
2. Fixed Camera and flat projection default
- this allows total compatibility with previous designs.
- a simple directive may specify different camera parameters. (ie: camera {distance 100 angle 30})
3. 3D Geometry 3d rotations
- 3D is maybe already implemented in CF since we can specify z coordinate.
- What we need is the rx and ry parameters (rx: rotate around x axis; ry: rotate around y axis;) r parameter equals to rz
4. 3D basic objects
a) Sprites. Sprites are figures that are always drawn perpendicolar to z axis (painted flat). The existing figures SQUARE, CIRCLE, TRIANGLE, can be the default built-in sprites.
b) Planar figures such as DISK or FACE should be painted with geometry stretched according to 3d rotation and each pixel may have a different z coord.
5. Shades and lights
No shades and no lights.
Shading can be obtained manipulating colors. Maybe cycling brightness and saturation like hue could help.
----------------------------------------------------------------------------------
Conclusion
- CF can evolute to 3D without loosing its unique features such as the ability of drawing millions of shapes and have superb antialias.
- The first step to 3D could be having 3D rotations.
- A basic 3D implementation in CF opens the door to unique, ultra detailed, 3d fractal architectures.
Unfortunately I don't have time to try to implement it and probably I am not able to.
Context3 (by Nom) has probably already implemented this, but I was never able to use it and now it seems like it is not available anymore.
Structure Synth is a very nice 3D version of Context Free but truly it is very different.
- Structure Synth is oriented in creating 3D models
- Context Free is oriented in painting
----------------------------------------------------------------------------------
1. Rendering Engine.
CF rendering engine should be the same. Output is a "paint" not different from what is now.
2. Fixed Camera and flat projection default
- this allows total compatibility with previous designs.
- a simple directive may specify different camera parameters. (ie: camera {distance 100 angle 30})
3. 3D Geometry 3d rotations
- 3D is maybe already implemented in CF since we can specify z coordinate.
- What we need is the rx and ry parameters (rx: rotate around x axis; ry: rotate around y axis;) r parameter equals to rz
4. 3D basic objects
a) Sprites. Sprites are figures that are always drawn perpendicolar to z axis (painted flat). The existing figures SQUARE, CIRCLE, TRIANGLE, can be the default built-in sprites.
b) Planar figures such as DISK or FACE should be painted with geometry stretched according to 3d rotation and each pixel may have a different z coord.
5. Shades and lights
No shades and no lights.
Shading can be obtained manipulating colors. Maybe cycling brightness and saturation like hue could help.
----------------------------------------------------------------------------------
Conclusion
- CF can evolute to 3D without loosing its unique features such as the ability of drawing millions of shapes and have superb antialias.
- The first step to 3D could be having 3D rotations.
- A basic 3D implementation in CF opens the door to unique, ultra detailed, 3d fractal architectures.