I am currently working on a 3D game engine with OpenGL 4 and C ++. The problem is that, I don't know why, my geometry is not well rendered, except for the primitives.

On the right, you can see a cube, it is rendered as expected.

In the center you can see a mesh that I created in Blender, it is not rendered as expected, on the left you can see my mesh rendered as expected BUT I have adjusted the mesh ; Z scale (and I shouldn't)

So, to be short: my stitches are not well proportioned.

I checked the coordinates of each vertex in blender and my project: they are the same.

I don't know if there is a problem with my dies, the only thing I know is that this problem only appears on the Z axis (Z is in place ).

Everything makes me think that somewhere a number is rounded but I do not see where

I leave some code here, which could be useful:

Mesh rendering code:

```
void RD_Mesh::render(RenderMode rndrMode) {
if (rndrMode == RenderMode::Filled) {
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
}
else {
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
}
//m_shader->useShader();
m_mat->BindMaterial();
glm::mat4 mdl = glm::mat4(1.0f); //Declaring Model Matrix
glm::mat4 translate = glm::mat4(1.0f);
glm::mat4 scale = glm::mat4(1.0f);
glm::mat4 rotation = glm::mat4(1.0f);
//Position
translate = glm::translate(translate, glm::vec3(m_position.getX(), m_position.getY(), m_position.getZ()));
//Scale
scale = glm::scale(scale, glm::vec3(m_scale.getX(), m_scale.getY(), m_scale.getZ()));
//Rotation
rotation = glm::rotate(rotation, glm::radians(m_rotation.getX()), glm::vec3(1.0f, 0.0f, 0.0f));
rotation = glm::rotate(rotation, glm::radians(m_rotation.getY()), glm::vec3(0.0f, 1.0f, 0.0f));
rotation = glm::rotate(rotation, glm::radians(m_rotation.getZ()), glm::vec3(0.0f, 0.0f, 1.0f));
mdl = translate * rotation * scale;
m_shader->SetMatrix("model", mdl);
glBindVertexArray(VAO);
glDrawElements(GL_TRIANGLES, RAWindices.size(), GL_UNSIGNED_INT, 0);
glBindVertexArray(0);
}
```

Camera code:

```
void RD_Camera::SetupCamera() {
projection = glm::perspective(glm::radians(FOV), (float)m_rndr->getWindowWidth() / m_rndr->getWindowHeigh(), m_near, m_far); //Projection matrix
view = glm::lookAt(glm::vec3(m_pos.getX(), m_pos.getY(), m_pos.getZ()), glm::vec3(m_subject.getX(), m_subject.getY(), m_subject.getZ()), glm::vec3(0.0f, 0.0f, 1.0f)); //View matrix
m_rndr->GetCurrentShader()->SetMatrix("projection", projection);
m_rndr->GetCurrentShader()->SetMatrix("view", view);
m_rndr->GetCurrentShader()->SetVec3("CamPos", m_pos);
}
```

My Vertex Shader:

```
#version 450 core
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec3 aNormal;
out vec3 Normal;
out vec3 FragPos;
uniform mat4 projection;
uniform mat4 view;
uniform mat4 model;
void main()
{
gl_Position = projection * view * model * vec4(aPos, 1.0);
Normal = normalize(mat3(transpose(inverse(model))) * aNormal);
FragPos = vec3(model * vec4(aPos, 1.0));
}
```

Ps: I am sorry for my English, it is not my mother tongue.