gpt4 book ai didi

java - 我可以为 OpenGL 中的静态对象推送一次矩阵吗?

转载 作者:行者123 更新时间:2023-11-30 01:50:36 24 4
gpt4 key购买 nike

我需要了解我是否可以为我的项目调用一次 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 绘制序列和固定函数矩阵堆栈几十年来已被弃用。请参阅Fixed Function PipelineLegacy OpenGL .
了解 Vertex SpecificationShader最先进的渲染方式。

<小时/>

glBegin开始一系列 Primitives glEnd 结束序列。
当然,您可以在代码中绘制多个基元序列。

图元的顶点坐标由 glVertex 设置。每个顶点坐标均由当前模型 View 和投影矩阵进行转换(请参阅 glMatrixMode )。

但请注意,不允许在 glBegin/glEnd 序列中更改当前矩阵。在 glBegin 之后(在 glEnd 之前)唯一允许的命令是设置顶点坐标并设置相应属性的命令,例如 glVertexglColorglNormalglTexCoord...

类似glColor的指令, glNormal , glTexCoord ...更改当前属性,该属性在调用 glVertex 时与顶点关联。该指令也可以在 glBegin/glEnd 序列之前执行。

关于java - 我可以为 OpenGL 中的静态对象推送一次矩阵吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56197265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com