当我使用GL_BLEND时,我的多维数据集无法按预期呈现。
glEnable(GL_CULL_FACE);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
我在前面绘制一些半透明的顶点也遇到了类似的问题,这很可能是相关的。
相关:Why do my semi-opaque vertices make background objects brighter in OpenGL?
这是它应该是什么样子:
Normal cube http://img408.imageshack.us/img408/2853/normalcube.png
这就是它的实际情况:
Dark cube http://img7.imageshack.us/img7/7133/darkcube.png
请参阅用于create the colored cube的代码,以及用于实际draw the cube的代码。
正在绘制立方体:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glLoadIdentity();
// ... do some translation, rotation, etc ...
drawCube();
glPopMatrix();
// ... swap the buffers ...
答案 0 :(得分:1)
看起来你在第二个上启用了照明,
在绘图之前尝试使用glShadeModel(GL_FLAT),
答案 1 :(得分:1)
您可以在绘制多维数据集之前尝试禁用所有光照:
glDisable(GL_LIGHTING);
答案 2 :(得分:0)
这让我st脚。看起来是一些顶点有一些不透明的alpha值。但是,您发布的代码全部为1. alpha。所以...为了调试更多,你是否尝试将你的清晰颜色改为非黑色?说绿色? 从代码中,我怀疑光照已打开,因为没有指定法线。
最后评论,offtopic ......你真的不应该使用glBegin
/ glEnd
(每个顶点2个函数调用+每个基元2个实际上并不能很好地利用OpenGL的最新发展)。尝试glDrawElements
与QUAD_LIST
,甚至更好,TRIANGLE_LIST
。你已经为此准备了很好的数据。