2016-06-07 50 views
0

Unity 5着色器能够访问DX11流水线中的流输出阶段吗?参考:https://msdn.microsoft.com/en-us/library/windows/desktop/bb205121%28v=vs.85%29.aspxUnity5 - 着色器流输出阶段

我想在着色器中计算新的垂直数据,然后将此信息输出到脚本以进行非呈现目的(与撞击后的网格相关的关系损伤)。

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

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

(所有的脚本是C#)

回答

3

不幸的是流出来从顶点或几何着色器不统一尚未暴露的顶点数据,因此计算着色器,目前最好的选择。尽管如此,Unity在内部将它用于GPU蒙皮。

+0

正如我不幸怀疑..你碰巧有一个来源证实了这一点 - 因为我发誓我已经从字面上搜遍了整个互联网哈哈。 – Zze

+1

@Zze没有官方的 - 只是你可能已经发现你自己的团结论坛的线程。这也不是很令人惊讶,考虑到纹理阵列支持刚刚进入测试阶段。 – Quinchilion