Condividi tramite


Conversione di definizioni, associazioni e insiemi

OpenGL non dispone di tabelle di definizioni archiviate; non è possibile definire modelli di illuminazione, materiale, trame, stili di linea o modelli come oggetti separati come è possibile in IRIS GL. Pertanto OpenGL non ha equivalenti diretti alle seguenti funzioni IRIS GL:

  • Imdef e Imbind
  • tevdef e tevbind
  • textdef e textbind
  • definestyle e setstyle
  • definisci schema e imposta il schema

È possibile usare gli elenchi di visualizzazione OpenGL per simulare il meccanismo def/bind IRIS GL. Ad esempio, ecco una definizione di materiale in IRIS GL:

float mat() = { 
    AMBIENT, .1, .1, .1, 
    DIFFUSE, 0, .369, .165, 
    SPECULAR, .5, .5, .5, 
    SHININESS, 10, 
    LMNULL 
}; 
lmdef(DEFMATERIAL, 1, 0, mat); 
lmbind(MATERIAL, 1);

L'esempio di codice OpenGL seguente definisce lo stesso materiale in un elenco di visualizzazione a cui fa riferimento il numero di elenco definito da MYMATERIAL.

#define MYMATERIAL 10 
 
GLfloat        mat_amb[] = {.1, .1, .1, 1.0}; 
GLfloat        mat_dif[] = {0, .369, .165, 1.0}; 
GLfloat        mat_spec[] = {.5, .5, .5, 1.0}; 
 
glNewList(MYMATERIAL, GL_COMPILE); 
    glMaterialfv(GL_FRONT, GL_AMBIENT, mat_amb); 
    glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_dif); 
    glMaterialfv(GL_FRONT, GL_SHININESS, 10); 
glEndList(); 
 
glCallList( MYMATERIAL );