1

这是我的问题。我正在使用 GL_TRIANGLE_STRIP 绘制一个框。不涉及纹理,没有材质,也没有着色器。我只是在渲染彩色三角形。

你可以在这里看到它的样子:失败框

但正如你所看到的,我有一些明显的褪色问题。也没有激活照明。

这里是我用来初始化和渲染盒子的代码。

//here init code
for(list<Particle*>::iterator p = this->shapes[this->activeShape].particles.begin();
                p != this->shapes[this->activeShape].particles.end(); p++)
            {
                float yValue = 20.0f;

                this->vertexArray[this->activeShape][current].Position.x = (*p)->x0.x;
                this->vertexArray[this->activeShape][current].Position.y = -yValue;
                this->vertexArray[this->activeShape][current].Position.z = (*p)->x0.y;


                this->vertexArray[this->activeShape][current + listSize].Position.x = (*p)->x0.x;
                this->vertexArray[this->activeShape][current + listSize].Position.y = yValue;
                this->vertexArray[this->activeShape][current + listSize].Position.z = (*p)->x0.y;

                current++;
            }


        // render code
                glFrontFace(GL_CW);
                glEnable(GL_BLEND);

                glVertexPointer(3, GL_FLOAT, sizeof(LsmVertexColor), &this->vertexArray[this->activeShape][0].Position);
                glEnableClientState(GL_VERTEX_ARRAY);

                glColor4f(SCULPTY_R, SCULPTY_G, SCULPTY_B, SCULPTY_A);

                glDrawElements(GL_TRIANGLE_STRIP, 20, GL_UNSIGNED_SHORT, &this->indexArray[this->activeShape][0]);
                glDrawElements(GL_TRIANGLE_STRIP, 20, GL_UNSIGNED_SHORT, &this->indexArray[this->activeShape][22]);
                glDrawElements(GL_TRIANGLE_STRIP, 10, GL_UNSIGNED_SHORT, &this->indexArray[this->activeShape][44]);
                glDrawElements(GL_TRIANGLE_STRIP, 10, GL_UNSIGNED_SHORT, &this->indexArray[this->activeShape][54]);

我正在使用 OpenGL ES 1.1(我知道我不是最新的)并且该程序正在 iPhone/iPad 上运行。

4

2 回答 2

0

尝试添加:

glDisable(GL_LIGHTING);

确保即使默认情况下也确实没有照明。

于 2010-06-25T12:26:44.923 回答
0

我忘了提到我正在使用引擎 Sio2 Engine。我采用了 hardstyle 并挂钩了整个 openGL init 并自己重新编写了它。出于某种原因,其中一个 glEnable(GL_TEXTURE_2D) 调用正在使奇怪的效果出现。

不幸的是,我无法解释原因,但如果您使用 Sio2 引擎并最终出现一些奇怪的褪色效果......然后通过在引擎代码中启用 GL_TEXTURE_2D 的两个调用之一进行注释来检查它是否已解决。

我欢迎任何解释,我没有时间深入并自己找到它。

于 2010-06-25T13:46:02.927 回答