多个光源照到同一格时,可以只保留最强贡献,也可以累加后限制最大值。两种规则都能得到平滑数值,但明暗交界和重叠处的结果并不相同。
本篇用一组独立输入把规则展开为可重复核对的记录。先确认单位、编号及边界,再自行尝试推演,然后寻找与下面过程第一次不同的位置。所有结果只在这里写明的规则下成立,不能当作所有游戏的统一实现。
规则与输入
一维十五格,每个光源有位置、初始强度和每格衰减量。对各格贡献为初始强度减距离乘衰减,低于零取零。分别计算所有贡献的最大值,以及贡献总和限幅到十二;光源强度不超过十二。
光源[格位置,初始强度,每格衰减] [[7, 7, 2], [10, 12, 1], [1, 5, 3]]
逐步推演
格0的三源贡献[0, 2, 2],取最亮为2,累加再限幅到12为4,两模式差2。
格1的三源贡献[0, 3, 5],取最亮为5,累加再限幅到12为8,两模式差3。
格2的三源贡献[0, 4, 2],取最亮为4,累加再限幅到12为6,两模式差2。
格3的三源贡献[0, 5, 0],取最亮为5,累加再限幅到12为5,两模式差0。
格4的三源贡献[1, 6, 0],取最亮为6,累加再限幅到12为7,两模式差1。
格5的三源贡献[3, 7, 0],取最亮为7,累加再限幅到12为10,两模式差3。
格6的三源贡献[5, 8, 0],取最亮为8,累加再限幅到12为12,两模式差4。
格7的三源贡献[7, 9, 0],取最亮为9,累加再限幅到12为12,两模式差3。
格8的三源贡献[5, 10, 0],取最亮为10,累加再限幅到12为12,两模式差2。
格9的三源贡献[3, 11, 0],取最亮为11,累加再限幅到12为12,两模式差1。
格10的三源贡献[1, 12, 0],取最亮为12,累加再限幅到12为12,两模式差0。
格11的三源贡献[0, 11, 0],取最亮为11,累加再限幅到12为11,两模式差0。
格12的三源贡献[0, 10, 0],取最亮为10,累加再限幅到12为10,两模式差0。
格13的三源贡献[0, 9, 0],取最亮为9,累加再限幅到12为9,两模式差0。
格14的三源贡献[0, 8, 0],取最亮为8,累加再限幅到12为8,两模式差0。
十五格中9格的两种合成结果不同。
怎样独立检查
逐一列出每格来自每个光源的贡献,再独立求最大值和限幅和。只有一个正贡献时两种模式相同,多源重叠可能不同;都不把负贡献带入最终结果。
这是风格化游戏数值规则,不是现实光学模型。颜色混合、遮挡和二维距离都没有包含。本例用于解释同一批光源为什么在不同合成规则下看起来更亮,不能据此判断某个实际渲染器的计算方式。
练习时先保存原始输入及中间结果,再只改变一个条件观察差异。重点检查空状态、相同数值、恰好到达边界和最后一步。不要为了凑出相同的最终结果而忽略较早出现的偏差,过程和结论都应能由同一套规则解释。
