使用Monte Carlo Ray Tracing来计算LightMap,保存两份场景的数据,一份是几何描述用于光线跟踪,一份是三角形表示用于得到和保存LightMap.我们知道Monte Carlo Ray Tracing基本的做法是对于路径上的每个点计算直接光照.由于我们需要得到的是和视点无关的数据,我们每条光线第一个交点计算的时候使用Diffuse的BRDF属性来计算,后面的每个交点都使用正确的BRDF来计算.我们最终渲染的时候,再通过BRDF属性计算出正确的光照亮度.
步骤是首先我们对于每一张Texture,我们将Texture摆放到我们的渲染屏幕上,对于Texture中的每一个像素计算在物体的几何位置,将视点到像素的方向矢量转换到世界坐标中开始计算光线跟踪.得到的亮度值保存到LightMap中.
每个顶点保存一个Shade Normal,也就是按照光照强度混合的场景中的光源到顶点的矢量,用于计算一BRDF后的亮度。
现在还只是一个很初步的想法。
步骤是首先我们对于每一张Texture,我们将Texture摆放到我们的渲染屏幕上,对于Texture中的每一个像素计算在物体的几何位置,将视点到像素的方向矢量转换到世界坐标中开始计算光线跟踪.得到的亮度值保存到LightMap中.
每个顶点保存一个Shade Normal,也就是按照光照强度混合的场景中的光源到顶点的矢量,用于计算一BRDF后的亮度。
现在还只是一个很初步的想法。