Я рисую несколько строк с помощью OpenGL ES
и мне нужно, чтобы изменить их толщину от 1 pixel
до 3 pixels
плавно, но glLineWidth
не позволяет установить толщину линии между 1.0
и 2.0
. Возможно ли это?Плавного изменения толщины линии с использованием OpenGL ES
Вот мой код
- (void)setupGL
{
[EAGLContext setCurrentContext:self.context];
self.effect = [[GLKBaseEffect alloc] init];
glEnable(GL_DEPTH_TEST);
glGenBuffers(1, &_vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(thinLines), thinLines, GL_STATIC_DRAW);
glEnableVertexAttribArray(GLKVertexAttribPosition);
glVertexAttribPointer(GLKVertexAttribPosition, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0));
glBindVertexArrayOES(0);
}
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBindVertexArrayOES(_vertexArray);
self.effect.constantColor = GLKVector4Make(lineR, lineG, lineB, 1.0f);
[self.effect prepareToDraw];
glLineWidth(1 + scaleQ);
glDrawArrays(GL_LINES, 0, thinLinesCount*2);
}
Влияет ли glLineWidth здесь? Вы должны просто настроить вершины в _vertexArray/_vertexBuffer, ведь они определяют местоположение и, следовательно, ширину того, что вы пытаетесь сделать. – LearnCocos2D
@ LearnCocos2D, может быть, он имел в виду толщину отдельных линий. – rakeshbs
@ LearnCocos2D Да, но это так, но 'glLineWidth' может делать только строчную ширину линии, а не дробную. –