C++ 在OpenGL中将粒子渲染为具有透明度的GL_三角形_风扇
我希望渲染具有六边形的粒子,这些六边形向外淡出。我对每个粒子使用了一个三角形风扇。但是,透明度看起来不是很好C++ 在OpenGL中将粒子渲染为具有透明度的GL_三角形_风扇,c++,opengl,graphics,transparency,alpha,C++,Opengl,Graphics,Transparency,Alpha,我希望渲染具有六边形的粒子,这些六边形向外淡出。我对每个粒子使用了一个三角形风扇。但是,透明度看起来不是很好 glBegin(GL_TRIANGLE_FAN); glColor4f(c.x, c.y, c.z, particle.temperature / 100.0); glVertex3f(0, 0, 0); glColor4f(0, 0, 0, 0); glVertex3f(0.866025404 * H / 2, 0.5 * H / 2, 0);
glBegin(GL_TRIANGLE_FAN);
glColor4f(c.x, c.y, c.z, particle.temperature / 100.0);
glVertex3f(0, 0, 0);
glColor4f(0, 0, 0, 0);
glVertex3f(0.866025404 * H / 2, 0.5 * H / 2, 0);
glVertex3f(0, 1 * H / 2, 0);
// other vertices omitted
glEnd();
我得到一个闪烁的输出,其中黑色透明部分在一些帧上画在不透明对象上。如何更改渲染例程以避免此错误
您所观察到的是其他粒子后面的粒子,它们不会被绘制,因为Z缓冲区中存在更接近的Z值
您所观察到的是其他粒子后面的粒子,它们不会被绘制,因为Z缓冲区中存在更接近的Z值
你的混合设置是什么样子的;啊,我发现了一个同事minecraft玩家(例如屏幕底部的minecraft图标):-)你的混合设置看起来怎么样;啊,我发现了一个minecraft玩家(例如屏幕底部的minecraft图标):-)