体素几何的光映射

Lightmapping with Voxel Geometry

本文关键字:映射      更新时间:2023-10-16

在编写游戏引擎的渲染端时,我似乎在墨守成规。我最初的计划是实现,至少,动态每像素照明与HLSL和有一个光缓冲通信与着色器最多8个灯。

值得注意的是,到目前为止,我的整个地图是由块(64x64x64)组成的三维数组。在一个非常基本的人脸缩减算法之后,我看到在最坏的情况下渲染32x32x32x6的人脸。我将使用其他方法来减少负载,但首先我想解决这个问题。

目前,在着色器中有8个灯,我用GTX 470获得了大约60-120的帧率,这是一个不错的卡。显然,我必须考虑许多其他优化,但由于动态照明对我来说并不重要(至少不是8个灯),我一直在研究灯光映射。

如果我每个面有4x4个亮度,我就会为整个关卡的灯光贴图寻找一个纹理图集,大小为32x32x32x6x16,每像素4个字节。这是一个纹理,我将使用2048 × 2048(最接近幂2分辨率)。

我已经看了几个来源,特别是这个,http://www.flipcode.com/archives/Light_Mapping_Theory_and_Implementation.shtml,虽然我掌握了如何实现它与一个基本的场景,我难住了如何我可以实现它与我目前的几何情况。

我的问题是。有更好的方法吗?这么大的光图可以用吗?我觉得每个面使用4x4亮度很舒服,因为双线性过滤最终似乎真的很平滑。此外,将静态灯光地图系统与HLSL中的动态每像素灯光地图系统结合起来是否相当简单?

http://www.rastertek.com/dx10tut18.html

你使用的纹理将是4x4迷你纹理在你的"超级纹理"。看看那个链接,但说实话,你没有提供太多的信息。