【问题标题】:Unity5 - Shader Stream Output StageUnity5 - 着色器流输出阶段
【发布时间】:2016-06-07 22:32:28
【问题描述】:

Unity 5 着色器是否可以访问 DX11 管道中的流输出阶段?参考:https://msdn.microsoft.com/en-us/library/windows/desktop/bb205121%28v=vs.85%29.aspx

我想在着色器中计算新的顶点数据,然后将此信息输出到脚本以用于非渲染目的(影响后与网格相关的损坏)。

我目前正在使用 GPGPU 着色器来实现这一点,但是管道上的额外负载是不可取的。这不能真正改变,因为它与网格中的顶点数量成正比,所以我认为如果我可以使用 Unity 使用的 DX11 渲染管道中的流输出阶段,那么这可以减轻这样的负载,因为顶点数据将只需要在渲染阶段传递给 GPU 一次,而不是通过 GPGPU 着色器传递两次。

这种方法是否正确,我可以访问流输出阶段吗?

(所有脚本都是 C#)

【问题讨论】:

    标签: c# unity3d shader directx-11 compute-shader


    【解决方案1】:

    不幸的是,从顶点或几何着色器流出顶点数据尚未在 Unity 中公开,因此计算着色器目前是您最好的选择。不过,Unity 确实在内部使用它来进行 GPU 蒙皮,如果有任何安慰的话。

    【讨论】:

    • 不幸的是,我怀疑.. 你是否碰巧有一个可以证实这一点的消息来源 - 因为我发誓我已经搜索了整个互联网哈哈。
    • @Zze 没有任何官方信息 - 只是统一论坛上的主题,您可能已经找到了自己。考虑到纹理数组支持刚刚处于测试阶段,这也不足为奇。
    猜你喜欢
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 2021-04-27
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多