随笔分类 - Unity Shader
学习笔记
摘要:1、CG标准函数库 和C的标准函数库类似,CG也提供了一系列的内建函数库,这些函数用于计算数学上的通用计算或算法(如纹理映射)。例如:求取入射光线的反射光线用Reflect函数,求折射光线用Reflact函数,作矩阵乘法运算用mul函数。有些函数和GPU指令相对,所以执行效率非常高。绝大部分标准函数
阅读全文
摘要:一、基本数据类型:Cg支持7种基本的数据类型 1、float,32位浮点数据,一个符号位。浮点数据类型被所有的图形接口支持; 2、half,16位浮点数据; 3、int,32位整形数据 4,fixed,12位定点数, 5、bool,布尔数据,被所有的图形接口支持; 6、sampler*,纹理对象的句
阅读全文
摘要:Alpha Blending 即Alpha混合 Blending 就是处理透明度的,处理光栅化最后阶段,显示在屏幕上的颜色 1 Blend Off 关闭alpha混合 2 混合公式:Blend SrcFactor DstFactor SrcFactor 混合源系数 Shader当前计算点的颜色的混合
阅读全文
摘要:一、【标准光照模型】1、自发光emissve:描述一个表面本身会发散多少光。在没有使用全局光照时,这些自发光是不会真正照亮周围物体。 自发光就是直接由发光体发射进入摄像机,不经过任何反射,在标准光照模型中直接使用该材质的自发光颜色。 计算公式:Cemissive = Memissive 2、高光反射
阅读全文
摘要:一、语义的解释 语义,其实就是一个赋给Shader输入和输出的字符串,这个字符串表达了这个参数的含义。通俗的讲这些语义可以让Shader知道从哪读取输送到哪里去,他们是在CG/HLSL的shader流水线中是不可避免。 表示图元数据的含义(顶点的位置、法向量或者纹理信息),也表明这些图元数据存放的硬
阅读全文
摘要:一【SubShader】 每个UnityShader文件可以包含多个SubShader语义块,但至少要有一个。当Unity需要加载这个UnityShader时,Unity会扫描所有的SubShader语义块,然后选择一个能够在目标平台上运行的SubShader。如果都不支持的话,Unity就会使用F
阅读全文
摘要:一、内置包含文件 Unity中有类似于C++的包含文件.cginc,在编写Shader时我们可以使用#include指令把这些文件包含进来这样我们就可以使用Unity为我们提供的一些非常好用的函数、宏和变量。 例如:#include"UnityCG.cginc" 包含文件的位置:根目录\Editor
阅读全文
摘要:着色器声明(“名字”)Shader "ShaderDiffuseExample" { 一、属性定义(作用:外部传入参数) 属性定义语法:PropName("DisplayName",PropType) = DefaultValue[{options}] Properties { PropName:属
阅读全文