Filled in some more details.
This commit is contained in:
parent
885cca6ca7
commit
bbae30b244
21
PLANNING.md
21
PLANNING.md
@ -16,8 +16,9 @@
|
||||
2. [Frame](#frame)
|
||||
9. [Scene](#scene-scene)
|
||||
10. [3D Graphics](#3d-graphics-gfx3d)
|
||||
11. [3D Physics](#3d-physics-physics3d)
|
||||
12. [Artificial Intelligence](#artificial-intelligence-ai)
|
||||
11.
|
||||
12. [3D Physics](#3d-physics-physics3d)
|
||||
13. [Artificial Intelligence](#artificial-intelligence-ai)
|
||||
|
||||
|
||||
|
||||
@ -159,9 +160,6 @@ This will be the core of the engine.
|
||||
The following systems are not essential to the core engine, but are instead major systems that should be defined
|
||||
in their operation order:
|
||||
|
||||
**3D Systems will apply *before* their 2D Variants**
|
||||
|
||||
|
||||
### Tick
|
||||
- **Update**
|
||||
- Events
|
||||
@ -182,7 +180,10 @@ in their operation order:
|
||||
|
||||
### Frame
|
||||
- **Graphics**
|
||||
- See [Stages](#stages-gfx3d)
|
||||
- Physics Interpolation
|
||||
- [2D Graphics](#2d-graphics-gfx2d)
|
||||
- Generate 3D Mask
|
||||
- [3D Graphics](#3d-graphics-gfx3d)
|
||||
- **Audio**
|
||||
|
||||
|
||||
@ -212,7 +213,8 @@ implementations than I could write.
|
||||
|
||||
## 2D Graphics (`gfx2d`)
|
||||
|
||||
|
||||
- BVH
|
||||
- Quadtree
|
||||
|
||||
|
||||
|
||||
@ -246,7 +248,6 @@ Specifications for debugging views via early breaks are included in the stages.
|
||||
### Stages (`gfx3d`)
|
||||
|
||||
This is the set of stages for the graphics pipeline that runs every frame:
|
||||
Unless otherwise specified, each stage will be run on the GPU.
|
||||
|
||||
- BVH
|
||||
- Octree
|
||||
@ -255,6 +256,7 @@ Unless otherwise specified, each stage will be run on the GPU.
|
||||
- Max Object Size
|
||||
- Scene Center
|
||||
- Scene Edge
|
||||
- Buffer has implicit locations due to the tree having 8 children.
|
||||
- Insertions and Updates are done on the CPU
|
||||
- Nodes
|
||||
- ID 16-bits
|
||||
@ -266,13 +268,14 @@ Unless otherwise specified, each stage will be run on the GPU.
|
||||
- Starting at each Octree Leaf, traverse upwards.
|
||||
- Insert Visible Leaf IDs
|
||||
- Track using atomic buffer
|
||||
- At the second level, if a node is an edge, add the sister nodes to the visible buffer.
|
||||
- Output: Buffer of Visible Leaves
|
||||
|
||||
* LOD Selection
|
||||
* Generate the Command Buffer for Culled Mesh LODs from the Visible Leaf Buffer
|
||||
* Track counts using atomic buffers
|
||||
* To avoid double counting due to the structure of the Octree output, we have some options
|
||||
* Ignore Leaf Instances based on occurrences of the mesh in the surrounding 16 Octree Leaves. This would require
|
||||
* Ignore Leaf Instances based on occurrences of the mesh in the surrounding 26 Octree Leaves. This would require
|
||||
a bias towards a specific corner of the filter.
|
||||
* Perform a preprocessing step on the CPU to erase duplicate elements and fix the buffer continuity.
|
||||
* Let the duplicates be rendered.
|
||||
|
Loading…
x
Reference in New Issue
Block a user