我已经掌握了环境遮挡的基础知识。我有一个raycaster,能够均匀地射出半球的光线。看起来这些是光能传递所需要的基础,但我不知道从那里去哪里。我是否发现每张脸都有多少光? (我正在用像我的世界那样的立方体制作游戏)之后我该怎么办?
答案 0 :(得分:3)
简单来说,光能传递是一种计算照明的两阶段算法。 它的工作原理如下:
第一阶段:对于场景中的每对多边形,您计算“他们可以看到彼此多少”。例如。取一个立方体:没有一个面看到立方体的另一面。如果你将立方体倒置到一个房间:对面的内墙完全看到彼此。
第二阶段:通过这种称为“形状因子”的“可见性信息”,您现在可以逐步将光能分配到场景中。在迭代0处,所有能量都在光源面中,然后将其转移到其他面上。在随后的迭代中,更多的面部将能量传输到场景中(间接照明)。
缺点:仅漫射照明 强度:一旦计算出来,灯光就是视点独立的,这样就可以“走过”静态场景,而无需重新计算光照。
答案 1 :(得分:1)
如果你对计算机图形学“理论”感兴趣,我强烈推荐Foley / van Dam:
http://www.amazon.com/Computer-Graphics-Principles-Practice-2nd/dp/0201848406
如果你只是对它是什么以及它是如何工作感兴趣的话,维基百科有一篇很棒的文章(有视觉例子和数学公式):
http://en.wikipedia.org/wiki/Radiosity_%283D_computer_graphics%29
对于过度简化的单行,我想你可以说“光能传递是一种更复杂的技术,用于在光线跟踪图像中渲染环境光”。
恕我直言......