gpt4 book ai didi

opengl - glTranslatef 不起作用

转载 作者:行者123 更新时间:2023-12-04 02:00:11 24 4
gpt4 key购买 nike

在我的项目中,我想渲染下雨,所以我使用了粒子。

我的渲染方法:

public void draw(Camera camera) {
glBegin(GL_POINTS);
glPushMatrix();

glTranslatef(camera.getX(), camera.getEyeLevel(), camera.getY());

glColor4f(0, 0, 0.8f, 0.1f);

for(int i = 0; i < _currentParticlesCount; i++)
{
_particles[i].draw();
}

glPopMatrix();
glEnd();
}

雨粒子初始化方法:

particle.setX(Utils.RANDOM.nextFloat() * RAIN_RADIUS * (Utils.RANDOM.nextBoolean() ? 1 : -1));
particle.setY(Utils.RANDOM.nextFloat() * RAIN_RADIUS);
particle.setZ(Utils.RANDOM.nextFloat() * RAIN_RADIUS * (Utils.RANDOM.nextBoolean() ? 1 : -1));

您看到我想将所有粒子平移到相机的位置 - 相对于玩家。但是有一个问题,glTranslatef根本不起作用。所以我在世界坐标系的开头看到了所有的粒子。

事实上,当我使用相同的原理绘制星星(粒子)时,glTranslatef 可以正常工作。

星星渲染方法:

glDisable(GL_DEPTH_TEST);

glPushMatrix();
glTranslatef(camera.getX(), camera.getEyeLevel(), camera.getY());

glBegin(GL_POINTS);

glColor3f(1, 1, 1);

for(int i = 0; i < STARS_COUNT; i++) {
_starsArray[i].draw();
}

glEnd();

glPopMatrix();
glEnable(GL_DEPTH_TEST);

我做错了什么?

P. S. 我使用 OpenGL 1.1 LWJGL,Java OpenGL 包装器 (lwjgl.org)

最佳答案

glTranslatef 将无法工作,因为它介于 glBegin 之间/glEnd.

您可以使用 glGetError() ( eg ) 来更轻松地查找此类错误。

关于opengl - glTranslatef 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18273189/

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