Shit is broke :(

This commit is contained in:
2024-04-06 19:42:29 -04:00
parent 23c6e591ac
commit 396a129d39
7 changed files with 30 additions and 39 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -55,8 +55,8 @@ void Engine::initGL()
glEnable(GL_CULL_FACE);
glEnable(GL_VERTEX_ARRAY);
glEnable(GL_LIGHTING);
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0.05f); //Anything with an opacity of less than 5% gets thrown out
//glEnable(GL_ALPHA_TEST);
//glAlphaFunc(GL_GREATER, 0.05f); //Anything with an opacity of less than 5% gets thrown out
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
//glEnable(GL_LIGHT0);
//glEnable(GL_COLOR_MATERIAL);
@@ -70,7 +70,7 @@ void Engine::initGL()
engine->window->setResizable(false);
engine->initGL();
engine->loadConfig();
engine->world->setAmbientLightColor(1.0f, 1.0f, 1.0f, 1.0f);
engine->world->setAmbientLightColor(2.0f, 2.0f, 2.0f, 0.5f);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
//glDisable(GL_CULL_FACE);

View File

@@ -154,7 +154,6 @@ void Entity::render() {
glClientActiveTexture(GL_TEXTURE0);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisable(GL_TEXTURE_2D);
glDisable(GL_BLEND);
}
if (multiTexture) {
@@ -172,6 +171,7 @@ void Entity::render() {
glActiveTexture(GL_TEXTURE0);
glClientActiveTexture(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glBindTexture(GL_TEXTURE_2D, multi->id);
@@ -185,8 +185,10 @@ void Entity::render() {
glBindBuffer(GL_ARRAY_BUFFER, getGeometry()->tbo);
glTexCoordPointer(2, GL_FLOAT, 0, nullptr);
}
//Mode for unit 0.
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
//glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
//glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
int i = 0;
for(auto& texture : multi->multi) {
@@ -196,8 +198,6 @@ void Entity::render() {
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glBindTexture(GL_TEXTURE_2D, texture.id);
if (!engine->useVBO) {
glVertexPointer(3, GL_FLOAT, sizeof(Vertex), &getGeometry()->vertices[0].x);
glTexCoordPointer(2, GL_FLOAT, sizeof(TextureCoordinate), &getGeometry()->texCoords[0].x);
@@ -207,37 +207,26 @@ void Entity::render() {
glBindBuffer(GL_ARRAY_BUFFER, getGeometry()->tbo);
glTexCoordPointer(2, GL_FLOAT, 0, nullptr);
}
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); // Combine RGB and alpha
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE); // Modulate RGB
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
//Mode for every other unit. We basically "add" each subsequent texture to the previous one like a stack.
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_INTERPOLATE); // Interpolate ALPHA with ALPHA
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_ALPHA, GL_CONSTANT);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA, GL_SRC_ALPHA);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_ALPHA, GL_SRC_ALPHA);
GLfloat fullBright[4] = {1.0f, 1.0f, 1.0f, 1.0f};
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, fullBright);
glBindTexture(GL_TEXTURE_2D, texture.id);
i++;
}
//Put on the last one. Which is the ambient light.
GLuint ambientLightTexture;
glGenTextures(1, &ambientLightTexture);
GLfloat ambientLight[4] = {
1.0f - engine->world->getAmbientLightColor().x,
1.0f - engine->world->getAmbientLightColor().y,
1.0f - engine->world->getAmbientLightColor().z,
engine->world->getAmbientLightColor().w
};
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_FLOAT, &ambientLight);
glActiveTexture(GL_TEXTURE1 + i);
glClientActiveTexture(GL_TEXTURE1 + i);
glEnable(GL_TEXTURE_2D);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glBindTexture(GL_TEXTURE_2D, ambientLightTexture);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
if (!engine->useVBO) {
glVertexPointer(3, GL_FLOAT, sizeof(Vertex), &getGeometry()->vertices[0].x);
glTexCoordPointer(2, GL_FLOAT, sizeof(TextureCoordinate), &getGeometry()->texCoords[0].x);
@@ -247,7 +236,9 @@ void Entity::render() {
glBindBuffer(GL_ARRAY_BUFFER, getGeometry()->tbo);
glTexCoordPointer(2, GL_FLOAT, 0, nullptr);
}
i++;
glEnable(GL_BLEND);
//i++;
//Draw code
if (!engine->useVBO)
glDrawElements(GL_TRIANGLES, getGeometry()->indices.size(), GL_UNSIGNED_INT, &getGeometry()->indices[0]);
@@ -265,7 +256,8 @@ void Entity::render() {
glBindBuffer(GL_ARRAY_BUFFER, 0);
}
glDeleteTextures(1, &ambientLightTexture);
glDisable(GL_BLEND);
for (int j = 0; j <= i; j++) {
glActiveTexture(GL_TEXTURE1 + j);
glDisable(GL_TEXTURE_2D);
@@ -273,11 +265,10 @@ void Entity::render() {
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}
glActiveTexture(GL_TEXTURE0);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
//glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glDisable(GL_TEXTURE_2D);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisable(GL_BLEND);
}
if (engine->debug) {
@@ -290,7 +281,7 @@ void Entity::render() {
if (engine->world->getGlobalFogMode() != NULL)
glEnable(GL_FOG);
glPopMatrix(); // Pop the transformation matrix
glPopMatrix();
}
bool Entity::isCollidingWith(Entity *entity) {