From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/3d_overview.html | 118 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 docs/doxygen/nel/3d_overview.html (limited to 'docs/doxygen/nel/3d_overview.html') diff --git a/docs/doxygen/nel/3d_overview.html b/docs/doxygen/nel/3d_overview.html new file mode 100644 index 00000000..24c60a2b --- /dev/null +++ b/docs/doxygen/nel/3d_overview.html @@ -0,0 +1,118 @@ + + + + nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
+
+ + +
+ + +
+Docs + +
+  + + + + + +
Documentation 
+ +
+Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  
+

NeL 3d pipeline overview

+
+Author:
+Cyril Corvazier
The rendering process is composed of several traversals. Each traversal acts on their models using an observer. The rendering process is done following this pipeline: +

+

    +
  • Transform animation traversal
  • Transform traversal
  • Load ballancing traversal
  • View determination and culling traversal
  • Detail animation traversal
  • Lighting traversal
  • Render traversal
+

transform's animation Traversal

+ +

+This traversal must eval the transform's animated value to get the final parent relative world matrix of each model. We must do this pass to know where each model is. +

+

Transform traversal

+ +

+This traversal composes each transform's matrix with the parent one to get the final world matrix. This pass is used to perform hierarchical animation of models. +

+

Load balancing traversal

+ +

+For each model traversed this traversal evaluates what rendering resources the model requires. It counts the number of primitives that it needs to have rendered and amount of vram used by their textures. +

+

View determination and culling traversal

+ +

+This traversal clips models that are not visible. It uses clusters/portals for interiors and a frustrum clipping for exteriors. +

+

Detail animation traversal

+ +

+This traversal computes the animation for all values not animated in the first pass (transform animation). Animation is done in 2 passes because the first must be done to get models' world bounding box used in view determination. The second pass is done only on visible objects. +

+

Lighting traversal

+ +

+This traversal computes dynamic lighting for each visible model with non-clipped lights. +

+

Render traversal

+ +

+Render is the most complex traversal. +

+

    +
  • If the model uses skinning, it will compute bones world matrices. Matrices have been set by second animation pass but they need to be combined with their parents.
  • If the model has an inverse kinematics solver attached, it is evaluated next.
  • If the model supports resource load ballancing, the final count of rendering primitives is ajusted in function of the distance from the camera.
  • The primitives to send to the driver are built.
  • The primitives are rendered by the driver.
+ + + +
                                                                                                                                                                    +
+ + -- cgit v1.2.1