Unity5 - 着色器流输出阶段
Unity5 - Shader Stream Output Stage
Unity 5 着色器是否可以访问 DX11 管道中的流输出阶段?参考:https://msdn.microsoft.com/en-us/library/windows/desktop/bb205121%28v=vs.85%29.aspx
我想在着色器中计算新的顶点数据,然后将此信息输出到脚本以用于非渲染目的(影响后与网格相关的相关损坏)。
我目前正在使用 GPGPU 着色器来实现此目的,但是管道上的额外负载是不可取的。这不能真正改变,因为它与网格中的顶点数成比例,所以我认为如果我可以在 Unity 使用的 DX11 渲染管道中使用流输出阶段,那么这可以减轻顶点数据的负载只需要在渲染阶段传递给 GPU 一次,而不是通过 GPGPU 着色器传递两次。
这种方法是否正确,我可以访问流输出阶段吗?
(所有脚本都是 C#)
不幸的是,从顶点或几何着色器流出顶点数据尚未在 Unity 中公开,因此计算着色器目前是您最好的选择。不过,Unity 确实在内部将其用于 GPU 蒙皮,如果它有任何安慰的话。
Unity 5 着色器是否可以访问 DX11 管道中的流输出阶段?参考:https://msdn.microsoft.com/en-us/library/windows/desktop/bb205121%28v=vs.85%29.aspx
我想在着色器中计算新的顶点数据,然后将此信息输出到脚本以用于非渲染目的(影响后与网格相关的相关损坏)。
我目前正在使用 GPGPU 着色器来实现此目的,但是管道上的额外负载是不可取的。这不能真正改变,因为它与网格中的顶点数成比例,所以我认为如果我可以在 Unity 使用的 DX11 渲染管道中使用流输出阶段,那么这可以减轻顶点数据的负载只需要在渲染阶段传递给 GPU 一次,而不是通过 GPGPU 着色器传递两次。
这种方法是否正确,我可以访问流输出阶段吗?
(所有脚本都是 C#)
不幸的是,从顶点或几何着色器流出顶点数据尚未在 Unity 中公开,因此计算着色器目前是您最好的选择。不过,Unity 确实在内部将其用于 GPU 蒙皮,如果它有任何安慰的话。