Shader基础

匿名 (未验证) 提交于 2019-12-03 00:22:01
pass块:
//相当与一个主方法(函数)
CGPROGRAM

ENDCG


unity着色器基础属性类型:
//颜色 0~1
struct
}
//向量 R
struct
}
//纹理
2D、3D、Cube
//其他类型
Int、Float、Range(min,max)

CGPROGRAM内基础属性类型:
float:32λ;half:-6w~6w;fixed:-1~1;

函数定义:
//顶点函数声明 ,顶点函数用于处理模型顶点,模型空间=>剪裁空间(从游戏转换为摄像机的位置的屏幕上)
#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技巧
可以通过显示颜色来查看某个值

光照模型:
本质是一套数学公式

文章来源: Shader基础
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!