Rotating multi-textured cube + alpha fix.
This commit is contained in:
BIN
assets/textures/multi/3.png
Normal file
BIN
assets/textures/multi/3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
BIN
assets/textures/multi/4.png
Normal file
BIN
assets/textures/multi/4.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.1 KiB |
BIN
assets/textures/multi/6.png
Normal file
BIN
assets/textures/multi/6.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.1 KiB |
@@ -18,7 +18,9 @@ void Cube::pre_render() {
|
||||
moby->velAngle = moby->lAngle();
|
||||
velAngle = rAngle();
|
||||
}
|
||||
|
||||
angle.x = angle.x + 18*engine->frameDelta;
|
||||
angle.y = angle.y + 18*engine->frameDelta;
|
||||
angle.z = angle.z + 18*engine->frameDelta;
|
||||
}
|
||||
|
||||
void Cube::update(float elapsed) {
|
||||
|
@@ -212,8 +212,22 @@ void Entity::render() {
|
||||
glBindBuffer(GL_ARRAY_BUFFER, getGeometry()->tbo);
|
||||
glTexCoordPointer(2, GL_FLOAT, 0, nullptr);
|
||||
}
|
||||
//Mode for every other unit.
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD);
|
||||
|
||||
|
||||
//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_COMBINE);
|
||||
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_ADD); //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);
|
||||
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_ADD); //ALPHA
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA, GL_TEXTURE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA, GL_SRC_ALPHA);
|
||||
i++;
|
||||
|
||||
}
|
||||
|
@@ -3,7 +3,7 @@
|
||||
#include <engine/engine.h>
|
||||
|
||||
void Texture::load(const char* file, bool storeOnTextureList) {
|
||||
id = SOIL_load_OGL_texture(file, SOIL_LOAD_RGB, SOIL_CREATE_NEW_ID, SOIL_FLAG_INVERT_Y);
|
||||
id = SOIL_load_OGL_texture(file, SOIL_LOAD_RGBA, SOIL_CREATE_NEW_ID, SOIL_FLAG_INVERT_Y);
|
||||
//If we can't load the missing texture
|
||||
if (file == "assets/textures/missing.png" && id == 0) {
|
||||
engine->setError(ENGINE_ERROR_CODE::TEXTURE_NOT_FOUND, true);
|
||||
|
Reference in New Issue
Block a user