EgtGraphics 1.5d2 :
- prima implementazione dello shading.
This commit is contained in:
+8
-3
@@ -155,7 +155,8 @@ ObjNewGraphics::StartTriangles( int nNum)
|
||||
return false ;
|
||||
}
|
||||
glBindBuffer( GL_ARRAY_BUFFER, nVboId) ;
|
||||
glBufferData( GL_ARRAY_BUFFER, 3 * nNum * SIZEV3F, NULL, GL_STATIC_DRAW) ;
|
||||
// 3 float per le coordinate e 3 per la normale
|
||||
glBufferData( GL_ARRAY_BUFFER, 6 * nNum * SIZEV3F, NULL, GL_STATIC_DRAW) ;
|
||||
// aggiungo i dati in lista
|
||||
AddVerts( GL_TRIANGLES, 0, nVaoId, nVboId) ;
|
||||
// dichiaro modo triangoli
|
||||
@@ -177,7 +178,9 @@ ObjNewGraphics::AddTriangle( const Triangle3d& Tria)
|
||||
// emetto i vertici del triangolo
|
||||
for ( int i = 0 ; i < 3 ; ++ i) {
|
||||
Vert3f v3V( Tria.GetP( i)) ;
|
||||
glBufferSubData( GL_ARRAY_BUFFER, nCount * SIZEV3F, SIZEV3F, &v3V) ;
|
||||
glBufferSubData( GL_ARRAY_BUFFER, 2 * nCount * SIZEV3F, SIZEV3F, &v3V) ;
|
||||
Vert3f v3N( Tria.GetN()) ;
|
||||
glBufferSubData( GL_ARRAY_BUFFER, ( 2 * nCount + 1) * SIZEV3F, SIZEV3F, &v3N) ;
|
||||
++ nCount ;
|
||||
}
|
||||
// aggiorno il conteggio
|
||||
@@ -195,8 +198,10 @@ ObjNewGraphics::EndTriangles( void)
|
||||
if ( m_nCurrMode != GL_TRIANGLES)
|
||||
return false ;
|
||||
// termino il modo triangoli
|
||||
glVertexPointer( 3, GL_FLOAT, 0, ((void*)(0))) ;
|
||||
glVertexPointer( 3, GL_FLOAT, 2 * SIZEV3F, ((void*)(0))) ;
|
||||
glEnableClientState( GL_VERTEX_ARRAY) ;
|
||||
glNormalPointer( GL_FLOAT, 2 * SIZEV3F, ((void*)( 1 * SIZEV3F))) ;
|
||||
glEnableClientState( GL_NORMAL_ARRAY) ;
|
||||
glBindVertexArray( 0) ;
|
||||
// dichiaro modalità standard
|
||||
m_nCurrMode = GL_NONE ;
|
||||
|
||||
Reference in New Issue
Block a user