Răsfoiți Sursa

Design the new scene

Panagiotis Christopoulos Charitos 14 ani în urmă
părinte
comite
33d7c9f2dd
1 a modificat fișierele cu 43 adăugiri și 0 ștergeri
  1. 43 0
      docs/drafts/scene-abstraction.txt

+ 43 - 0
docs/drafts/scene-abstraction.txt

@@ -0,0 +1,43 @@
+Create a new scene organisation that follows some rules:
+- Be extendable from outside AnKi
+- Has a simple interface and correct containers
+- Be able to fast cast and fast check type (llvm isa<>)
+
+Every scene node has a few properties that are actually interfaces. This interfaces are:
+
++======================+==================+=================================+=================+
+| Class name           | Base class       | Interface                       | Used            |
++======================+==================+=================================+=================+
+| BaseRenderable       | -                | - getVao                        | -               |
+|                      |                  | - getVertIdsNum                 |                 |
+|                      |                  | - getWorldTransform             |                 |
++----------------------+------------------+---------------------------------+-----------------+
+| Renderable           | BaseRenderable   | - getMaterial                   | PatchNode       |
+|                      |                  | - getMaterialRuntime (Mutable)  |                 |
+|                      |                  | - getMaterialRuntime (Const)    |                 |
+|                      |                  | - renderInMs (its not virtual)  |                 |
++----------------------+------------------+---------------------------------+-----------------+
+| DebugRenderable      | BaseRenderable   |                                 | Camera, Light   |
++----------------------+------------------+---------------------------------+-----------------+
+| IsRenderable         | BaseRenderable   | getShaderProgram                | Light           |
++----------------------+------------------+---------------------------------+-----------------+
+| VisiblesContainable  | -                | getVisibilityInfo               | Camera, Light   |
++----------------------+------------------+---------------------------------+-----------------+
+	
+	
+**VisiblesContainable**
+ (Camera, Light)
+	Interface for providing info about nodes that are inside this node and 
+	method for checking other nodes is they are visible
+
+	
+VisibleCheckable: (Camera, Light, ModelNode, SkinNode, PatchNode)
+	Interface for providing a CollisionShape for visibility testing
+
+	
+VisiblesInfo: Contains the lists of:
+	- Renderables
+	- Lights
+	
+
+