Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 草图应用程序绘制混合OpenGLES_Ios_Opengl Es - Fatal编程技术网

Ios 草图应用程序绘制混合OpenGLES

Ios 草图应用程序绘制混合OpenGLES,ios,opengl-es,Ios,Opengl Es,有人能告诉我为什么我的低透明度绘画会进行这种奇怪的混合,而SketchBookX应用程序做得很完美吗 在附加的两幅图像中,左侧的垂直笔划在完全不透明度下完成,右侧的笔划在低不透明度下完成。顶部图像是我的,正如你所看到的,在低不透明度的情况下,右侧的笔划会变成橙红色,并且不会与完全不透明度笔划混合/网格。但SketchBookX应用程序完美融合并保持相同的颜色 我使用的是glBlendFunc(GL\u ONE,GL\u ONE\u减去\u SRC\u ALPHA)并且尝试了很多变体,但都没有成功

有人能告诉我为什么我的低透明度绘画会进行这种奇怪的混合,而SketchBookX应用程序做得很完美吗

在附加的两幅图像中,左侧的垂直笔划在完全不透明度下完成,右侧的笔划在低不透明度下完成。顶部图像是我的,正如你所看到的,在低不透明度的情况下,右侧的笔划会变成橙红色,并且不会与完全不透明度笔划混合/网格。但SketchBookX应用程序完美融合并保持相同的颜色

我使用的是
glBlendFunc(GL\u ONE,GL\u ONE\u减去\u SRC\u ALPHA)
并且尝试了很多变体,但都没有成功,所以我开始认为还有其他东西让我遇到了这个问题

我需要在片段着色器中处理此问题吗?我现在有这个,
gl\u FragColor=color*rotatedTexture我正在使用PNG作为笔刷纹理

更新:我在不使用纹理的情况下获得相同的结果<代码>gl_FragColor=颜色


我希望它像混合墨水一样,而不是像混合灯光一样:)

。。。当
rotatedTexture
是R=G=B=1,a=的值时,无论是来源于
GL\u亮度\u ALPHA
纹理、适当形成的
GL\u RGBA
纹理还是其他纹理?根据你的混合模式,哪个是alpha的预乘?嘿,汤米,谢谢你的回答,我不知道你在问什么或建议什么。我使用的PNG是128x128,带有alpha通道。显然,
GL_ONE,GL_ONE,减去SRC_alpha
是“读取背景,乘以1-alpha,将其添加到前景”;它假定前景色在存储之前已乘以alpha。如果您已经尝试了
GL\u SRC\u ALPHA,GL\u ONE\u减去\u SRC\u ALPHA
,但仍然得到了错误的结果,正如您的“尝试了许多变体”所暗示的那样,那么您可以排除这一可能的问题。(大概PNG中的每个像素都是纯白色的,忽略了alpha?)好了,我开始更了解它了。不,PNG不是纯白色的。中心为白色,混合为透明以模拟画笔。(我将很快从我的电脑上传一张图片。)刷PNG添加。我想要的结果就像iPhone的SketchBookX。或者在画布上添加不同数量/不透明度的颜色时进行真实绘制。