Unity5 - 着色器流输出阶段

时间:2016-06-07 22:32:28

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

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

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

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

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

(所有脚本都是C#)

1 个答案:

答案 0 :(得分:3)

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