/* Common Part. Inputs and constants. Inputs -------- Standard: v[0] == StartPos. Hence, It is the SplitPoint of the father face. v[8] == Tex0 (xy) v[9] == Tex1 (xy) (different meanings for Far and Tile). v[13] == Tex2 (xy) (just for Tile mode). Geomorph: v[10] == { GeomFactor, MaxNearLimit } * where GeomFactor == max(SizeFaceA, SizeFaceB) * OORefineThreshold. It's means vertices are re-computed when the RefineThreshold setup change. * MaxNearLimit= max(nearLimitFaceA, nearLimitFaceB) v[11].xyz == EndPos-StartPos Alpha: NB: Since only usefull for Far1, v[12] is not in the VB for Far0 and Tile VertexBuffer. v[12] == { TransitionSqrMin, OOTransitionSqrDelta} * TransitionSqrMin, OOTransitionSqrDelta : Alpha transition, see preRender(). There is only 3 values possibles. It depends on Far1 type. Changed in preRender() Constant: -------- Setuped at beginning of CLandscape::render() c[0..3]= ModelViewProjection Matrix. c[4]= {0, 1, 0.5, 0} c[5]= RefineCenter c[6]= {TileDistFarSqr, OOTileDistDeltaSqr, *, *} c[7]= ??? c[8..11]= ModelView Matrix (for Fog). c[12]= PZBModelPosition: landscape center / delta Position to apply before multipliying by mviewMatrix Fog Note: ----------- Fog is computed on geomorphed position R1. R1.w==1, and suppose that ModelViewMatrix has no Projection Part. Then Homogenous-coordinate == Non-Homogenous-coordinate. Hence we need only (FogVector*R1).z to get the FogC value. => computed in just on instruction. */