rvandepo++at++csc.com
Fri, 5 Nov 1999 11:46:57 +1000
As you can see from the code given below I set the pfTexGen mode to EYE_LINEAR
and I also define the pfTexGen planes so that the corresponding (s,t,r,q) will
be determined by the distance from a given vertex to these planes after they
have been transformed with the inverse of the modelview matrix i.e. the
(s,t,,r,q) will be identical to the vertex coordinate (x,y,z,w) with respect to
the global origin (and not with respect to the origin of each local coordinate
system associated with each object in the scene).
After applying the pfGeoState I than override the pfGeoState in such a way that
pfTexGen will be enabled for each pfGeoSet that belongs to a pfGeode node in the
corresponding scene graph.
Using this approach I wonder whether the modelview matrix of each pfDCS node in
the scene graph will be included in the texture coordinate generation during the
scene graph traversal. Or will it be just the modelview matrix at the time the
_texState->apply() is done?
Any sample code would be welcome too!
Many thanks!
Rene
-- The code I am using is given below_texImage = new pfTexture; _texState = new pfGeoState; _texEnv = new pfTexEnv; _texGen = new pfTexGen;
_texGen->setMode(PF_S, PFTG_EYE_LINEAR); _texGen->setMode(PF_T, PFTG_EYE_LINEAR); _texGen->setMode(PF_R, PFTG_EYE_LINEAR); _texGen->setMode(PF_Q, PFTG_EYE_LINEAR);
_texGen->setPlane(PF_S, 1.0f, 0.0f, 0.0f, 0.0f); _texGen->setPlane(PF_T, 0.0f, 1.0f, 0.0f, 0.0f); _texGen->setPlane(PF_R, 0.0f, 0.0f, 1.0f, 0.0f); _texGen->setPlane(PF_Q, 0.0f, 0.0f, 0.0f, 1.0f);
_texState->setAttr(PFSTATE_TEXTURE, _texImage); _texState->setAttr(PFSTATE_TEXENV, _texEnv); _texState->setAttr(PFSTATE_TEXGEN, _texGen); _texState->setMode(PFSTATE_ENTEXGEN, PF_ON); _texState->setMode(PFSTATE_ENTEXTURE, PF_ON);
_texState->apply();
// Enable the override by the current GeoState i.e. the current GeoState // modes and attributes will override the corresponding local GeoStates // during the scene graph traversal. pfOverride(PFSTATE_ENTEXTURE| PFSTATE_ENTEXGEN| PFSTATE_TEXTURE| PF_ON);
This archive was generated by hypermail 2.0b2 on Thu Nov 04 1999 - 16:48:53 PST