- { Textur }
- glActiveTextureARB(GL_TEXTURE1_ARB);
- glEnable(GL_TEXTURE_2D);
- glBindTexture(GL_TEXTURE_2D,FTex2);
- { Bumpmap }
- glActiveTextureARB(GL_TEXTURE0_ARB);
- glEnable(GL_TEXTURE_2D);
- glBindTexture(GL_TEXTURE_2D,FTex1);
- glCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV, 1);
- glEnable(GL_REGISTER_COMBINERS_NV);
- glCombinerInputNV(
- GL_COMBINER0_NV, //Combiner, der benutzt wird
- GL_RGB,
- GL_VARIABLE_A_NV, //Variable beim Combiner
- GL_TEXTURE1_ARB, //Wert: Bumpmap Textur
- GL_EXPAND_NORMAL_NV,
- GL_RGB
- );
- glCombinerInputNV(
- GL_COMBINER0_NV, //Combiner, der benutzt wird, wie oben
- GL_RGB,
- GL_VARIABLE_B_NV, // Variable beim Combiner
- GL_PRIMARY_COLOR_NV, //Wert: RGB Wert der Oberfläche
- GL_EXPAND_NORMAL_NV,
- GL_RGB
- );
- glCombinerOutputNV(
- GL_COMBINER0_NV,
- GL_RGB,
- GL_SPARE0_NV, // Output von A und B
- GL_DISCARD_NV, // Output von C und D
- GL_DISCARD_NV, // Summe von allen Variablen
- GL_NONE, // Skalierung
- GL_NONE, // Bias
- ByteBool(1), // Ja/Nein Output von A und B
- ByteBool(0), // Ja/Nein Output von C und D
- ByteBool(0) // Muxsum
- );
- glFinalCombinerInputNV(GL_VARIABLE_A_NV, GL_SPARE0_NV, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
- glFinalCombinerInputNV(GL_VARIABLE_B_NV, GL_TEXTURE0_ARB, GL_UNSIGNED_IDENTITY_NV, GL_RGB);
- glEnable(GL_LIGHTING);
- glEnable(GL_COLOR_MATERIAL); // funktioniert auch ohne aktivierung nicht wirklich
- light_position[0] := cos(GetTickCount/200)*2; //(cos(GetTickCount/200) + 1)/2 ;
- light_position[2] := 2;
- light_position[1] := sin(GetTickCount/300)*3; //(sin(GetTickCount/300) + 1)/2 ;
- light_color := Vector_Makef3(1,1,1);
- glEnable(GL_LIGHT0);
- glLightfv(GL_LIGHT0, GL_SPECULAR, @light_color[0]);
- glLightfv(GL_LIGHT0, GL_POSITION, @light_position[0]);
- glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.0);
- glBegin(GL_QUADS);
- glMultiTexCoord2dARB(GL_TEXTURE1_ARB,1,0);
- glMultiTexCoord2dARB(GL_TEXTURE0_ARB,1,0);
- glVertex3f(-1,1,0);
- glMultiTexCoord2dARB(GL_TEXTURE1_ARB,0,0);
- glMultiTexCoord2dARB(GL_TEXTURE0_ARB,0,0);
- glVertex3f(-1,-1,0);
- glMultiTexCoord2dARB(GL_TEXTURE1_ARB,0,1);
- glMultiTexCoord2dARB(GL_TEXTURE0_ARB,0,1);
- glVertex3f( 1,-1,0);
- glMultiTexCoord2dARB(GL_TEXTURE1_ARB,1,1);
- glMultiTexCoord2dARB(GL_TEXTURE0_ARB,1,1);
- glVertex3f(1,1,0);
- glEnd();