北京市东城区建国门内大街28号民生金融中心C座23层 guanwang@www.j9.com

公司新闻

游戏机制笔记:三角面上的位置与线性灰度插值——16×8直角三角形内的插值(例04)

2026-10-24

三角形内部的一个位置可以由三个顶点的权重表示。权重非负且总和为一时,位置留在三角形内部或边界;用同一组权重混合灰度,就得到一项清楚可复算的线性插值练习。

下面使用一组独立练习数据,说明输入、规则、处理顺序和输出之间的关系。建议先遮住结果自己推演,再逐步对照;如果出现差异,应先定位第一处不同,并检查边界条件,不要只把最后的答案改成一样。

规则和数据

本例使用直角三角形A在原点、B在横轴、C在纵轴,权重用总和为十的整数份表示。灰度只是自定义线性数值,不是经过显示伽马变换后的真实亮度,也不讨论透视或纹理采样。

A(0,0)、B(16,0)、C(0,8) 顶点灰度[80, 30, 45] 权重份数[(9, 0, 1), (3, 5, 2), (6, 2, 2), (1, 1, 8), (9, 1, 0), (5, 4, 1), (0, 6, 4), (4, 2, 4), (7, 1, 2)]

逐步推演

权重份数(9,0,1),合计十份;位置(0,4/5),灰度为(9×80+0×30+1×45)÷10=153/2。

权重份数(3,5,2),合计十份;位置(8,8/5),灰度为(3×80+5×30+2×45)÷10=48。

权重份数(6,2,2),合计十份;位置(16/5,8/5),灰度为(6×80+2×30+2×45)÷10=63。

权重份数(1,1,8),合计十份;位置(8/5,32/5),灰度为(1×80+1×30+8×45)÷10=47。

权重份数(9,1,0),合计十份;位置(8/5,0),灰度为(9×80+1×30+0×45)÷10=75。

权重份数(5,4,1),合计十份;位置(32/5,4/5),灰度为(5×80+4×30+1×45)÷10=113/2。

权重份数(0,6,4),合计十份;位置(48/5,16/5),灰度为(0×80+6×30+4×45)÷10=36。

权重份数(4,2,4),合计十份;位置(16/5,16/5),灰度为(4×80+2×30+4×45)÷10=56。

权重份数(7,1,2),合计十份;位置(8/5,8/5),灰度为(7×80+1×30+2×45)÷10=68。

全部权重非负且总和为一,位置均在三角形内部或边界,灰度位于三个顶点值的范围内。

如何复核与应用

先根据结果坐标恢复B、C权重,再用一减两者之和恢复A权重,应该回到原输入。把灰度写成起点灰度加两条轴上的线性变化,也应得到相同结果,顶点与边界是很好的检查点。

一项权重为零时,位置落在另外两个顶点形成的边上;两项为零时就落在剩下的顶点上。边界不应因小数显示而被误判成外部点,因此本例一直保留精确分数,展示时再决定保留几位。

这是一套明确限定的教学模型,实际作品可能采用其他约定。记录实验时,保留原始输入、每步状态以及规则版本;调整一个条件后重新演算,并检查起点、终点、重复输入和刚好位于边界的情况,才能知道差异来自设计还是计算。