EgtGraphics 1.6j1 :
- aggiunto TextureMgr per gestire le textures caricate - fatte modifiche per visualizzare gli oggetti con le textures (solo opachi).
This commit is contained in:
+13
-19
@@ -415,38 +415,32 @@ Scene::DrawGeoObj( const IGdbIterator& iIter, int nPass, const MdStMkCol& siObj)
|
||||
}
|
||||
|
||||
// eventuale texture
|
||||
string sTxtName ;
|
||||
if ( iIter.GetInfo( "!TNA", sTxtName)) {
|
||||
|
||||
string sTxrName ;
|
||||
if ( iIter.GetTextureName( sTxrName)) {
|
||||
// rendo corrente la texture
|
||||
GLuint texName ;
|
||||
double dTextDimS ;
|
||||
double dTextDimT ;
|
||||
if ( m_TextMgr.GetTextureData( sTxtName, texName, dTextDimS, dTextDimT)) {
|
||||
if ( m_TextMgr.GetTextureData( sTxrName, texName, dTextDimS, dTextDimT)) {
|
||||
glEnable( GL_TEXTURE_2D) ;
|
||||
glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE) ;
|
||||
glBindTexture( GL_TEXTURE_2D, texName) ;
|
||||
}
|
||||
|
||||
// recupero il riferimento dell' oggetto
|
||||
//Frame3d frRef ;
|
||||
//iIter.GetGlobFrame( frRef) ;
|
||||
// recupero il riferimento della texture
|
||||
Frame3d frTxt ;
|
||||
iIter.GetInfo( "!TFR", frTxt) ;
|
||||
//frTxt.ToLoc( frRef) ;
|
||||
Frame3d frTxr ;
|
||||
iIter.GetTextureFrame( frTxr) ;
|
||||
// creo piano per la S
|
||||
GLfloat PlaneS[4] ;
|
||||
PlaneS[0] = GLfloat( frTxt.VersX().x / dTextDimS) ;
|
||||
PlaneS[1] = GLfloat( frTxt.VersX().y / dTextDimS) ;
|
||||
PlaneS[2] = GLfloat( frTxt.VersX().z / dTextDimS) ;
|
||||
PlaneS[3] = GLfloat( - frTxt.VersX() * ( frTxt.Orig() - ORIG) / dTextDimS) ;
|
||||
PlaneS[0] = GLfloat( frTxr.VersX().x / dTextDimS) ;
|
||||
PlaneS[1] = GLfloat( frTxr.VersX().y / dTextDimS) ;
|
||||
PlaneS[2] = GLfloat( frTxr.VersX().z / dTextDimS) ;
|
||||
PlaneS[3] = GLfloat( - frTxr.VersX() * ( frTxr.Orig() - ORIG) / dTextDimS) ;
|
||||
// creo piano per la T
|
||||
GLfloat PlaneT[4] ;
|
||||
PlaneT[0] = GLfloat( frTxt.VersY().x / dTextDimT) ;
|
||||
PlaneT[1] = GLfloat( frTxt.VersY().y / dTextDimT) ;
|
||||
PlaneT[2] = GLfloat( frTxt.VersY().z / dTextDimT) ;
|
||||
PlaneT[3] = GLfloat( - frTxt.VersY() * ( frTxt.Orig() - ORIG) / dTextDimT) ;
|
||||
PlaneT[0] = GLfloat( frTxr.VersY().x / dTextDimT) ;
|
||||
PlaneT[1] = GLfloat( frTxr.VersY().y / dTextDimT) ;
|
||||
PlaneT[2] = GLfloat( frTxr.VersY().z / dTextDimT) ;
|
||||
PlaneT[3] = GLfloat( - frTxr.VersY() * ( frTxr.Orig() - ORIG) / dTextDimT) ;
|
||||
// setto generazione automatica coordinate S e T per texture
|
||||
glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR) ;
|
||||
glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR) ;
|
||||
|
||||
Reference in New Issue
Block a user