Shader基础(整理)

pass块:
//相当与一个主方法(函数)
CGPROGRAM

ENDCG


unity着色器基础属性类型:
//颜色 0~1
struct Color{
    r,g,b,a
}
//向量 R
struct Vector{
    x,y,z,w
}
//纹理
2D、3D、Cube
//其他类型
Int、Float、Range(min,max)

CGPROGRAM内基础属性类型:
float~float4、half~half4、fixed~fixed4 对应其他各种向量 Int、Float、Range(min,max)~Vector
float:32位;half:-6w~6w;fixed:-1~1;
sampler2D、sampler3D、samplerCube  (对应)=> 2D、3D、Cube

函数定义:
//顶点函数声明 ,顶点函数用于处理模型顶点,模型空间=>剪裁空间(从游戏转换为摄像机的位置的屏幕上)
#pragma vertex 函数名
//片元函数声明,片元函数用于像素渲染处理,返回屏幕对应的每一个像素颜色值
#pragma fragment 函数名

关于语义
作用:拿到系统的值、给系统做解释说明
使用语法:在函数参数中 【变量:语义】
如:POSITION:获取顶点坐标;SV_POSITION:返回值作为剪裁空间下的坐标
float4 vert(float4 v:POSITION):SV_POSITION{ //顶点处理代码}
其他语义列表:
SV_Target:方法返回值作为屏幕像素颜色
NORMAL:获取模型空间的法线方向值 float4
TEXCOORD0~TEXCOORDN:获取纹理坐标,纹理上的一个点
用语义时最好全部提取到结构体中
注意有的函数只能用特定的数据(语义)



内置变量
UNITY_MATRIX_MVP //矩阵转换宏,与坐标相乘可以坐标转换,模型空间转换到剪裁空间

内置函数
mul()//矩阵与位置进行相乘

Shader Debug技巧
可以通过显示颜色来查看某个值

光照模型:
本质是一套数学公式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值