两层半透明图形即使使用相同的透明度,前后顺序不同也可能显示不同颜色。每层都混合自己与后面的结果,所以不能只把所有颜色简单相加。
本篇用一组独立输入把规则展开为可重复核对的记录。先确认单位、编号及边界,再自行尝试推演,然后寻找与下面过程第一次不同的位置。所有结果只在这里写明的规则下成立,不能当作所有游戏的统一实现。
规则与输入
使用零到一百的线性灰度单位,底层完全不透明。每覆盖一层,结果等于该层灰度乘透明度,加下方结果乘一减透明度;三层按给定顺序从下到上叠加,并与完全倒序比较。
不透明底层灰度84 [[[95, '1/2'], [33, '3/4'], [32, '1/4']], [[19, '3/4'], [82, '3/4'], [42, '3/4']], [[54, '1/4'], [45, '1/4'], [65, '1/4']], [[66, '3/4'], [46, '1/2'], [84, '1/4']], [[41, '1/2'], [22, '1/4'], [86, '1/2']], [[82, '1/4'], [5, '1/4'], [61, '1/4']], [[59, '1/4'], [90, '1/4'], [96, '1/2']], [[11, '3/4'], [29, '3/4'], [25, '1/2']], [[6, '1/2'], [12, '3/4'], [69, '3/4']]]
逐步推演
第1组从底向上图层[[95, '1/2'], [33, '3/4'], [32, '1/4']],逐层正序结果['179/2', '377/8', '1387/32'],倒序结果['71', '85/2', '275/4'],最终差-813/32。
第2组从底向上图层[[19, '3/4'], [82, '3/4'], [42, '3/4']],逐层正序结果['141/4', '1125/16', '3141/64'],倒序结果['105/2', '597/8', '1053/32'],最终差1035/64。
第3组从底向上图层[[54, '1/4'], [45, '1/4'], [65, '1/4']],逐层正序结果['153/2', '549/8', '2167/32'],倒序结果['317/4', '1131/16', '4257/64'],最终差77/64。
第4组从底向上图层[[66, '3/4'], [46, '1/2'], [84, '1/4']],逐层正序结果['141/2', '233/4', '1035/16'],倒序结果['84', '65', '263/4'],最终差-17/16。
第5组从底向上图层[[41, '1/2'], [22, '1/4'], [86, '1/2']],逐层正序结果['125/2', '419/8', '1107/16'],倒序结果['85', '277/4', '441/8'],最终差225/16。
第6组从底向上图层[[82, '1/4'], [5, '1/4'], [61, '1/4']],逐层正序结果['167/2', '511/8', '2021/32'],倒序结果['313/4', '959/16', '4189/64'],最终差-147/64。
第7组从底向上图层[[59, '1/4'], [90, '1/4'], [96, '1/2']],逐层正序结果['311/4', '1293/16', '2829/32'],倒序结果['90', '90', '329/4'],最终差197/32。
第8组从底向上图层[[11, '3/4'], [29, '3/4'], [25, '1/2']],逐层正序结果['117/4', '465/16', '865/32'],倒序结果['109/2', '283/8', '547/32'],最终差159/16。
第9组从底向上图层[[6, '1/2'], [12, '3/4'], [69, '3/4']],逐层正序结果['45', '81/4', '909/16'],倒序结果['291/4', '435/16', '531/32'],最终差1287/32。
正序与倒序都由各自的覆盖顺序推导,灰度保持在零到一百范围内。
怎样独立检查
将三次混合展开为底层及各图层灰度的加权和;系数应非负且总和为一。独立计算这些最终权重,可核对逐层更新的结果及其为何受顺序影响。
灰度是本例的线性数值模型,不把真实图像编码值当作已经校正的亮度。其他混合模式、预乘表示或透明背景都需要另写公式。倒序结果有时恰好相同,并不证明一般情况下层序无关。
练习时先保存原始输入及中间结果,再只改变一个条件观察差异。重点检查空状态、相同数值、恰好到达边界和最后一步。不要为了凑出相同的最终结果而忽略较早出现的偏差,过程和结论都应能由同一套规则解释。
