Shader 笔记:坐标系相关(略粗浅)

本文介绍了Shader中的坐标系变换,包括左手坐标系与右手坐标系的区别,以及Unity中从模型空间到屏幕空间的顶点变换过程。详细讲解了模型变换、观察变换和投影变换,并探讨了UnityShader中的语义,如POSITION、NORMAL、TEXCOORDn和COLOR等。同时,阐述了fixed4和float4的区别,以及在顶点着色器到片段着色器阶段的常用语义。此外,还提到了UnityCG.cginc中的帮助函数,如WorldSpaceViewDir和WorldSpaceLightDir等,用于计算观察方向和光照方向。
摘要由CSDN通过智能技术生成

要理解矩阵的几何意义,每个矩阵其实都相当于是一个变换关系,一个矢量通过和旋转矩阵相乘得到一个新的矢量,可以理解为这个矢量进行了一次旋转变换。

关于线性变换,要遵守一个顺序,先进行缩放,再旋转,最后平移
标准的三变换矩阵为

1 0 0 tx       cosθ     0   sinθ   0           kx    0    0    0
0 1 0 ty		0       1    0     0		   0     ky   0    0
0 0 1 tz		-sinθ   0   cosθ   0  		   0     0    kz   0
0 0 0 1		   0        0    0     1           0     0    0    1

在unity中,世界空间坐标系和模型空间坐标系采用的都是左手坐标系,即x正方向为右,y正方向为上,z正方向为前;但是观察空间坐标系采用的是跟openGL一致的右手坐标系,即z正方向为后。
scene场景中点击摄像机出现的三个坐标轴不是观察空间的坐标轴,那是摄像机自身的模型坐标系的坐标轴。

在一个渲染管线内,一个顶点的变换过程为 模型空间到世界空间坐标系(模型变换),世界空间到观察空间(观察变换),观察空间进行裁剪空间准备投影,投影空间到屏幕空间。

UnityShader支持的语义
POSITION 模型空间中的顶点位置,通常是float4类型
NORMAL 顶点法线,通常是float3类型
TANGENT 顶点切线, 通常是float4类型
TEXCOORDn, 顶点的纹理坐标,0表示第

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值