【问题标题】:Xamarin IOS Opentk - BlendFunc with transparent texturesXamarin IOS Opentk - 具有透明纹理的 BlendFunc
【发布时间】:2021-04-11 09:00:49
【问题描述】:

我正在尝试使用 Xamarin 中的 OpenTK 渲染一些具有透明背景的标签纹理。起初标签似乎正常显示(见图 1),但当视图旋转时,某些标签背景不再透明(见图 2)。

启用的 BlendFunc 是 GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha)。

我的问题是,尽管标签的位置如何,我如何才能始终保持标签透明度? 顺便说一句,相同的代码和着色器可以在 Android 设备上正常运行。

【问题讨论】:

    标签: xamarin.ios transparency opentk glblendfunc


    【解决方案1】:

    啊,是的,古老的透明度问题。不幸的是,这是图形程序员必须自己解决的问题。

    对于几个标签,最直接的解决方案可能是按 z 深度对标签进行排序,然后从最远到最近渲染它们。您可能需要对该标签位置进行一些矩阵数学运算以调整视口旋转。

    对于我正在开发的 3d 游戏,我选择实现称为WBOIT by Morgan McGuire 的与顺序无关的透明度方法,该方法实现起来相当简单,并且产生了相对较好的结果。

    【讨论】:

    • 我不确定 50-100 个标签是否被认为是“少数”,但现在我想我必须在渲染之前按 z 深度对它们进行排序。您的链接也值得一试。非常感谢。
    • 不客气,z-sorting 50-100 个标签应该没问题
    猜你喜欢
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 2011-09-28
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多