gpt4 book ai didi

iphone - 使用 OpenGL 混合纹理以轻轻删除 Alpha 值

转载 作者:行者123 更新时间:2023-12-03 18:32:41 25 4
gpt4 key购买 nike

我有一个基于 GLPaint 示例代码的小绘画应用程序。它运行良好。我的问题是我需要实现一个“画笔”来删除已经绘制的纹理。

我的目标是拥有一个边缘柔软的橡皮擦。现在我只是采用了用于绘图的相同纹理,但切换了混合功能

glBlendFunc(GL_SRC_ALPHA, GL_ONE);

glBlendFunc(GL_ZERO, GL_ZERO);

结果是一个正方形的矩形橡皮擦。没关系,但这不是我真正想要的。我需要柔和的边缘。我想制作圆形橡皮擦而不是正方形橡皮擦。

您知道如何实现这一目标吗?或者您知道是否有办法创建我自己的自定义混合函数?

最佳答案

你知道纹理的背景颜色吗?如果是这样,您可以简单地在其上绘制背景,而不是“删除”。这会更简单一些,因为您只需更改颜色而不是混合模式。

如果您需要通过混合来完成,请尝试:

glBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA);

这将使用完整 Alpha 区域中的零,并随着画笔的 Alpha 逐渐消失而淡回现有颜色。

此页面包含可能模式的完整列表: http://www.opengl.org/sdk/docs/man/xhtml/glBlendFunc.xml

关于iphone - 使用 OpenGL 混合纹理以轻轻删除 Alpha 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4074955/

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