shadow复习之planar shadow

planar shadow

通常来说 shadow都是画一个map
这个map有个很大的问题,那就是size有问题
你希望有很高的精度,就必定要用大size的图片,这显然是不太妙的
那么这里就出现一个取巧的法子,如果你只考虑投影到平面上,光源是directional的
那么可以经过计算得到物体的所有点投影到具体的平面的位置,这些信息,可以构造一个mesh出来
https://zhuanlan.zhihu.com/p/31504088

基于这个灵感

可以想想如果对于任意地形行不行

我们只考虑给主角一个影子

基于一个假定,光的角度别太大,我感觉这样就行了

预先把静态的物体搞成高度图,分好块

每走一步,就能找到需要哪些tile,就能画一个FBO,然后有aabb,拿着射线直接SDF Ray march,好了,思路就是这样了,有空再写代码实现吧

这个做法的影子,精度感觉是蛮高的,不过直接多画一次,只给主角的话,也不是不行,整体场景的话,还是算了吧

然而我接触的行业里,很多场景都有很多灯,难顶

相关推荐
郝学胜-神的一滴3 小时前
中级OpenGL教程 004:为几何体注入法线灵魂
c++·unity·游戏引擎·godot·图形渲染·opengl·unreal
XX風3 天前
Opengl 中:为什么法线矩阵定义为“模型矩阵左上角 3x3 部分的逆矩阵的转置”
图形渲染
郝学胜-神的一滴3 天前
[简化版 GAMES 101] 计算机图形学 07:图形学投影完全推导
c++·unity·图形渲染·three.js·unreal engine
bzmK1DTbd4 天前
OpenGL与Java:JOGL库的3D图形渲染实战
java·3d·图形渲染
郑寿昌5 天前
UE5与UE6在Lumen和Nanite的差异解析
游戏引擎·图形渲染·着色器
郝学胜-神的一滴5 天前
罗德里格斯旋转公式(Rodrigues‘ Rotation Formula)完整推导
c++·unity·godot·图形渲染·three.js·unreal
charlie1145141915 天前
通用GUI编程技术——图形渲染实战(四十)——深度缓冲与3D变换:从平面到立体
开发语言·c++·平面·3d·图形渲染·win32
XX風6 天前
单缓冲区渲染导致闪烁的具体技术原因是什么?
图形渲染
dgaf7 天前
DX12 快速教程(17) —— 立体图标与合并渲染
c语言·c++·3d·图形渲染·d3d12
charlie1145141917 天前
通用GUI编程技术——图形渲染实战(三十八)——顶点缓冲与输入布局:GPU的第一个三角形
开发语言·c++·学习·图形渲染·win32