想做一些渲染效果做到头大,根本很多空白,完全无法实现,只能先暂停一下,重新学习矩阵
目录
Unity基础-数学矩阵
“矩阵转换”的数学哦公式居然是最难的?最难理解的?我们直接跳过。。。
首先我们知道 矩阵必须是 x 相乘,(没理由是 + 加法吧,所以只能 x 相乘)一个坐标(Vector3).xyz , 在加上第4个分量.w,则xyzw组成了一维矩阵
矩阵相乘之后得出的结果是什么呢,相乘之后就是 ________ 一个结果
OpenGl 的矩阵图示 + 应用,可参考:OpenGL之矩阵变换Matrix_opengl matrix 畸变-CSDN博客
1.我们利用最简单的“转换矩阵”,
做到了“本地坐标”到“世界坐标‘的矢量转换
2.然后,视图坐标又是如何
利用视图坐标就是以摄像机为中心原点的坐标这一原理,(视图就是摄像机的视图),所以只要物体 Model 只要先做一个朝向摄像机的 LookAt 转换,然后一个转置反转朝向,就得到了摄像机的视图坐标
3.最后就是剪裁坐标
实际上没有剪裁坐标,我们也不知道剪裁是什么意思,就是投影坐标!!
实际上没有剪裁坐标,我们也不知道剪裁是什么意思,就是投影坐标!!
实际上没有剪裁坐标,我们也不知道剪裁是什么意思,就是投影坐标!!
Projection!
Projection!
Projection!
英文比中文好理解,什么鬼翻译
英文比中文好理解,什么鬼翻译
英文比中文好理解,什么鬼翻译
3.1 - 其实是分为正交投影和透视投影
他们两有什么区别,如何理解,一直不知道怎么应怡红,这就不得不提到我曾经说到的一句名言
正交投影和透视投影非常好理解,其实就是:非透视投影和透视投影,就这么简单
大部分情况下你需要解决的问题都是“透视投影”,而且调整”透视投影“的 Field of view可以无限接近正交投影
现在不是考试,所以”实际上“你几乎不会用到”正交投影“
而这个文章说的,几个坐标应用,例如”视图坐标“判断云朵距离摄像机的厚薄,就很”实际“应用,unity 矩阵运算接口 unity mvp矩阵_mob6454cc70eddf的技术博客_51CTO博客
玩家的感受直观理解就是
”统一机器标准“,”除法透视法“(这是什么神仙理解,前面已经扯到了”透视投影“这里又说透视法,简直让人混乱,中文就是这么混乱)
4.NDC坐标,
我觉得大部分入门者即使多次接触后,都会认为这是老任的一个掌机
其实NDC的英文全称,是 Normal Device Corrident,
-NDC,我们知道肯定是坐标,所以剩下ND
-Normal还需要特别说么,所以只剩下D
-最终NDC,就一个D有用, D == Device
传统的,大学里的旧派的教学会把,一个转换分为十万八千个转换,很多都是为了数学而数学,而实际Unity应用中,简化为了MVP这个转换, 提NDC是GPU - api 自动计算的,也几乎被Unity隐藏掉了 == 而 frament Shader(片元着色器) 是在NDC 再之后"屏幕坐标"(Screen Sapce 坐标)处理的
(后面的数学公式,之后有时间再补充吧))
Unity的转换:GL.GetGPUProjectionMatrix 是什么意思
问题的关键来了,问题是:灯光的坐标有什么用,而又如何求出,为什么就用PUProjectionMatrix 就能刚好解决了?
//GL.GetGPUProjectionMatrix
//Shadow Caster实现 -- 世界坐标转灯光坐标的 - 矩阵(光源投影矩阵)
var lightSpaceMatrix = GL.GetGPUProjectionMatrix(collectShadowMapCam.projectionMatrix, false);
lightSpaceMatrix = lightSpaceMatrix * collectShadowMapCam.worldToCameraMatrix;
// 光源投影矩阵
Shader.SetGlobalMatrix(_CustomShadowMapLightSpaceMatrix_hash, lightSpaceMatrix);
GetGPUProjectionMatrix_gl.getgpuprojectionmatrix-CSDN博客
【Unity3D 灵巧小知识点】☀️ | Unity 四元数、欧拉角 与 方向向量 之间转换_呆呆敲代码的小Y的技术博客_51CTO博客
参考:
Unity】贝塞尔曲线关于点、长度、切线计算在 Unity中的C#实现-阿里云开发者社区Latex输入矩阵的几种方式_latex矩阵怎么打-CSDN博客
转载】Unity中矩阵的平移、旋转、缩放 - JeasonBoy - 博客园
个书《Unity实战》手稿——第一章MVP矩阵_unity mvp矩阵-CSDN博客
Unity编写Shader内置各种矩阵和方法介绍_unity shader matrix-CSDN博客