跳转至内容

分形/凹凸贴图

来自维基教科书,开放世界开放书籍

3D 照明模型

[编辑 | 编辑源代码]

二维分形最简单的照明效果基于斜率,或者更一般地,基于从DE或平滑迭代或其他方法计算的表面法线。在三维照明中,这对应于漫反射光的一些版本,它只取决于表面法线和入射光源(或光源)的向量。

照明模型通常将环境(光源及其属性和背景)与表面材料属性分开,以便它们可以独立指定。材料属性包括颜色和纹理,以及它们反射、吸收、透射等漫反射光和镜面光的程度。一些最简单的属性是可见的漫反射光量和镜面光量。两种常见的镜面照明类型是高光(模拟来自某个半径的光源的反射)和来自背景的反射(理想情况下是完整的 360 度环境贴图)。在 Frax 中,他们不使用图片进行反射,而是用一些公式计算一些带有白光的窗口的近似值来避免所有通常的计算,效果很好。该公式并未公开,环境贴图更加灵活。

因此漫反射光取决于表面法线和光源方向的点积。镜面光取决于表面法线、光源方向,还取决于眼睛的向量。对于高光,使用光源向量和一些函数来计算强度,无论您想要使用哪种响应曲线。对于背景反射,计算眼睛射线在表面的反射,并将它投影到环境贴图。这个数学公式非常标准,您可以在任何地方找到。

对于高光,您通常需要几个材料属性。除了高光强度之外,还有亮度(或高光大小,并进行强度调整以在一定程度上保留能量),一些锐度控制(例如,在高斯和具有清晰截止值的圆之间变化)以及金属度(使高光颜色在表面颜色和光源颜色之间变化)。

在照明模型中,材料属性决定了来自同一光源的漫反射光和镜面光效果的混合。这比将一些光泽的光效与不使用相同光源的现有漫反射光效混合在一起更真实。为了获得良好的高光,您确实需要自由调整每个光源的方向、强度和颜色(至少两个光源比一个好)。[1]



  • "凹凸贴图。它允许对以前隐藏在调色板中缓慢渐变的细微细节进行伪三维可视化。" Botond Kósa[3]
  • 法线贴图:"在平面上,细微的浮雕在适当的照明下可以清晰可见。" Arnaud Cheritat[4]
  • unity3d : ParameterNormalMap
  • "斜率渲染最初是一种屏幕空间后期处理效果,使用相邻像素平滑迭代计数之间的差异。最近,它可以使用方向距离估计(通过像素间距归一化)来代替,我认为 gerrit 证明了在无限精细像素网格的极限情况下,它等效。" Claude Heiland-Allen

参考文献

[编辑 | 编辑源代码]
  1. fractalforums.org : 寻求帮助以学习更多着色方法
  2. /fractalforums.org : 分形中斜率渲染算法
  3. fractalforums " 凹凸贴图和改进的直方图着色 v1.3.10 可用"
  4. A Cheritat wiki : 曼德布罗特集合#法线贴图效果
  5. 基于物理的阴影
  6. 阴影和照明
华夏公益教科书