我可以为 OpenGL 中的静态对象推送一次矩阵吗?
Can I push my matrix for one time for static objects in OpenGL?
我需要了解是否可以为我的项目调用一次 glBegin、glEnd。
我尝试调用 myRender 函数一次,而不是每个刻度,但它会在第二帧删除所有多边形。
我的报价事件
public void render() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(0.925f, 0.98f, 0.988f, 1f);
glPushMatrix();
game.tickRender();
glPopMatrix();
}
我试过了
public void render() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(0.925f, 0.98f, 0.988f, 1f);
}
public void begin(){
glPushMatrix();
game.tickRender();
glPopMatrix();
}
我需要计算一次myMatrix,用于项目优化。另外,如果我能做到,我还有第二个问题。我可以一次绘制静态多边形,然后在渲染函数中每次绘制非静态(移动)多边形吗?
请注意,glBegin
/glEnd
sequences and the fixed function matrix stack is deprecated since decades. See Fixed Function Pipeline and Legacy OpenGL 绘制的那幅画。
阅读 Vertex Specification and Shader 了解最先进的渲染方式。
glBegin
starts a sequence of Primitives 和 glEnd
结束序列。
当然,您可以在代码中绘制多个图元序列。
图元的顶点坐标由glVertex
. Each vertec coordinate is transformed by the current model view and projection matrix (see glMatrixMode
)设置。
但请注意,不允许在 glBegin
/glEnd
序列中更改当前矩阵。 glBegin
之后(和 glEnd
之前)唯一允许的命令是设置顶点坐标和设置相应属性的命令,如 glVertex
、glColor
、glNormal
, glTexCoord
...
像glColor
, glNormal
, glTexCoord
这样的指令......改变当前属性,当glVertex
被调用时,它与顶点相关联。此指令也可以在 glBegin
/glEnd
序列之前执行。
我需要了解是否可以为我的项目调用一次 glBegin、glEnd。
我尝试调用 myRender 函数一次,而不是每个刻度,但它会在第二帧删除所有多边形。
我的报价事件
public void render() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(0.925f, 0.98f, 0.988f, 1f);
glPushMatrix();
game.tickRender();
glPopMatrix();
}
我试过了
public void render() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(0.925f, 0.98f, 0.988f, 1f);
}
public void begin(){
glPushMatrix();
game.tickRender();
glPopMatrix();
}
我需要计算一次myMatrix,用于项目优化。另外,如果我能做到,我还有第二个问题。我可以一次绘制静态多边形,然后在渲染函数中每次绘制非静态(移动)多边形吗?
请注意,glBegin
/glEnd
sequences and the fixed function matrix stack is deprecated since decades. See Fixed Function Pipeline and Legacy OpenGL 绘制的那幅画。
阅读 Vertex Specification and Shader 了解最先进的渲染方式。
glBegin
starts a sequence of Primitives 和 glEnd
结束序列。
当然,您可以在代码中绘制多个图元序列。
图元的顶点坐标由glVertex
. Each vertec coordinate is transformed by the current model view and projection matrix (see glMatrixMode
)设置。
但请注意,不允许在 glBegin
/glEnd
序列中更改当前矩阵。 glBegin
之后(和 glEnd
之前)唯一允许的命令是设置顶点坐标和设置相应属性的命令,如 glVertex
、glColor
、glNormal
, glTexCoord
...
像glColor
, glNormal
, glTexCoord
这样的指令......改变当前属性,当glVertex
被调用时,它与顶点相关联。此指令也可以在 glBegin
/glEnd
序列之前执行。