mc光影吧 关注:8,580贴子:130,491
  • 1回复贴,共1

1.14及以上版本天空光照修复算法最新进展

取消只看楼主收藏回复

经过各种尝试之后,我最终头疼的发现,通过dFdx和dFdy在片元着色器内计算屏幕空间变化值无论怎么样都绕不开屏幕边缘的拉伸,然后我打算整个活
如你们所见,接近完美的边缘衔接和非露天光源完全不受影响,目前发现的唯一的缺点就是两个相隔一方块的完整发光方块中间仍然无法正常工作
想知道怎么做到的?敬请期待PTGI GFME下个版本(这个版本可能会考虑直接发到Minecraft吧)



IP属地:湖南1楼2021-03-03 00:27回复
    算法更新:
    从只兼容完整方块升级到兼容大部分自定义模型。当然,一些过于靠近完整发光方块的模型元素表面还是不会渲染。
    这个算法对所有的光影理论上都是通用的,需要一个gbuffer_terrain.gsh(几何着色器),由于几何着色器本身就有从顶点着色器向片元着色器传递数据的功能,大部分需要的数据应该都有,但是我还是提一下必须的数据:
    必须的数据是世界空间坐标(需要提前加上摄像机坐标)以及光照等级(废话,不然怎么修)
    (可能以后还会继续优化?反正这个算法到这基本上已经完美达到目的了,除了两个相隔一格的完整发光方块中间由于实现原理问题完全没辙)


    IP属地:湖南5楼2021-03-03 23:50
    回复