Unity Shader学习
文章平均质量分 83
|十一|
这个作者很懒,什么都没留下…
展开
-
Unity Shader学习之Unity Shader中常用变量、文件等说明
1.顶点/片元函数声明#pragma vertex name#pragma fragment name其中name为函数名2.常用语义POSITION语义告诉Unity,用模型空间的顶点坐标填充变量NORMAL语义告诉Unity,用模型空间的法线方向填充变量TEXCOORD0语义告诉Unity,用模型的第一套纹理坐标填充变量TANGENT语义告诉Unity,用模型空间中顶点的切线方向填充变量COLOR语义用来存储颜色信息其中TEXCOORD语义支持TEXCOORD0~原创 2022-04-26 11:54:41 · 1792 阅读 · 1 评论 -
Shader的学习(简单Shader)
1.什么是OpenGL、DirectXShader可以认为是一种渲染命令,有OpenGL或者DirectX进行解析,来控制渲染图形GLSL shader语言用于OpenGLHLSL shader语言用于DirectX使用CG编写的shader可以跨平台,既可以在OpenGL上解析,也可以在DirectX上解析。2.unity shader的分类使用ShaderLab编写Unity中的Shader,分类1:表面着色器 Surface Shader,相当于对顶点/片元着色器进行了原创 2021-12-01 11:00:39 · 883 阅读 · 0 评论 -
Unity Shader学习一:矢量的点积和叉积
矢量的点积点积的名称来源于这个运算的符号:a•b。中间这个圆点符号是不可省略的,在Unity Shader中,可以直接使用形如dot(a,b)的代码来对两个矢量进行点积 的运算。点积的公式由两种形式第一种:两个三维矢量的点积是把两个矢量对应分量相乘然后再取和,最后的结果是一个标量, 公式为:a•b = (ax, ay, az)•(bx, by, bz) = axbx + ayby + azbz矢量的点积满足交换律,即a•b = b•a点积的几何意义很重要,因为点积几乎应用到了图形学的各个原创 2022-04-19 17:19:53 · 3275 阅读 · 0 评论 -
Unity Shader学习二:矩阵的学习
矩阵从外观上来看就是一个长方形网格,每个格子里放了一个数字,它是由m x n个标量组成的长方形数组。矩阵通常用于进行变换,比如在顶点着色器中,需要把顶点坐标从模型空间变换到齐次裁剪坐标系中。矩阵既然是网格结构,就意味着矩阵由行(row)列(column)之分,如m x n 矩阵表示矩阵由m行n列组成,...原创 2022-04-20 16:21:54 · 3683 阅读 · 0 评论 -
Unity Shader学习三:坐标空间的变换
(注意,由于格式问题,)假设现在有一个父坐标空间以及一个子坐标空间,已知父级坐标空间中子级坐标空间的原点位置以及3个单位坐标轴,此时一般由两种需求:一种是将子坐标空间下表示的点或矢量Ac转换到父坐标空间下的表示Ap;另一种需求是反过来,即把父坐标空间下表示的点或矢量Bp转换到子坐标空间下的表示Bc。可以使用下面的两个公式来表示这两种需求:Ap = Mc-p AcBc = Mp-c Bp其中Mc-p表示从子坐标空间变换到父坐标空间的变换矩阵,而Mp-c是其逆矩阵(即反向变换)。此时,只需求解出原创 2022-04-22 11:07:49 · 1791 阅读 · 0 评论