gpt4 book ai didi

c++ - GL_POINT_SPRITE_ARB 渲染问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:59:18 24 4
gpt4 key购买 nike

我正在学习一些 OpenGL 基础知识,当我决定制作一个粒子系统时,我遇到了一些问题。当我尝试使用 GL_POINT_SPRITE 渲染 GL_POINT 时,它们不会显示在屏幕上,除非它们首先是渲染器。我用于渲染的代码:

glClear(GL_COLOR_BUFFER_BIT);

glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, t->id());
glBegin(GL_QUADS);
glTexCoord2f(0.0f,0.0f);
glVertex2f(10,10);

glTexCoord2f(1.0f,0.0f);
glVertex2f(100,10);

glTexCoord2f(1.0f,1.0f);
glVertex2f(100,100);

glTexCoord2f(0.0f,1.0f);
glVertex2f(10,100);
glEnd();
glDisable(GL_TEXTURE_2D);
glPopMatrix();

glPushMatrix();
glColor3f(1.0f,1.0f,1.0f);
glEnable(GL_TEXTURE_2D);
glEnable(GL_POINT_SPRITE_ARB);
glBindTexture(GL_TEXTURE_2D, t->id());
glTexEnvf(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE);
glPointSize(32);
glBegin(GL_POINTS);
glVertex2f(300,300);
glEnd();
glDisable(GL_POINT_SPRITE);
glDisable(GL_TEXTURE_2D);
glPopMatrix();

SDL_GL_SwapBuffers();

这只会渲染带纹理的四边形而不是点。当我更改顺序(首先渲染点然后四边形)时,它们都出现在屏幕上(纹理点和纹理四边形)。

我是在做错什么还是这是正确的行为?

关于我的 PC 的一些信息可能会有所帮助 - Arch Linux 64bit with AMD Mobility Radeon HD 4550(Catalyst 12.6 驱动程序)

最佳答案

我今天遇到了这个问题。这似乎为我解决了这个问题:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT|GL_ACCUM_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);  

我预计它正在清除执行此操作的深度缓冲区。我知道这是一个非常古老的问题,但以防万一其他人遇到同样的问题……

关于c++ - GL_POINT_SPRITE_ARB 渲染问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12128671/

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