11 2021 档案
摘要:之前在《Unity的Deferred Shading》[1]这篇文章中已经把延迟渲染中用到的默认计算光照的shader过了一遍,时隔一段时间再看,又有一些查漏补缺之处,放在这里记录一下。 两个pass Internal-DeferredShading中其实包含了两个pass。第二个pass只会在ca
阅读全文
摘要:normal map本身就是一张texture,故而加载normal map的逻辑并不需要进行特殊处理。加入normal map之后,shader层面需要顶点的tangent信息,因此需要在CPU层将tangent信息传递进去。首先需要修改的是顶点的声明: struct Vertex { XMFLO
阅读全文
摘要:Unity原生是支持雾效的,可以通过Window/Rendering/Lighting Settings设置: Unity支持3种模式的雾效,Linear,Exponential,Exponential Squared。 Linear模式对应的雾效系数公式如下: \[ f = \dfrac{E -
阅读全文
摘要:DirectX 12支持cubemap采样,我们可以用它来实现一个简易的天空盒效果。首先,我们要修改对texture进行资源绑定的shader resource view,使它不再是绑定texture 2d,而是texture cube: D3D12_SHADER_RESOURCE_VIEW_DES
阅读全文
摘要:Lua对已经编译过的二进制代码块的加载主要集中在luaU_undump这个函数。本篇文章即着重分析该函数的具体实现。本文参考的Lua源码版本为5.4.0。首先,我们以一个最简单的lua代码为例进行编译: -- test.lua print("hello world") 编译后的二进制代码块可以使用U
阅读全文
摘要:什么是Deferred Shading Unity自身除了支持前向渲染之外,还支持延迟渲染。Unity的rendering path可以通过Edit/Project Settings中的Graphics进行全局设置: 除此之外,我们还可以在Main Camera中进行覆盖设置: 需要注意的是,Uni
阅读全文