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