gpt4 book ai didi

objective-c - GLKit 多边形半透明

转载 作者:行者123 更新时间:2023-11-29 11:08:54 27 4
gpt4 key购买 nike

我正在尝试使用 GLKit 绘制半透明多边形,但没有成功。所以我想知道是否有可能首先在 GLKit 中使用半透明多边形,因为我知道它在 OpenGL 的标准实现中不受支持;但可以使用自定义着色器进行模仿。但由于 GLKit 编译它自己的着色器,我需要知道我是否应该继续使用 GLKit 或使用我自己的自定义着色器。我的代码如下:

// setup states
glEnable(GL_BLEND);
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

self.effect.texture2d0.enabled = GL_FALSE;
self.effect.colorMaterialEnabled = GL_TRUE;
self.effect.transform.modelviewMatrix = self.modelMatrix;

glEnableVertexAttribArray(GLKVertexAttribPosition);
glEnableVertexAttribArray(GLKVertexAttribColor);

[self.effect prepareToDraw];

// draw triangles
glVertexAttribPointer(GLKVertexAttribPosition, 3, GL_FLOAT, GL_FALSE, sizeof(LineVertex), &_vertices[0].pos);
glVertexAttribPointer(GLKVertexAttribColor, 4, GL_FLOAT, GL_FALSE, sizeof(LineVertex), &_vertices[0].color);

glDrawArrays(GL_TRIANGLES, 0, _vertexCount);

提前致谢。

最佳答案

你的问题令人困惑,但听起来你有透明的物体相互吸引?如果是这样,请使用

glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

代替你得到的东西。

并检查您的深度测试或模板测试(不太可能但可能)之类的东西不会阻止绘制...

关于objective-c - GLKit 多边形半透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12427978/

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