F
Furtano
Gast
Hallo,
ich habe massive Beleuchtungsfehler? bei meinem Spiel Schiffe versenken.
Mich stört die flackernde Wassertextur, das sieht man in dem Video (zweite Hälfte).
http://www.youtube.com/watch?v=xeS-RYFeGGo&feature=youtu.be
Wisst ihr woran das liegt?
Teil der main.cpp
ich habe massive Beleuchtungsfehler? bei meinem Spiel Schiffe versenken.
Mich stört die flackernde Wassertextur, das sieht man in dem Video (zweite Hälfte).
http://www.youtube.com/watch?v=xeS-RYFeGGo&feature=youtu.be
Wisst ihr woran das liegt?
Teil der main.cpp
PHP:
void init(void)
{ // Zufallszeit
srand (time(NULL));
glEnable(GL_CULL_FACE);
//Ship chris(5);
//chris.setIsEnemy(true);
//cout << chris.getIsEnemy();
GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
GLfloat mat_shininess[] = { 1.0 };
// LICHT 1
GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
GLfloat light_ambient[] = {1, 1, 1, 1 }; // Farbe
// LICHT 2
GLfloat light_position2[] = { 1.0, -6.0, 10.0, 0.0 };
GLfloat light_ambient2[] = {1, 1, 1, 1 }; // Farbe
// LICHT 3
GLfloat light_position3[] = { 1.0, -16.0, 10.0, 0.0 };
GLfloat light_ambient3[] = {0.1, 0.1, 0.1, 0.1 }; // Farbe
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_SMOOTH);
glEnable(GL_DEPTH_TEST);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
// Beleuchtung
glLightfv(GL_LIGHT1, GL_DIFFUSE, light_ambient);
glLightfv(GL_LIGHT1, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT1, GL_POSITION, light_position);
// Beleuchtung
glLightfv(GL_LIGHT3, GL_DIFFUSE, light_ambient3);
glLightfv(GL_LIGHT3, GL_AMBIENT, light_ambient3);
glLightfv(GL_LIGHT3, GL_POSITION, light_position3);
// Beleuchtung
glLightfv(GL_LIGHT2, GL_DIFFUSE, light_ambient2);
glLightfv(GL_LIGHT2, GL_POSITION, light_position2);
glEnable(GL_LIGHTING);
glEnable(GL_NORMALIZE); // Normalisierung
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHT1);
glEnable(GL_LIGHT2);
glEnable(GL_LIGHT3);
/**
SCHIFFSMODELLE
**/
schiff10modell.Load("models/textured.3ds");
schiff20modell.Load("models/kreuzer.3ds");
schiff30modell.Load("models/zerstoerer.3ds");
schiff40modell.Load("models/uboot.3ds");
waterPlate = glmReadOBJ("models/wasser.obj");
waterTexture = gltxReadRGB("models/wassertextur.rgb");
// wie ist die Textur im Speicher organisiert (Zeilen)
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
// opengl generiert einen Namen für die Textur und speichert sie
// in der Variablen 'texname'
glGenTextures(6, texName);
// Textur setzen / binden
glBindTexture(GL_TEXTURE_2D, texName[0]);
// textureigenschaften festlegen
// Textur in S = x-Richtung wiederholen
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
// Textur in T = y-Richtung wiederholen
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
// Interpolation für Pixelvergrößerung festlegen
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
// Interpolation für Pixelvergrkleinerung festlegen
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
// Textur setzen
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, waterTexture->width, waterTexture->height,
0, GL_RGB, GL_UNSIGNED_BYTE, waterTexture->data);
schiffeGegner = gegner.placeShipsRandomly(feldGegner);
cout << "\nGEGNERPOSITIONEN ZUM CHEATEN :)";
feldGegner.debugPrintField();
}
Zuletzt bearbeitet von einem Moderator: