diff --git a/include/Nazara/Utility/Enums.hpp b/include/Nazara/Utility/Enums.hpp index 52bc9cba6..25e09c10a 100644 --- a/include/Nazara/Utility/Enums.hpp +++ b/include/Nazara/Utility/Enums.hpp @@ -221,12 +221,14 @@ enum nzVertexComponent { nzVertexComponent_Unused = -1, + // Nous nous limitons à 16 composants de sommets car c'est le minimum supporté par le GPU nzVertexComponent_InstanceData0, nzVertexComponent_InstanceData1, nzVertexComponent_InstanceData2, nzVertexComponent_InstanceData3, nzVertexComponent_InstanceData4, nzVertexComponent_InstanceData5, + nzVertexComponent_Color, nzVertexComponent_Normal, nzVertexComponent_Position, nzVertexComponent_Tangent, @@ -236,14 +238,13 @@ enum nzVertexComponent nzVertexComponent_Userdata2, nzVertexComponent_Userdata3, nzVertexComponent_Userdata4, - nzVertexComponent_Userdata5, nzVertexComponent_FirstInstanceData = nzVertexComponent_InstanceData0, - nzVertexComponent_FirstVertexData = nzVertexComponent_Normal, + nzVertexComponent_FirstVertexData = nzVertexComponent_Color, nzVertexComponent_LastInstanceData = nzVertexComponent_InstanceData5, - nzVertexComponent_LastVertexData = nzVertexComponent_Userdata5, + nzVertexComponent_LastVertexData = nzVertexComponent_Userdata4, - nzVertexComponent_Max = nzVertexComponent_Userdata5 + nzVertexComponent_Max = nzVertexComponent_Userdata4 }; enum nzVertexLayout diff --git a/src/Nazara/Renderer/OpenGL.cpp b/src/Nazara/Renderer/OpenGL.cpp index a34dce25b..476800edf 100644 --- a/src/Nazara/Renderer/OpenGL.cpp +++ b/src/Nazara/Renderer/OpenGL.cpp @@ -2104,16 +2104,16 @@ nzUInt8 NzOpenGL::VertexComponentIndex[] = 13, // nzVertexComponent_InstanceData3 14, // nzVertexComponent_InstanceData4 15, // nzVertexComponent_InstanceData5 + 4, // nzVertexComponent_Color 2, // nzVertexComponent_Normal 0, // nzVertexComponent_Position 3, // nzVertexComponent_Tangent 1, // nzVertexComponent_TexCoord - 4, // nzVertexComponent_Userdata0 - 5, // nzVertexComponent_Userdata1 - 6, // nzVertexComponent_Userdata2 - 7, // nzVertexComponent_Userdata3 - 8, // nzVertexComponent_Userdata4 - 9 // nzVertexComponent_Userdata5 + 5, // nzVertexComponent_Userdata0 + 6, // nzVertexComponent_Userdata1 + 7, // nzVertexComponent_Userdata2 + 8, // nzVertexComponent_Userdata3 + 9 // nzVertexComponent_Userdata4 }; static_assert(nzVertexComponent_Max+1 == 16, "Attribute index array is incomplete"); diff --git a/src/Nazara/Renderer/Shader.cpp b/src/Nazara/Renderer/Shader.cpp index 699e36442..7729c1035 100644 --- a/src/Nazara/Renderer/Shader.cpp +++ b/src/Nazara/Renderer/Shader.cpp @@ -155,6 +155,7 @@ bool NzShader::Create() glBindAttribLocation(m_program, NzOpenGL::VertexComponentIndex[nzVertexComponent_InstanceData3], "InstanceData3"); glBindAttribLocation(m_program, NzOpenGL::VertexComponentIndex[nzVertexComponent_InstanceData4], "InstanceData4"); glBindAttribLocation(m_program, NzOpenGL::VertexComponentIndex[nzVertexComponent_InstanceData5], "InstanceData5"); + glBindAttribLocation(m_program, NzOpenGL::VertexComponentIndex[nzVertexComponent_Color], "VertexColor"); glBindAttribLocation(m_program, NzOpenGL::VertexComponentIndex[nzVertexComponent_Normal], "VertexNormal"); glBindAttribLocation(m_program, NzOpenGL::VertexComponentIndex[nzVertexComponent_Position], "VertexPosition"); glBindAttribLocation(m_program, NzOpenGL::VertexComponentIndex[nzVertexComponent_Tangent], "VertexTangent"); @@ -164,7 +165,6 @@ bool NzShader::Create() glBindAttribLocation(m_program, NzOpenGL::VertexComponentIndex[nzVertexComponent_Userdata2], "VertexUserdata2"); glBindAttribLocation(m_program, NzOpenGL::VertexComponentIndex[nzVertexComponent_Userdata3], "VertexUserdata3"); glBindAttribLocation(m_program, NzOpenGL::VertexComponentIndex[nzVertexComponent_Userdata4], "VertexUserdata4"); - glBindAttribLocation(m_program, NzOpenGL::VertexComponentIndex[nzVertexComponent_Userdata5], "VertexUserdata5"); if (NzRenderer::HasCapability(nzRendererCap_MultipleRenderTargets)) {