Unity-Shader读书笔记(3)
Unity-Shader读书笔记(3)
Unity中使用的坐标系
模型空间
模型(model space)空间也称为是对象空间(object
space)或者局部空间(local
space)。每一个模型都有自己独立的坐标空间,当它移动或是旋转的时候模型空间也会跟着它移动和旋转。Unity中模型空间是左手坐标系的。而模型空间中的原点和坐标轴一般是由美术人员在建模软件里面确定好的。
世界空间
Unity中世界空间是左手坐标系的。其实我们在Unity中布置场景的坐标系就是世界坐标系。
观察空间
Unity中观察空间是右手坐标系的。观察空间(view
space),通俗来说就是以摄像机位为原点的坐标系,所以观察空间也被称作摄像机空间(camera
space)。在这个坐标系中,摄像机的前向(摄像机所观察的方向)是z轴的负方向,所以z方向的值减少意味着场景深度增加。
裁剪空间
裁剪空间(clip
space)也被称为齐次裁剪空间。裁剪空间的目标是能够方便的对渲染图元进行裁剪。而如何去裁剪这就要由视椎体来 ...
Unity Shader读书笔记(2)
Unity Shader读书笔记(2)
Unity 中的Shader
Unity一共提供了4中Unity Shader模板给我们选择——Standard
Surface Shader、Unlit Shader、Image Effect
Shader和Compute
Shader。(其实现在的Unity已经不仅仅提供这些Shader,但书中只提到了这些。如果有机会我学习到就补上去。)
Standard Surface Shader
它会产生一个包含标准光照模型的表面着色器模板。
Unlit Shader
它会产生一个不包含光照(但包含雾效)的基本顶点/片元着色器。
Image Effect Shader
它会给我们实现各种屏幕后处理效果的基本模板。
Compute Shader
它会产生一个特殊的文件,这类Shader在利用GPU的并行性来进行一些和渲染无关的计算。
一个单独是Shader是无法发挥任何的作用,它必须和材质结合起来。
UnityShader的结构
Shade ...
Unity Shader读书笔记(1)
Unity Shader读书笔记(1)
前言
今天我本来想用Unity自己做出点东西。我本来设想渲染的Shader也要我自己去写,做一个简单的phong模型就好了。然后我发现半年没写Shader已经全部忘记,本来我想找一下自己当初写的读书笔记。而之前的读书笔记我觉得当时写得不好所以没有上传,又加上我换了电脑,所以我根本找不到之前写的读书笔记。这次我重新再学一遍,再做一次读书笔记。(这次无论写的好不好,我都上传一次。不然又要看那三百多页的书太难了。)
渲染的流程
渲染的流程大致可以分成三个阶段:应用阶段(Application
Stage)、几何阶段(Geometry Stage)、光栅化阶段(Rasterizer
Stage)。
应用阶段
这个阶段的主导是应用程序,所以这通常是由CPU来负责的。在这个阶段我们对其有绝对的控制权。(这里的控制权是表示对数据的控制操作,在GPU中的流程部分数据的处理是由生产此GPU的厂商进行封装,换句话说我们对于这部分的数据处理是没有控制权的。)
在这个阶段我们有三个主要的任 ...
23-2-5随记
23-2-5随记
最近一段时间我已经很久没有更新文章了。我不是没有再写,反而我写了挺多的。但是我每次都觉得与其写这样连自己都没有搞懂的技术文章,还不如写我自己的生活或者是读书笔记。所以我并没有上传我所写的东西。新的一年到了,本来我应该在春节前将关于我新年目标的文章写出来。可是因为总总的原因,我直到现在才有时间和精力去写。这篇文章自然就是对最近发生的事情做一下记录并说明一下新年的目标。
12月份的时候,全国开放疫情政策。我的身体本来就不好,果不其然我阳了。我还记得那是在平安夜的夜晚。我在焦急得等待着核酸结果,不断出现的对应症状似乎就是在告诉我——我阳了。我心中仍存有侥幸认为是普通的感冒。所以我简单了喝了39便躺在床准备睡觉。病症的折磨让我不能安然入睡,而雪上加霜的是我的肚子有了一些反响。此时多年遭受胃肠病我感到一丝不妙。但我除了祈祷别再出问题外毫无办法。福无双至祸不单行,终于在凌晨2点的时候肠胃积攒的不快爆发了。此刻的我因为发烧而没什么力气,可我知道要是再不去厕所我只会更加不妙。我强忍着身体的不适到达了厕所开始蹲厕。这时候的我发着烧没什么力气,又是深夜 ...
2022.11.6有感而发
2022.11.6有感而发
我颓废了一周。今天我躺在床上正刷视频的时候,突然的一首《butterfly》让我想起了这个事情——我颓废了一周。
事情起于11月1号。那时候我健康码又变成了黄色,我本以为自己又会像上次那般没一会儿就又变成了绿色,我只是向人事报备了一下就准备着自己变成绿色。但是事情并没有按照之前的样子发展,我还是黄码。这就意味着我必须在家办公。起初我还是比较兴奋,毕竟在家办公当然舒服。我直接躺在床上摆弄起我的笔记本准备办公。之后随着家里的惬意,我变得不那么想办公了。所以我直接完全躺下耍起了手机。正好此时原神版本更新,我耍了一会儿手机后又开始玩起了原神。说来也巧,正是这时候我的主程给了我一堆的任务去完成。我当时并没有注意它们的截止时间,只是想着反正时间还多再等等吧。有那么一刻,我感觉我回到了大学时期,只是这时候我的身旁没有了那一堆“儿子”(开个玩笑^_^)。
玩了许久,终于是成人的意识占了上分我感觉这样不好又开始工作起来。这时候我的状态可以算是一言难尽,我望着那些代码时不时的打着哈欠,顿时觉得这些代码犹如天书。这最 ...
2022.10月份的总结
2022.10月份的总结
忙忙碌碌一个月又要过去了。离我上次更新已经是1个月前的事情了。一个月,30天的时间内当然会发生很多的事情。但对我而言这30天几乎没有区别,要不是最近突然疫情爆发,我本来想着10月份也就是每天两点一线的度过。不过我仍然是两点一线,只是这其中一点从公司变成了核酸检测点罢了。
10月份,我的确就是这样平凡的度过。本来我也不觉得这样平凡有什么不好,只是当我听到大学舍友的事情,我有了一个疑惑我不知道这样的平凡能持续多久。
我的这位舍友A在大学期间也算不错,做着一些兼职赚了点钱然后在某次期末临时学习的过程交到了女朋友(唉,明明像我这种不临时抱佛脚的才是正道,可是我怎么就没有遇到女朋友呢)。以他的为人处事和学习能力,在毕业后也拿到了和我差不多工资。其实在毕业前,我从来不觉得他会混得不好。没想到年初时候的疫情,他父亲做生意失败了欠了债。可以说这时候他的状况真的不好。可就算是这样我也不会去担心他。因为他还有工作,而且和我差不多工资还比我轻松,再加上他可以自己做饭生活成本比我低太多了。虽然我不会担心但是我还是知道他现在一定过不 ...
2022.9.4最近的小结
2022.9.25最近的小结
林大哥
8月1日,我正式进入我现在的这家公司开始上班。到一个陌生的地方,我多少都有些忐忑不安。与我一起在这一天加入的是一个看起来像一个老大哥,给我一种可靠的感觉让我有些安心。虽然这样有些很奇怪,但是我当时就是这样想的。
随着HR出去复印文件,我开始观察起他。我认为他和我年纪相仿,应该是和我差不多的人。此时房间中就我们两个人,HR又迟迟没有回来因此房间中弥漫着一种尴尬的气氛。尴尬其实也没有持续多久很快我们就开始交谈起来。不过我忘记了谁先打破了这样的氛围,总之我们聊了起来。在交谈的过程中,我才知道这位同事姓林是做策划而且已经工作了八年,怪不得我感觉他像一个老大哥。
当我们聊得起劲之时,HR回来了并带来了我们的合同。我仔细阅读完合同中的内容后便签字然后将合同交给了HR。对于合同我一点问题都没有应该说以我的阅历就算有问题我也发现不了。林大哥倒是发现了公司制度上的几个问题,然后追问了一下HR。HR回答其实我已经忘记了,但是我还记得当时林大哥没有继续追问只是面无表情将未签完的字签完,我只是感觉当时的气氛有一丝的不 ...
关于哈希表
关于哈希表
前言:(一般都是一些废话,可以不看)
我一开始学习哈希表的时候真的觉得哈希表是一种很高大上的东西,然后我就对这种东西有一种莫名的害怕。最近突然想起之前朋友和我说起的哈希冲突又让我回忆起学习哈希表的时候。所以我就想写一篇关于哈希表的文章。
1. 什么是哈希表
散列表(Hash
table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash)
函数。
——来自百度百科
我初次查找哈希表的时候看到上面的解释就觉得哈希表很是高大上。因此我就觉得哈希表是一个非常难的数据结构。但是你完全可以简单地把哈希表理解成数组。其所谓的key值就是数组的下标,而哈希函数就是通过key值找到对应的数 ...
22-8-14最近的总结
22-8-14最近的总结
又过了半月多,我又来写日记了。我本来创建博客的目的是为了存储自己的技术文档,没想到我更多的是用来记录了。其实我自己也明白自己的网站又没有开放出来也没有去进行宣传,大家是不会来我的网站看。但我还是想记录下来自己的感受。
关于工作
我又找到了游戏开发的工作。虽然我现在加入的这个公司是做换皮游戏的,但是对于我这种初出茅庐的小子来说那些老项目的框架也是值得我去学习的。对此,我并没有太多的不满。当然前提是我不于他人比较就是了。每天我都处于996的状态。因为我刚刚接触新的框架和引擎(公司开发是用cocos2dx-lua,招我的时候明明还是说Unity的),我有很多的需求都无从下手。不过经过这两周的开发,我倒是更加熟悉程序断点查找原因。除此之外,我也是第一次接触成熟的商业游戏框架。这个项目中MVC模式的应用和类间的解耦的程度真的令我赞叹。但随之而来的便是难以理解,这是高度解耦的通病。对于某些东西我都不明白为什么它就能调用到。即使打了断点面对着十几个类间的互相调用,我也懵了。而且lua作为一个非面向对象的弱语言写起来真的云里雾里。
...
22-7-27最近的总结
22-7-27最近的总结
离上次小结才刚好过去一周而已。但是这篇文章我想更专注于我辞职后到现在发生的事情。这几天我基本都在复习。我复习了计算机网络、计算机操作系统、Unity相关知识和算法。复习这些都是为了下一个工作的面试。
我想休息
其实我很想去休息一段时间,什么都不管就只要慢慢等待时间的流逝,吃饱了睡,睡饱了吃。但是我的经济实在不允许我这么做。这几天我复习下来,我明显发现我不如以前那样精力充沛。看书学习我学不进去,看文章分析只要文字一多我也觉得头大。只要对某些东西专注一两分钟我就会感到困倦(其实在写到这里的时候,我就已经感觉到困倦了)。我觉得这应该是因为我的焦虑导致的。毕竟我现在已经是毕业生了,但我工作还没有着落。每每想到这点,我总是不能好好的睡觉。我的时间又几乎花在了复习知识点上。这就导致了我睡眠和运动不足。
朋友带来的焦虑
本来我也没有那么焦虑。我本来计划先玩一段时间然后在去找工作。而就在我想着好好享受的时候,我的朋友带给了我两个消息。第一个是他在厦门找到了一份一月一万的工作。第二个他告诉我8月份便不再招人。看到这个消息 ...