|
|
1
18
让我们从定义您要寻找的混合类型开始。听起来你想让你的缓冲器从白色开始,让你的颜色混合服从 subtractive color model . 最简单的方法是定义混合的结果 C 刷 结束 C DST AS:
注意,使用这个方程,混合黄色(1,1,0)和青色(0,1,1)的结果是绿色(0,1,0),这是您所期望的。 拥有一把边缘会褪色的刷子会使事情稍微复杂一些。假设您现在有一个画笔不透明度值 一 刷 在哪里 一 刷 是1,你希望你的画笔颜色充分混合,在哪里 一 刷 为0,您希望保留原始颜色。现在你要找的是:
因为在OpenGL ES中混合计算结果 C = C SRC γ S + C DST γ D 如果我们进行以下替换,我们可以得到我们想要的:
现在让我们来看看在OpenGLES中设置它需要什么。这里有4个步骤:
请注意,使用减色模型实现画笔的缺点是颜色只能变暗,如果颜色不是主要减色颜色(青色、洋红或黄色)之一,则反复在其自身上绘制相同的颜色最终会导致颜色偏移。如果在执行此操作后,发现颜色偏移是不可接受的,请尝试将画笔纹理更改为步骤2中的alpha纹理,并按以下方式更改混合因子:
这将给你简单的绘画你的画笔颜色超过白色,但没有实际的颜色混合(画笔颜色最终会覆盖背景)。 |
|
|
George Kim · 如何在iOS中模拟特定坐标空间中的触摸? 2 年前 |
|
|
BENG · 协调C++和Objective-C中结构的填充 2 年前 |
|
|
Community wiki · iPhone上ivar的继承问题 2 年前 |
|
|
Community wiki · 在OpenGL中显示YUV 2 年前 |
|
|
YosiFZ · pod更新依赖关系pod 2 年前 |
|
|
Community wiki · 查找iOS日历 3 年前 |