着色器功能冲浪做什么

时间:2018-05-19 20:14:36

标签: unity3d shader

在Unity中,标准表面着色器附带冲浪功能

void surf (Input IN, inout SurfaceOutputStandard o)
{

这个函数何时被调用,它应该用于做什么? 哪里可以找到该函数的语言参考?

1 个答案:

答案 0 :(得分:2)

我认为您不太了解 Surface Shaders 的概念。

正如here所写:

  

Unity中的表面着色器是一种代码生成方法,与使用低级顶点/像素着色器程序相比,可以更轻松地编写点亮着色器。请注意,Surface Shaders中没有自定义语言,魔法或忍者;它只生成所有必须手工编写的重复代码。您仍然在HLSL中编写着色器代码。

工作原理

  

您可以定义一个“表面函数”,它可以获取您需要的任何UV或数据   输入,并填充输出结构SurfaceOutput。 SurfaceOutput   基本上描述了表面的属性(它的反照率颜色,   正常,发射,镜面反射等)。您在HLSL中编写此代码。

     

Surface Shader编译器然后计算出需要什么输入,什么   输出被填充等等,并生成实际的顶点和像素   着色器,以及渲染传递以处理前进和延迟   渲染。