diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-01 10:51:15 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-01 10:51:15 +0100 |
| commit | 8bdc4754647c9c6691130fa91d51fee93c5fc88f (patch) | |
| tree | 2cfd7f72a21541c488ea48629eef47a6774fc2c4 /3D.md | |
| parent | 7905abd9f7ad35231289e729b42e3ad57a943ff5 (diff) | |
feat: Implement 3D system and procedural texture manager
- Extended mini_math.h with mat4 multiplication and affine transforms.
- Implemented TextureManager for runtime procedural texture generation and GPU upload.
- Added 3D system components: Camera, Object, Scene, and Renderer3D.
- Created test_3d_render mini-demo for interactive 3D verification.
- Fixed WebGPU validation errors regarding depthSlice and unimplemented WaitAny.
Diffstat (limited to '3D.md')
| -rw-r--r-- | 3D.md | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -0,0 +1,35 @@ +# 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. + +## 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? |
