JSFiddle - React, Tailwind, and code Playground
by XGundam05
HTML
<pre>
void renderMirrors(void){
double eq[] = {0.0, 0.0, -1.0, 172.0};
glPushMatrix();
glColorMask(0, 0, 0, 0);
glEnable(GL_STENCIL_TEST);
glStencilFunc(GL_ALWAYS, 1, 1);
glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
glDisable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
// Stencil in the mirrors
glCallList(mirrorList);
glDisable(GL_CULL_FACE);
glEnable(GL_DEPTH_TEST);
glColorMask(1, 1, 1, 1);
glStencilFunc(GL_EQUAL, 1, 1);
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
// We're hardcoding the mirror stuffs
// because the model stuff is hardcoded
glEnable(GL_CLIP_PLANE0);
glClipPlane(GL_CLIP_PLANE0, eq);
glTranslatef(0.0, 0.0, 344.0);
glScalef(1.0, 1.0, -1.0);
// Need to set lights to mirrored here
if (gPolygons){
if (gLighting)
glEnable(GL_LIGHTING);
else
glDisable(GL_LIGHTING);
glCallList(gPolyList);
glDisable(GL_LIGHTING);
}
glDisable(GL_CLIP_PLANE0);
glDisable(GL_STENCIL_TEST);
glPopMatrix();
// Need to reset lights
glEnable(GL_BLEND);
glDisable(GL_LIGHTING);
glBlendFuncSeparate(0, 1, 0, 1);
glCallList(mirrorList);
glDisable(GL_BLEND);
}
</pre>