gpt4 book ai didi

iphone - OpenGL ES 2.0 GLKit GL_LINE_SMOOTH 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:13 24 4
gpt4 key购买 nike

我正在使用绘制 glDrawArrays 来绘制 GL_LINE_STRIP 并想让它们平滑。我在这里看到几个问题,人们建议使用 glEnable(GL_LINE_SMOOTH) 和 glHint(GL_LINE_SMOOTH_HINT, GL_NICEST),但是当我这样做时,我收到了一个错误。这是我的代码:

- (void)setupGL
{
[EAGLContext setCurrentContext:self.context];

self.effect = [[[GLKBaseEffect alloc] init] autorelease];
self.effect.light0.enabled = GL_FALSE;
self.effect.light1.enabled = GL_FALSE;
self.effect.light2.enabled = GL_FALSE;
self.effect.lightModelAmbientColor = GLKVector4Make(0.0f, 0.0f, 0.0f, 1.0f);

glDisable(GL_DEPTH_TEST);
// glEnable(GL_LINE_SMOOTH);
// glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glGenVertexArraysOES(1, &_vertexArray);
glBindVertexArrayOES(_vertexArray);

glGenBuffers(1, &_vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertexData), vertexData, GL_DYNAMIC_DRAW);

glEnableVertexAttribArray(GLKVertexAttribPosition);
glVertexAttribPointer(GLKVertexAttribPosition, VERTEX_POS_DATA_SIZE, GL_FLOAT, GL_FALSE, VERTEX_DATA_SIZE * sizeof(GLfloat), BUFFER_OFFSET(0));

glEnableVertexAttribArray(GLKVertexAttribColor);
glVertexAttribPointer(GLKVertexAttribColor, VERTEX_COLOR_DATA_SIZE, GL_FLOAT, GL_FLOAT, VERTEX_DATA_SIZE * sizeof(GLfloat), BUFFER_OFFSET(VERTEX_POS_DATA_SIZE * sizeof(GLfloat)));

glLineWidth(10.0);
}

如果我取消注释其中一行(或两行),我会得到一个 GL 错误。有什么想法吗?

最佳答案

我在 ES1.1 上下文中工作(很好!),即

self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];

我正在编写新代码并试图驾驭 future 的浪潮(或者至少,现在是最近的过去)并跳转到 ES2.0。在 2.0 宇宙中,我在

view.drawableMultisample = GLKViewDrawableMultisample4X;

在我的 GLKViewController-viewDidLoad 覆盖中设置,在我的 GLKView 上设置。 YMMV.

关于iphone - OpenGL ES 2.0 GLKit GL_LINE_SMOOTH 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10658328/

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