feat(renderer): backface culling
This commit is contained in:
parent
ac89dea966
commit
23ac7ee634
|
@ -2,42 +2,43 @@
|
|||
|
||||
static float CUBE_VERTICES[] = {
|
||||
// positions // normals // texture coords
|
||||
-0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f,
|
||||
0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f,
|
||||
0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f,
|
||||
0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f,
|
||||
-0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f,
|
||||
-0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f,
|
||||
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f,
|
||||
0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f,
|
||||
0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f,
|
||||
-0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f,
|
||||
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
|
||||
-0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
-0.5f, 0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
|
||||
-0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
|
||||
-0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
|
||||
-0.5f, -0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
||||
-0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
0.5f, 0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
|
||||
0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
|
||||
0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
|
||||
0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
-0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f,
|
||||
0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f,
|
||||
0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f,
|
||||
0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f,
|
||||
-0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f,
|
||||
-0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f,
|
||||
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
|
||||
0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f,
|
||||
0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f,
|
||||
0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f,
|
||||
-0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
|
||||
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
|
||||
0.5, -0.5, -0.5, -0.0, -0.0, -1.0, 1.0, 0.0,
|
||||
0.5, 0.5, -0.5, -0.0, -0.0, -1.0, 1.0, 1.0,
|
||||
-0.5, 0.5, -0.5, -0.0, -0.0, -1.0, 0.0, 1.0,
|
||||
0.5, -0.5, 0.5, 1.0, -0.0, -0.0, 0.0, 0.0,
|
||||
0.5, 0.5, 0.5, 1.0, -0.0, -0.0, 0.0, 1.0,
|
||||
0.5, 0.5, -0.5, 1.0, -0.0, -0.0, 1.0, 1.0,
|
||||
-0.5, -0.5, 0.5, -0.0, -1.0, -0.0, 0.0, 0.0,
|
||||
0.5, -0.5, 0.5, -0.0, -1.0, -0.0, 1.0, 0.0,
|
||||
0.5, -0.5, -0.5, -0.0, -1.0, -0.0, 1.0, 1.0,
|
||||
-0.5, -0.5, -0.5, -1.0, -0.0, -0.0, 1.0, 0.0,
|
||||
-0.5, 0.5, -0.5, -1.0, -0.0, -0.0, 1.0, 1.0,
|
||||
-0.5, 0.5, 0.5, -1.0, -0.0, -0.0, 0.0, 1.0,
|
||||
-0.5, -0.5, 0.5, -0.0, -0.0, 1.0, 0.0, 0.0,
|
||||
-0.5, 0.5, 0.5, -0.0, -0.0, 1.0, 0.0, 1.0,
|
||||
0.5, 0.5, 0.5, -0.0, -0.0, 1.0, 1.0, 1.0,
|
||||
0.5, 0.5, 0.5, -0.0, 1.0, -0.0, 1.0, 0.0,
|
||||
-0.5, 0.5, 0.5, -0.0, 1.0, -0.0, 0.0, 0.0,
|
||||
-0.5, 0.5, -0.5, -0.0, 1.0, -0.0, 0.0, 1.0,
|
||||
-0.5, -0.5, -0.5, -0.0, -0.0, -1.0, 0.0, 0.0,
|
||||
0.5, -0.5, -0.5, -0.0, -0.0, -1.0, 1.0, 0.0,
|
||||
-0.5, 0.5, -0.5, -0.0, -0.0, -1.0, 0.0, 1.0,
|
||||
0.5, -0.5, -0.5, 1.0, -0.0, -0.0, 1.0, 0.0,
|
||||
0.5, -0.5, 0.5, 1.0, -0.0, -0.0, 0.0, 0.0,
|
||||
0.5, 0.5, -0.5, 1.0, -0.0, -0.0, 1.0, 1.0,
|
||||
-0.5, -0.5, -0.5, -0.0, -1.0, -0.0, 0.0, 1.0,
|
||||
-0.5, -0.5, 0.5, -0.0, -1.0, -0.0, 0.0, 0.0,
|
||||
0.5, -0.5, -0.5, -0.0, -1.0, -0.0, 1.0, 1.0,
|
||||
-0.5, -0.5, 0.5, -1.0, -0.0, -0.0, 0.0, 0.0,
|
||||
-0.5, -0.5, -0.5, -1.0, -0.0, -0.0, 1.0, 0.0,
|
||||
-0.5, 0.5, 0.5, -1.0, -0.0, -0.0, 0.0, 1.0,
|
||||
0.5, -0.5, 0.5, -0.0, -0.0, 1.0, 1.0, 0.0,
|
||||
-0.5, -0.5, 0.5, -0.0, -0.0, 1.0, 0.0, 0.0,
|
||||
0.5, 0.5, 0.5, -0.0, -0.0, 1.0, 1.0, 1.0,
|
||||
0.5, 0.5, -0.5, -0.0, 1.0, -0.0, 1.0, 1.0,
|
||||
0.5, 0.5, 0.5, -0.0, 1.0, -0.0, 1.0, 0.0,
|
||||
-0.5, 0.5, -0.5, -0.0, 1.0, -0.0, 0.0, 1.0,
|
||||
|
||||
};
|
||||
|
||||
static float SPHERE_VERTICES[] = {
|
||||
|
|
|
@ -67,6 +67,9 @@ void renderInit(GLFWwindow* window, int width, int height) {
|
|||
|
||||
void renderParts() {
|
||||
glDepthMask(GL_TRUE);
|
||||
glEnable(GL_CULL_FACE);
|
||||
glCullFace(GL_BACK);
|
||||
glFrontFace(GL_CW);
|
||||
|
||||
// Use shader
|
||||
shader->use();
|
||||
|
@ -129,12 +132,13 @@ void renderParts() {
|
|||
shader->set("texScale", part->size);
|
||||
|
||||
CUBE_MESH->bind();
|
||||
glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||
glDrawArrays(GL_TRIANGLES, 0, CUBE_MESH->vertexCount);
|
||||
}
|
||||
}
|
||||
|
||||
void renderSkyBox() {
|
||||
glDepthMask(GL_FALSE);
|
||||
glCullFace(GL_FRONT);
|
||||
|
||||
skyboxShader->use();
|
||||
|
||||
|
@ -155,6 +159,7 @@ void renderHandles() {
|
|||
if (!editorToolHandles->adornee.has_value() || !editorToolHandles->active) return;
|
||||
|
||||
glDepthMask(GL_TRUE);
|
||||
glCullFace(GL_BACK);
|
||||
|
||||
// Use shader
|
||||
handleShader->use();
|
||||
|
|
Loading…
Reference in a new issue