gpt4 book ai didi

ios - OpenGL ES 填充效果

转载 作者:行者123 更新时间:2023-11-28 20:42:36 26 4
gpt4 key购买 nike

如何创建填充效果?我有一个使用以下方法创建的不规则闭合形状:

   glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer);
(.......)
glVertexPointer(2, GL_FLOAT, 0, vertexBuffer);
glDrawArrays(GL_POINTS, 0, vertexCount);
(.......)
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);

现在我想要像 photoshop 中一样的“填充/油漆桶”效果。形状内的背景为白色(例如),通过在形状内单击我想将颜色更改为红色或绿色。

请有人给我一些提示。

enter image description here

最佳答案

因此,您渲染一组点并希望 OpenGL“神奇地”填充封闭区域。那是不可能的。 OpenGL 没有意识到这些点包围了某个区域。你甚至不需要画线带,它只是一组点。即使是人类也必须付出合理的努力才能看到​​这些点“包围”了一个区域,更不用说计算机了,或者只是一个用于在屏幕上绘制点、线和三角形的简单界面。

不绘制点,而是绘制多边形(使用 GL_POLYGONGL_TRIANGLE_FAN 而不是 GL_POINTS)。但是,如果封闭区域是非凸的,则并非在所有情况下都有效。您始终必须意识到的是,OpenGL 只不过是一个绘图 API。它只是在屏幕上绘制点、线和三角形。是的,具有奇特的效果,但总而言之,它只是绘制简单的图元。它不管理任何底层图形场景或其他东西。绘制图元(如单个点、线或三角形)的那一刻,OpenGL 不再记住它。

您想要实现的目标(假设您至少将点集更改为真正包围区域的线环)不是通过简单的方法实现的。在最简单的情况下,您需要某种 flood fill algorithm填充您用线条包围的区域。但是为此,您不会以任何方式从 OpenGL 中获利,因为这需要您在 CPU 上分析图像并设置单个像素。着色器也不能以简单(或任何?)的方式做到这一点。

关于ios - OpenGL ES 填充效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812309/

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