我正在自己的 3D 跟踪器中实现凹凸贴图。真的很短 - 我想要这个结果:
我一直在阅读关于凹凸贴图、高度贴图、法线贴图等的页面和页面,我想我理解了大部分主题,以及以上所有内容之间的区别等等。(我得到了 perlin-bumpmapping 的工作 -结果)唯一我不明白的是如何从给定纹理图像的对象中实际扰动表面法线。大多数论文和页面在该主题上都非常模糊。
首先,我认为您只需向对象添加图像纹理,对于给定的像素,您将根据纹理计算 rgb 颜色,然后根据 rgb 值计算亮度因子(类似于灰度值,... ) 并在添加灯光效果之前用它扰乱法线。- 我想(ed)即时计算法线。
问题:如果上述情况甚至可能:在给定亮度因子的情况下如何扰动法线?如果我在这里错了,任何可以帮助我达到给定结果的提示/链接将不胜感激。
问题 2:如果以上对于任何给定的 rgb 图像都不可能,任何人都可以解释如何在给定高度图的情况下扰动图像?就像维基百科上的第一张图片 非常感谢。
PS:我正在/必须用 Java 实现。