US2S3——CG语法

Cg

Cg语言(C for Graphics)是为GPU编程设计的高级着色器语言,由NVIDIA公司开发。
Cg极力保留C语言的大部分语义,并让开发者从硬件细节中解脱出来,
Cg同时也有一个高级语言的其他好处,如代码的易重用性,可读性得到提高,编译器代码优化。
最新版本为3.1,当前已不再被积极开发与支持

Cg语言_百度百科 (baidu.com)

本系列学习内容

  • 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年起停更),故不建议使用

image