US2S3——CG语法
US2S3——CG语法
Cg
Cg语言(C for Graphics)是为GPU编程设计的高级着色器语言,由NVIDIA公司开发。
Cg极力保留C语言的大部分语义,并让开发者从硬件细节中解脱出来,
Cg同时也有一个高级语言的其他好处,如代码的易重用性,可读性得到提高,编译器代码优化。
最新版本为3.1,当前已不再被积极开发与支持
本系列学习内容
- CG语句书写位置及指定着色器函数(写CG语法逻辑时,必须使用
#pragma vertex
和#pragma fragment
指定实现着色器的函数) - 基础数据类型(
fixed
,half
,sampler
,数组声明不同) - 特殊数据类型(向量,矩阵,
bool
向量存储向量间比较结果) - Swizzle操作符(获取向量分量,重新排列分量,配合低维向量声明高维向量,获取矩阵的某一行或元素,配合向量声明矩阵,高维转低维)
- 运算符相关(比较,条件(三目),逻辑,数字计算等等)
- 流程控制语句
- 函数
- 顶点-片元着色器基本结构(顶点着色器:将模型顶点转换到裁剪空间;片元着色器:输出片元颜色)
- 语义(让Shader知道从哪里读取数据,并确认数据输出到哪里)
- 顶点-片元着色器传递更多参数(获取更多信息,输出更多信息)
- ShaderLab属性类型和CG变量类型的匹配关系(让材质Inspector窗口上设置的属性可以被CG使用的方法)
- CG内置函数(数学函数,几何函数(计算模长,单位向量,距离,反射,折射),纹理函数(查询贴图上某个位置的颜色))
- CG内置文件
ShaderLabVSPro
ShaderlabVS Pro 是一款专为 Unity Shaderlab 编程而生的 Visual Studio 插件。
它支持代码高亮,代码完成,代码格式化,跳转到定义和 SRP 支持等等。ShaderlabVS Pro | 实用工具 工具 | Unity Asset Store
注:此插件付费,价格为$40
作者还提供了一个免费的ShaderLabVS,但它的语法补全不够准确,高亮偏少且久未更新(2022年起停更),故不建议使用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!