Unity提供的Cg/HLSL语义
前言
众所周知,要想当游戏开发工程师,Unity中的Shader编写不得不摸,这一系列文章我将描写我的Shader学习之路,致敬冯乐乐的书Unity Shader入门精要,此篇Unity提供的Cg/HLSL语义?希望能给后人一点方向
在开始真正的着色器编写之前,今天我们希望可以科普一下一些需要的前置知识点Let‘s Run!
会遇到的不认识的代码形式
float4 vert() : SV_POSITION
{
/......
}
在接下来的学习中,可能会遇到这样的代码段,第一眼看过去可以猜到这是个方法,但是为什么后面会有: SV_POSITION这样的代码,这些东西有很多,比如:SV_Targrt, : COLOR0,: TEXCOORD0等等,这个东西就是Cg/HLSL语义了,那么他的作用是什么呢,其实一句总结就是告诉Unity这个函数的输入参数或输出参数是什么,因为我们会发现,在Shader编写过程中,着色器的代码我们会写方法,但是不会调用方法,这些方法就是Unity运行的时候需要调用的,但是调用方法肯定需要参数,所以用 : SV_Target这样的语义告诉Unity我们的输入输出是什么,如 float4 vert() :SV_POSITION就是vert函数的输出(片元着色器输出值)是裁剪空间中的顶点坐标。如果没有这些语义