diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-02 12:43:34 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-02 12:43:34 +0100 |
| commit | 81fe477f786eb7333524fa33af36d28283dd5275 (patch) | |
| tree | c01e3a870dfa11d974ee9aada1e0197323063afa /3D.md | |
| parent | 7af1f3853905bc1616df0d1e2d728a80f7004c71 (diff) | |
docs: Reorganize 3D.md and integrate tasks
- Moved 3D.md into the doc/ directory to centralize documentation.
- Updated README.md to reflect the new location of 3D.md.
- Captured the action items from 3D.md (visual debug mode, Blender exporter) and added them as a new task (#18) in the PROJECT_CONTEXT.md roadmap.
Diffstat (limited to '3D.md')
| -rw-r--r-- | 3D.md | 50 |
1 files changed, 0 insertions, 50 deletions
@@ -1,50 +0,0 @@ -# 3D system and rendering pipeline - -This sub-project describe how the 3D worlds are going to be rendered. -We want a camera to move around moving and dynamic objects. -These objects can be need a physics and collision system. - -## the idea - -Each object has: - * a bounding box or capsule - * a BVH is maintained while these move around physically (or not) - * to render a frame we cull these bounding volumes - * at rendering time, the bounding box or sphere is turned into a quad or triangle - fan and a shader associated with the object is called (after proper world-object-camera transformations) - * each object can be queries for: - a) ray-object intersection ("return the distance from the object at this point P in this direction D") - b) Signed Distance Field ("what is the minimum distance to the object from this point P?") - -So in the end, we'll - a) move the camera and lights along paths - b) transform the bounding volumes and cull for visible boxes - c) project them - d) call the objects' respective shaders for rendering - -We want to use shadow maps, so multi-passes is expected. - -## debugging features - -The assist the visual debugging, we need a 'visual_debug' mode (code to be -removed with STRIP_ALL) that: - - a) draws a wireframe around the bounding volumes (box, etc.) - b) draw the trajectories (camera, objects, ...) - c) show the collision points - d) displays the ray/object intersection interactively - e) show the lights (direction, cone, ...), display their shadow-map in 3d and on-screen (2d). - -This must be captured and tracked as a sub-task - - -## future step - -Have an exporter from Blender modelling software. That would be a converter -from simple blender-exported files to our internal format (as an asset for -our AssetManager or as c++ code directly) - -## latter improvement - -How to handle transparency? Multi-Ray-casting? -We need to think about the lighting strategy. |
