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)
|
2. [Frame](#frame)
|
||||||
9. [Scene](#scene-scene)
|
9. [Scene](#scene-scene)
|
||||||
10. [3D Graphics](#3d-graphics-gfx3d)
|
10. [3D Graphics](#3d-graphics-gfx3d)
|
||||||
11. [3D Physics](#3d-physics-physics3d)
|
11.
|
||||||
12. [Artificial Intelligence](#artificial-intelligence-ai)
|
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
|
The following systems are not essential to the core engine, but are instead major systems that should be defined
|
||||||
in their operation order:
|
in their operation order:
|
||||||
|
|
||||||
**3D Systems will apply *before* their 2D Variants**
|
|
||||||
|
|
||||||
|
|
||||||
### Tick
|
### Tick
|
||||||
- **Update**
|
- **Update**
|
||||||
- Events
|
- Events
|
||||||
@ -182,7 +180,10 @@ in their operation order:
|
|||||||
|
|
||||||
### Frame
|
### Frame
|
||||||
- **Graphics**
|
- **Graphics**
|
||||||
- See [Stages](#stages-gfx3d)
|
- Physics Interpolation
|
||||||
|
- [2D Graphics](#2d-graphics-gfx2d)
|
||||||
|
- Generate 3D Mask
|
||||||
|
- [3D Graphics](#3d-graphics-gfx3d)
|
||||||
- **Audio**
|
- **Audio**
|
||||||
|
|
||||||
|
|
||||||
@ -212,7 +213,8 @@ implementations than I could write.
|
|||||||
|
|
||||||
## 2D Graphics (`gfx2d`)
|
## 2D Graphics (`gfx2d`)
|
||||||
|
|
||||||
|
- BVH
|
||||||
|
- Quadtree
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -246,7 +248,6 @@ Specifications for debugging views via early breaks are included in the stages.
|
|||||||
### Stages (`gfx3d`)
|
### Stages (`gfx3d`)
|
||||||
|
|
||||||
This is the set of stages for the graphics pipeline that runs every frame:
|
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
|
- BVH
|
||||||
- Octree
|
- Octree
|
||||||
@ -255,6 +256,7 @@ Unless otherwise specified, each stage will be run on the GPU.
|
|||||||
- Max Object Size
|
- Max Object Size
|
||||||
- Scene Center
|
- Scene Center
|
||||||
- Scene Edge
|
- Scene Edge
|
||||||
|
- Buffer has implicit locations due to the tree having 8 children.
|
||||||
- Insertions and Updates are done on the CPU
|
- Insertions and Updates are done on the CPU
|
||||||
- Nodes
|
- Nodes
|
||||||
- ID 16-bits
|
- 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.
|
- Starting at each Octree Leaf, traverse upwards.
|
||||||
- Insert Visible Leaf IDs
|
- Insert Visible Leaf IDs
|
||||||
- Track using atomic buffer
|
- 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
|
- Output: Buffer of Visible Leaves
|
||||||
|
|
||||||
* LOD Selection
|
* LOD Selection
|
||||||
* Generate the Command Buffer for Culled Mesh LODs from the Visible Leaf Buffer
|
* Generate the Command Buffer for Culled Mesh LODs from the Visible Leaf Buffer
|
||||||
* Track counts using atomic buffers
|
* Track counts using atomic buffers
|
||||||
* To avoid double counting due to the structure of the Octree output, we have some options
|
* 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.
|
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.
|
* Perform a preprocessing step on the CPU to erase duplicate elements and fix the buffer continuity.
|
||||||
* Let the duplicates be rendered.
|
* Let the duplicates be rendered.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user