本文整理汇总了Java中org.lwjgl.opengl.GL11.glFrontFace方法的典型用法代码示例。如果您正苦于以下问题:Java GL11.glFrontFace方法的具体用法?Java GL11.glFrontFace怎么用?Java GL11.glFrontFace使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.lwjgl.opengl.GL11
的用法示例。
在下文中一共展示了GL11.glFrontFace方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: initGL
import org.lwjgl.opengl.GL11; //导入方法依赖的package包/类
/**
* Initialize OpenGL to default settings
*/
private void initGL() {
// Set the clear color
GL11.glClearColor(0, 0, 0, 1);
// Setup viewport
GL11.glViewport(0, 0, WINDOW.getWidth(), WINDOW.getHeight());
// Setup depth testing
GL11.glEnable(GL11.GL_DEPTH_TEST);
// Setup face culling (ccw)
GL11.glFrontFace(GL11.GL_CCW);
GL11.glCullFace(GL11.GL_BACK);
GL11.glEnable(GL11.GL_CULL_FACE);
// Setup blending
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
// Enable MSAA
GL11.glEnable(GL13.GL_MULTISAMPLE);
}
示例2: drawRailEndCaps
import org.lwjgl.opengl.GL11; //导入方法依赖的package包/类
/**
* Draws the end caps of rails.
*
* @param texPoint - Position to render the caps at.
* @param vertices - Rail shape vertices, as returned by {@link openflextrack.api.IRailType#getRailVertices() getRailVertices()}.
* @param texScale - {@link openflextrack.api.IRailType#getTextureScale() Texture scale} of the rail segment.
* @param holographic - {@code true} if the track is a hologram.
*/
private static void drawRailEndCaps(float[] texPoint, Vec3f[][] vertices, float texScale, boolean holographic) {
/* Backup face mode. */
final int glFaceMode = GL11.glGetInteger(GL11.GL_FRONT_FACE);
for (byte b = 1; b > -2; b-=2)
{
GL11.glPushMatrix();
GL11.glScalef(texPoint[4], 1.0F, texPoint[3]);
/* If we're rendering the second cap, invert front face mode and scale.
* This will mirror the cap without the need to render vertices in different order. */
if (b == -1) {
GL11.glScalef(-1, 1, -1);
if (glFaceMode == GL11.GL_CCW) {
GL11.glFrontFace(GL11.GL_CW);
}
else {
GL11.glFrontFace(GL11.GL_CCW);
}
}
/* Actually render face. */
GL11.glBegin(GL11.GL_QUADS);
{
if (!holographic) {
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, texPoint[6]%65536, texPoint[6]/65536);
}
for (Vec3f[] verts : vertices)
{
/* The fourth vertex (index 3; bottom left of texture)
* defines x offset and minumum y value,
* and is the first point of the rectangle. */
final float xOff = (verts[3].x-verts[0].x);
final float yMin = verts[3].z;
GL11.glTexCoord2d(0.0F, yMin + (verts[0].y-verts[3].y)*texScale);
GL11.glVertex3d(verts[3].x, verts[3].y, verts[3].x);
GL11.glTexCoord2d((verts[3].x-verts[2].x), yMin - (verts[3].y-verts[2].y)*texScale + (verts[1].y-verts[2].y)*texScale);
GL11.glVertex3d(verts[2].x, verts[2].y, verts[2].x);
GL11.glTexCoord2d(xOff + (verts[0].x-verts[1].x), yMin + (verts[0].y-verts[1].y)*texScale);
GL11.glVertex3d(verts[1].x, verts[1].y, verts[1].x);
GL11.glTexCoord2d(xOff, yMin);
GL11.glVertex3d(verts[0].x, verts[0].y, verts[0].x);
}
}
GL11.glEnd();
GL11.glPopMatrix();
}
/* Reset face mode. */
GL11.glFrontFace(glFaceMode);
}
示例3: drawRailSegment
import org.lwjgl.opengl.GL11; //导入方法依赖的package包/类
/**
* Draws a rail segment with the given coordinates.
*
* @param texPoints
* @param w1 - X-coordinate of first vertex.
* @param w2 - X-coordinate of second vertex.
* @param h1 - Y-coordinate of first vertex.
* @param h2 - Y-coordinate of second vertex.
* @param t1 - Y-texture offset of first vertex.
* @param texScale - {@link openflextrack.api.IRailType#getTextureScale() Texture scale} of the rail segment.
* @param holographic - {@code true} if the track is holographic.
*/
private static void drawRailSegment(List<float[]> texPoints, float w1, float w2, float h1, float h2, float t1, float texScale, boolean holographic) {
/* Backup face mode. */
final int glFaceMode = GL11.glGetInteger(GL11.GL_FRONT_FACE);
final float t2 = t1 + (Math.abs(w2-w1) + Math.abs(h2-h1)) * texScale;
for (byte b = 1; b > -2; b-=2)
{
GL11.glPushMatrix();
/* If we're rendering the second rail, invert front face mode and scale.
* This will mirror the rail without the need to render vertices in different order. */
if (b == -1) {
if (glFaceMode == GL11.GL_CCW) {
GL11.glFrontFace(GL11.GL_CW);
}
else {
GL11.glFrontFace(GL11.GL_CCW);
}
}
/* Actually render the rail. */
GL11.glBegin(GL11.GL_QUAD_STRIP);
{
for (float[] point : texPoints) {
if (!holographic) {
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, point[6]%65536, point[6]/65536);
}
GL11.glTexCoord2d(point[5], t2);
GL11.glNormal3f(0, 1, 0);
GL11.glVertex3d(point[0] + b*w1*point[4], point[1] + h1, point[2] + b*w1*point[3]);
GL11.glTexCoord2d(point[5], t1);
GL11.glNormal3f(0, 1, 0);
GL11.glVertex3d(point[0] + b*w2*point[4], point[1] + h2, point[2] + b*w2*point[3]);
}
}
GL11.glEnd();
GL11.glPopMatrix();
}
/* Reset face mode. */
GL11.glFrontFace(glFaceMode);
}