游戏知识实验课:半透明层叠加的先后次序——底灰度38上的九组三层覆盖(练习07)
两层半透明图形即使使用相同的透明度,前后顺序不同也可能显示不同颜色。每层都混合自己与后面的结果,所以不能只把所有颜色简单相加。
本篇用一组独立输入把规则展开为可重复核对的记录。先确认单位、编号及边界,再自行尝试推演,然后寻找与下面过程第一次不同的位置。所有结果只在这里写明的规则下成立,不能当作所有游戏的统一实现。
规则与输入
使用零到一百的线性灰度单位,底层完全不透明。每覆盖一层,结果等于该层灰度乘透明度,加下方结果乘一减透明度;三层按给定顺序从下到上叠加,并与完全倒序比较。
不透明底层灰度38 [[[24, '3/4'], [14, '1/2'], [55, '1/4']], [[64, '1/2'], [69, '1/4'], [58, '1/2']], [[84, '1/4'], [69, '1/2'], [20, '1/2']], [[36, '3/4'], [47, '1/2'], [43, '3/4']], [[67, '3/4'], [42, '1/4'], [88, '3/4']], [[18, '1/4'], [89, '1/4'], [13, '1/4']], [[26, '3/4'], [56, '1/4'], [98, '1/2']], [[87, '1/4'], [80, '1/2'], [16, '1/4']], [[75, '3/4'], [15, '3/4'], [53, '3/4']]]
逐步推演
第1组从底向上图层[[24, '3/4'], [14, '1/2'], [55, '1/4']],逐层正序结果['55/2', '83/4', '469/16'],倒序结果['169/4', '225/8', '801/32'],最终差137/32。
第2组从底向上图层[[64, '1/2'], [69, '1/4'], [58, '1/2']],逐层正序结果['51', '111/2', '227/4'],倒序结果['48', '213/4', '469/8'],最终差-15/8。
第3组从底向上图层[[84, '1/4'], [69, '1/2'], [20, '1/2']],逐层正序结果['99/2', '237/4', '317/8'],倒序结果['29', '49', '231/4'],最终差-145/8。
第4组从底向上图层[[36, '3/4'], [47, '1/2'], [43, '3/4']],逐层正序结果['73/2', '167/4', '683/16'],倒序结果['167/4', '355/8', '1219/32'],最终差147/32。
第5组从底向上图层[[67, '3/4'], [42, '1/4'], [88, '3/4']],逐层正序结果['239/4', '885/16', '5109/64'],倒序结果['151/2', '537/8', '2145/32'],最终差819/64。
第6组从底向上图层[[18, '1/4'], [89, '1/4'], [13, '1/4']],逐层正序结果['33', '47', '77/2'],倒序结果['127/4', '737/16', '2499/64'],最终差-35/64。
第7组从底向上图层[[26, '3/4'], [56, '1/4'], [98, '1/2']],逐层正序结果['29', '143/4', '535/8'],倒序结果['68', '65', '143/4'],最终差249/8。
第8组从底向上图层[[87, '1/4'], [80, '1/2'], [16, '1/4']],逐层正序结果['201/4', '521/8', '1691/32'],倒序结果['65/2', '225/4', '1023/16'],最终差-355/32。
第9组从底向上图层[[75, '3/4'], [15, '3/4'], [53, '3/4']],逐层正序结果['263/4', '443/16', '2987/64'],倒序结果['197/4', '377/16', '3977/64'],最终差-495/32。
正序与倒序都由各自的覆盖顺序推导,灰度保持在零到一百范围内。
怎样独立检查
将三次混合展开为底层及各图层灰度的加权和;系数应非负且总和为一。独立计算这些最终权重,可核对逐层更新的结果及其为何受顺序影响。
灰度是本例的线性数值模型,不把真实图像编码值当作已经校正的亮度。其他混合模式、预乘表示或透明背景都需要另写公式。倒序结果有时恰好相同,并不证明一般情况下层序无关。
练习时先保存原始输入及中间结果,再只改变一个条件观察差异。重点检查空状态、相同数值、恰好到达边界和最后一步。不要为了凑出相同的最终结果而忽略较早出现的偏差,过程和结论都应能由同一套规则解释。
