Illumination Models and Surface-Rendering Methods × Global Illumination

Illumination Models and Surface-Rendering Methods × Global Illumination:分解局部光照项并选择顶点或片元求值位置,并把表面之间的间接能量交换纳入图像,以公式、章专属交互和可重放故障证据独立重写。

学习目标

  • 能说明Illumination Models and Surface-Rendering Methods × Global Illumination中的“分解局部光照项并选择顶点或片元求值位置,并把表面之间的间接能量交换纳入图像”,并指出公式中每个量的空间、单位或概率含义
  • 能比较正常基线与“在非线性颜色空间累加光照,或插值后不重新归一化法线;形状因子不守恒,或把仅适用于漫反射的radiosity用于镜面路径”反例,定位法线、光向量、视向量、各光照项和插值位置、面片面积、形状因子和、发射项与迭代残差中的首个差异
  • 能操作三个章专属实验,让illumination model、surface rendering、global illumination、radiosity同时具备解释、视觉和练习证据
  • 能修改最小实现、固定输入重放,并判断“Illumination Models and Surface-Rendering Methods的输入、公式中间量、输出与恢复结果可用同一基线复算,且Global Illumination的输入、公式中间量、输出与恢复结果可用同一基线复算”是否重新成立

从一个会失败的图像实验开始

Illumination Models and Surface-Rendering Methods × Global Illumination要回答的不是“这个名词是什么”,而是:在固定输入下,如何验证“分解局部光照项并选择顶点或片元求值位置,并把表面之间的间接能量交换纳入图像”,并让一个反例可重复地推翻错误实现?先写下预期像素、几何或估计量,再运行基线;只要法线、光向量、视向量、各光照项和插值位置、面片面积、形状因子和、发射项与迭代残差无法指出差异来自哪一步,图像看起来正确也不能通过。

本页的不变量是:Illumination Models and Surface-Rendering Methods的输入、公式中间量、输出与恢复结果可用同一基线复算,且Global Illumination的输入、公式中间量、输出与恢复结果可用同一基线复算。反例“在非线性颜色空间累加光照,或插值后不重新归一化法线;形状因子不守恒,或把仅适用于漫反射的radiosity用于镜面路径”只改变一个条件,因而正常、故障与恢复三次运行应能用同一输入直接比较。

原版、版次与事实来源

Illumination Models and Surface-Rendering Methods × Global Illumination只用Pearson第4版书目与22章目录确定原书单元;未取得正文,因此不宣称复现作者表述。以下机制、公式与代码按图形学定义独立编写,OpenGL 4.6 Core规范GLSL 4.60规范只核对现代API事实,不替代原书历史内容。

六个检查词

。这些词共同约束分解局部光照项并选择顶点或片元求值位置,并把表面之间的间接能量交换纳入图像,每个词都必须落到公式、交互状态或可重放输出,不能只出现在术语表。

原书单元与独立机制解释

Illumination Models and Surface-Rendering Methods

illumination model 把环境、漫反射与高光等局部项组合,surface rendering 决定法线、材质和光源在何处求值。Gouraud插值颜色,Phong插值法线,二者对小高光的保真度不同。

本单元的正式坐标是illumination model、surface rendering。验证Illumination Models and Surface-Rendering Methods时,先制造“在非线性颜色空间累加光照,或插值后不重新归一化法线”,再检查法线、光向量、视向量、各光照项和插值位置能否把错误定位到分解局部光照项并选择顶点或片元求值位置的首个分叉。

I=Iaka+Il[kdmax(0,nl)+ksmax(0,rv)p]I=I_a k_a+I_l[k_d\max(0,n\cdot l)+k_s\max(0,r\cdot v)^p]

Global Illumination

global illumination 计算光源经多次反射到达观察者的能量,radiosity 在漫反射假设下用面片间形状因子建立线性系统。局部光照无法产生颜色渗透等间接效应。

本单元的正式坐标是global illumination、radiosity。验证Global Illumination时,先制造“形状因子不守恒,或把仅适用于漫反射的radiosity用于镜面路径”,再检查面片面积、形状因子和、发射项与迭代残差能否把错误定位到把表面之间的间接能量交换纳入图像的首个分叉。

Bi=Ei+ρijFijBjB_i=E_i+\rho_i\sum_j F_{ij}B_j

先预测,再操作三个章专属实验

分步1 / 3

1. 概念与因果路径

在Illumination Models and Surface-Rendering Methods × Global Illumination中选择任一正式坐标,沿机制链查看它的输入、状态变化和可推翻探针。

图形管线坐标审计

Illumination Models and Surface-Rendering Methods × Global Illumination

把分解局部光照项并选择顶点或片元求值位置,并把表面之间的间接能量交换纳入图像放进输入、变换、离散、外观与显示五个责任阶段。

正式概念

Illumination Models and Surface-Rendering Methods / illumination model

illumination model 把环境、漫反射与高光等局部项组合,surface rendering 决定法线、材质和光源在何处求值。Gouraud插值颜色,Phong插值法线,二者对小高光的保真度不同。

模型/输入

定义图元、属性、数据或交互事件

探针:法线、光向量、视向量、各光照项和插值位置

当前公式坐标

I=I_a k_a+I_l[k_d\max(0,n\cdot l)+k_s\max(0,r\cdot v)^p] ; B_i=E_i+\rho_i\sum_j F_{ij}B_j
原书边界:Donald Hearn、M. Pauline Baker、Warren Carithers《Computer Graphics with OpenGL》第4版。课程实验显式标注坐标和状态,不把现代API示例冒充原书正文。

最小可重现实验

vec3 n = normalize(normal);
float diffuse = max(dot(n, lightDir), 0.0);
float specular = pow(max(dot(reflect(-lightDir,n), viewDir),0.0), shininess);
vec3 local = ambient + kd*diffuse + ks*specular;

运行Illumination Models and Surface-Rendering Methods × Global Illumination时固定随机种子、输入几何、坐标约定和数值精度;记录编译命令或算法版本、输出摘要与失败条件。实验输出若依赖隐藏全局状态,必须先消除该依赖再比较。

练习与答案

练习

问题 1:公式与边界。 怎样用一个数值样本证明 I=Iaka+Il[kdmax(0,nl)+ksmax(0,rv)p]I=I_a k_a+I_l[k_d\max(0,n\cdot l)+k_s\max(0,r\cdot v)^p] 中的量没有混用空间、单位或概率密度?

问题 2:正式坐标。 illumination model、surface rendering、global illumination、radiosity如何进入可操作验证?

问题 3:故障恢复。 如何证明“在非线性颜色空间累加光照,或插值后不重新归一化法线;形状因子不守恒,或把仅适用于漫反射的radiosity用于镜面路径”已经真正修复?

本章回顾

掌握Illumination Models and Surface-Rendering Methods × Global Illumination意味着能将“分解局部光照项并选择顶点或片元求值位置,并把表面之间的间接能量交换纳入图像”写成明确公式或算法,能操作正式坐标,能制造“在非线性颜色空间累加光照,或插值后不重新归一化法线;形状因子不守恒,或把仅适用于漫反射的radiosity用于镜面路径”,还能凭法线、光向量、视向量、各光照项和插值位置、面片面积、形状因子和、发射项与迭代残差恢复同输入结果,而不是把一段Vulkan生命周期模板换上本章标题。

名词解释

本章出现的专业名词,用大白话再讲一遍。

illumination model

illumination model在Illumination Models and Surface-Rendering Methods × Global Illumination中用于分解局部光照项并选择顶点或片元求值位置;应由法线、光向量、视向量、各光照项和插值位置确认,而不是只凭术语出现。

surface rendering

surface rendering在Illumination Models and Surface-Rendering Methods × Global Illumination中用于分解局部光照项并选择顶点或片元求值位置;应由法线、光向量、视向量、各光照项和插值位置确认,而不是只凭术语出现。

global illumination

global illumination在Illumination Models and Surface-Rendering Methods × Global Illumination中用于把表面之间的间接能量交换纳入图像;应由面片面积、形状因子和、发射项与迭代残差确认,而不是只凭术语出现。

radiosity

radiosity在Illumination Models and Surface-Rendering Methods × Global Illumination中用于把表面之间的间接能量交换纳入图像;应由面片面积、形状因子和、发射项与迭代残差确认,而不是只凭术语出现。

coordinate space

coordinate space:坐标空间声明数值当前属于模型、世界、观察、裁剪或设备阶段。

raster state

raster state:光栅状态决定覆盖、深度、混合和面剔除等离散规则。

阅读导航

← Visible-Surface Detection Methods · Texturing and Surface-Detail Methods × Color Models and Color Applications →

讨论

评论区加载中…