All texcoord data 3d, use "0" for unused dimensions. Why:

  • A 3d texture could always be reassigned dynamically
  • No guarentee of texture source change
  • Texture D checking costs during render cycle, easier to use set stride

Vertex array data-

float*9: nx, ny, nz, tx, ty, tz, vx, vy, vz

Three forms of mesh data:

  • Faces - Vertex (float9) * 3 = float27 per face
  • Strips - (Vertex (float9) * 2 = float18) + (Vertex (float9) per face)
    • Question: does using strips save us that much vs time to compute, especially given LOD calcs?

For the python-side we need to keep track of which face verticies are shared and which simply overlap

  • Python-side faces are universal; seamless wether a solitary face or part of a strip
  • Python-side verticies hold offset refs for each vertex they represent


  • Faces are placed in array by priority, most important faces first, least last
  • Chopped off 2 tris per step, 2 verticies become one
  • Python data remains *unchanged*, this represents a copy between original and instance
    • Ditto for morphs

We need a "unified vertex model" which encompasses skeletal animation, morph targets, and LOD

Unified Color/Texture? Model

  • Far-off models should have a single color, not a texture
  • This color should be, Python-wise, identical to a 1-pixel texture
  • The color of a texture is the "mean pixel" which all deltas are applied to
  • Textures and colors should be in a sub-module