diff --git a/data/default.fs b/data/default.fs index 828d226..9a11837 100644 --- a/data/default.fs +++ b/data/default.fs @@ -1,8 +1,8 @@ #version 330 core -in vec3 fragColor; -in vec3 fragNormal; +//in vec3 fragColor; // NOTE: removing this line fails to link program... somehow? in vec3 fragVertex; +in vec3 fragNormal; in vec2 fragUV; out vec4 color; diff --git a/data/default.vs b/data/default.vs index b8911dd..dc2921d 100644 --- a/data/default.vs +++ b/data/default.vs @@ -1,13 +1,11 @@ #version 330 core layout (location = 0) in vec3 vertexPosition_modelspace; -layout (location = 1) in vec3 vertexColor; -layout (location = 2) in vec3 normal; -layout (location = 3) in vec3 texCoord; +layout (location = 1) in vec3 normal; +layout (location = 2) in vec3 texCoord; -out vec3 fragColor; -out vec3 fragNormal; out vec3 fragVertex; +out vec3 fragNormal; out vec2 fragUV; uniform mat4 model; @@ -16,7 +14,6 @@ uniform mat4 projection; void main() { - fragColor = vertexColor; fragNormal = normal; fragVertex = vertexPosition_modelspace; fragUV = texCoord.st; diff --git a/src/render_group.cpp b/src/render_group.cpp index 354f176..2edc3a6 100644 --- a/src/render_group.cpp +++ b/src/render_group.cpp @@ -199,24 +199,11 @@ rgDraw(render_group* rg, glm::mat4 model_matrix, ro->vertex_buffer.buffer); } - // 2nd attribute buffer : colors - if (ro->color_buffer.buffer) - { - glEnableVertexAttribArray(1); - glBindBuffer(GL_ARRAY_BUFFER, ro->color_buffer.buffer_id); - glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, (void*) 0); - - if (update_color_data) { - glBufferSubData(GL_ARRAY_BUFFER, 0, ro->color_buffer.buffer_len * sizeof(GLfloat), - ro->color_buffer.buffer); - } - } - - // 3rd attribute buffer: normals + // 2rd attribute buffer: normals if (rg->use_normals) { - glEnableVertexAttribArray(2); + glEnableVertexAttribArray(1); glBindBuffer(GL_ARRAY_BUFFER, ro->normal_buffer.buffer_id); - glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, 0, (void*) 0); + glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, (void*) 0); glm::mat3 normal_matrix = glm::transpose(glm::inverse(glm::mat3(model_matrix))); glUniformMatrix3fv(rg->shader.normal_matrix_id, 1, GL_FALSE, &normal_matrix[0][0]); @@ -236,11 +223,11 @@ rgDraw(render_group* rg, glm::mat4 model_matrix, } } - // 4th attribute buffer: UV coordinates + // 3rd attribute buffer: UV coordinates if (ro->use_texture) { - glEnableVertexAttribArray(3); + glEnableVertexAttribArray(2); glBindBuffer(GL_ARRAY_BUFFER, ro->uv_buffer.buffer_id); - glVertexAttribPointer(3, 3, GL_FLOAT, GL_FALSE, 0, (void*) 0); + glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, 0, (void*) 0); glBindTexture(GL_TEXTURE_2D, ro->tex_id); glUniform1i(rg->shader.sampler_id, 0); @@ -260,12 +247,10 @@ rgDraw(render_group* rg, glm::mat4 model_matrix, // cleanup glDisableVertexAttribArray(0); - if (ro->color_buffer.buffer) - glDisableVertexAttribArray(1); if (rg->use_normals) - glDisableVertexAttribArray(2); + glDisableVertexAttribArray(1); if (ro->use_texture) - glDisableVertexAttribArray(3); + glDisableVertexAttribArray(2); glUseProgram(0); } @@ -301,8 +286,6 @@ allocateRenderObject(uint buffer_len, uint index_len) ro->vertex_buffer.buffer_len = buffer_len; ro->normal_buffer.buffer = UTIL_ALLOC(buffer_len, GLfloat); ro->normal_buffer.buffer_len = buffer_len; - ro->color_buffer.buffer = UTIL_ALLOC(buffer_len, GLfloat); - ro->color_buffer.buffer_len = buffer_len; ro->uv_buffer.buffer = UTIL_ALLOC(buffer_len, GLfloat); ro->uv_buffer.buffer_len = buffer_len; @@ -313,7 +296,6 @@ allocateRenderObject(uint buffer_len, uint index_len) if (ro->vertex_buffer.buffer == nullptr || ro->normal_buffer.buffer == nullptr || - ro->color_buffer.buffer == nullptr || ((index_len > 0) && (ro->vertex_buffer.buffer == nullptr))) { freeRenderObject(ro); @@ -334,7 +316,6 @@ freeRenderObject(render_object* ro) glDeleteTextures(1, &ro->tex_id); utilSafeFree(ro->vertex_buffer.buffer); utilSafeFree(ro->normal_buffer.buffer); - utilSafeFree(ro->color_buffer.buffer); utilSafeFree(ro->uv_buffer.buffer); utilSafeFree(ro->index_buffer.buffer); utilSafeFree(ro); @@ -345,12 +326,11 @@ convertMeshInfo(meMeshInfo* mesh, render_object* ro, bool use_normals, bool use_ { uint vertex_buf_len = mesh->num_vertices * 3; GLfloat* vertex_buf = ro->vertex_buffer.buffer; - GLfloat* color_buf = ro->color_buffer.buffer; GLfloat* normal_buf = ro->normal_buffer.buffer; GLfloat* uv_buf = ro->uv_buffer.buffer; uint* index_buf = ro->index_buffer.buffer; - if (!vertex_buf || !color_buf || !normal_buf || !index_buf) + if (!vertex_buf || !normal_buf || !index_buf) return false; // dump vertices, colors, normals, and texture coords into render_group buffers @@ -384,7 +364,6 @@ convertMeshInfo(meMeshInfo* mesh, render_object* ro, bool use_normals, bool use_ } } - color_buf[i] = mesh->diffuse_color[vertex_prop_index]; vertex_prop_index++; if (vertex_prop_index == 3) { @@ -398,7 +377,6 @@ convertMeshInfo(meMeshInfo* mesh, render_object* ro, bool use_normals, bool use_ index_buf[i] = mesh->indices[i]; rgBufferData(&ro->vertex_buffer, GL_DYNAMIC_DRAW, GL_ARRAY_BUFFER); - rgBufferData(&ro->color_buffer, GL_STATIC_DRAW, GL_ARRAY_BUFFER); if (use_normals) rgBufferData(&ro->normal_buffer, GL_STATIC_DRAW, GL_ARRAY_BUFFER); if (use_texture) diff --git a/src/render_group.h b/src/render_group.h index 75c4e68..f6ab8d0 100644 --- a/src/render_group.h +++ b/src/render_group.h @@ -45,7 +45,6 @@ struct render_object gl_buffer vertex_buffer; gl_buffer normal_buffer; - gl_buffer color_buffer; gl_buffer uv_buffer; gl_index_buffer index_buffer; }; diff --git a/src/renderer.cpp b/src/renderer.cpp index 0054678..60a692f 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -157,21 +157,15 @@ renCreateScene(render_state* rs, Entity* entities, uint32 entity_count) return false; gl_buffer& debug_vertex_buf = rs->debug_render_group->render_objects[0]->vertex_buffer; - gl_buffer& debug_color_buf = rs->debug_render_group->render_objects[0]->color_buffer; gl_buffer& debug_normal_buf = rs->debug_render_group->render_objects[0]->normal_buffer; for (uint i = 0; i < debug_buf_len; i += 3) { - debug_color_buf.buffer[i] = 1.f; - debug_color_buf.buffer[i + 1] = 0.f; - debug_color_buf.buffer[i + 2] = 0.f; - debug_normal_buf.buffer[i] = 0.f; debug_normal_buf.buffer[i + 1] = 0.f; debug_normal_buf.buffer[i + 2] = 1.f; } rgBufferData(&debug_vertex_buf, GL_DYNAMIC_DRAW, GL_ARRAY_BUFFER); - rgBufferData(&debug_color_buf, GL_STATIC_DRAW, GL_ARRAY_BUFFER); rgBufferData(&debug_normal_buf, GL_STATIC_DRAW, GL_ARRAY_BUFFER); return true; diff --git a/src/scene_loader.cpp b/src/scene_loader.cpp index 19935f4..e3128a8 100644 --- a/src/scene_loader.cpp +++ b/src/scene_loader.cpp @@ -176,7 +176,6 @@ slCreateHexRenderGroups(hexgrid& hg, render_state* rs) rgBufferData(&ro->vertex_buffer, GL_DYNAMIC_DRAW, GL_ARRAY_BUFFER); rgBufferData(&ro->normal_buffer, GL_STATIC_DRAW, GL_ARRAY_BUFFER); - rgBufferData(&ro->color_buffer, GL_DYNAMIC_DRAW, GL_ARRAY_BUFFER); rgBufferData(&ro->uv_buffer, GL_DYNAMIC_DRAW, GL_ARRAY_BUFFER); ro = rg_lines->render_objects[0]; @@ -185,7 +184,6 @@ slCreateHexRenderGroups(hexgrid& hg, render_state* rs) rgBufferData(&ro->vertex_buffer, GL_DYNAMIC_DRAW, GL_ARRAY_BUFFER); rgBufferData(&ro->normal_buffer, GL_STATIC_DRAW, GL_ARRAY_BUFFER); - rgBufferData(&ro->color_buffer, GL_DYNAMIC_DRAW, GL_ARRAY_BUFFER); rgBufferData(&ro->uv_buffer, GL_DYNAMIC_DRAW, GL_ARRAY_BUFFER); return true; @@ -350,16 +348,11 @@ populateLineGLBuffers(hexgrid& hg, render_group* rg_lines) { render_object* ro = rg_lines->render_objects[0]; gl_buffer& vbuf = ro->vertex_buffer; - gl_buffer& cbuf = ro->color_buffer; gl_buffer& normal_buf = ro->normal_buffer; gl_buffer& uv_buf = ro->uv_buffer; assert((hg.hex_array->size() * 6 * 2 * 3) == vbuf.buffer_len); - // fill line color buffer with black - for (uint i = 0; i < cbuf.buffer_len; i++) - cbuf.buffer[i] = 0.f; - // cheat at vertex normals since all hexes lay flat on z-axis for (uint i = 0; i < normal_buf.buffer_len; i += 3) { normal_buf.buffer[i] = 0.f;