“边境之地”的版本间的差异
BallanceBug(讨论 | 贡献) (2个标签:移动版编辑、移动网页编辑) |
BallanceBug(讨论 | 贡献) 小 (恢复Fps0605(讨论)的编辑至BallanceBug的最后版本) (1个标签:回退) |
||
(未显示2个用户的8个中间版本) | |||
第7行: | 第7行: | ||
| speedrun = unknown | | speedrun = unknown | ||
}} | }} | ||
− | “'''边境之地'''”是指[[Ballance/zh|Ballance]] | + | “'''边境之地'''”是指[[Ballance/zh|Ballance]]中[[坐标]]绝对值过大时(一般需要达到 2<sup>17</sup> = 131,072 以上)因表示坐标的浮点数运算错误造成的“奇异现象”。 |
− | “边境之地”现象可以通过在[[Virtools/zh|Virtools]]内修改物体坐标(以及玩家[[重生点]],因为距离过远,[[玩家球]] | + | “边境之地”现象可以通过在[[Virtools/zh|Virtools]]内修改物体坐标(以及玩家[[重生点]],因为距离过远,[[玩家球]]从原点附近直接前往几乎是不可能的)得到。由于会造成极度的卡顿,且制作也很麻烦,目前并没有被应用于任何[[原版关卡]]和[[自制地图]]中。 |
== 现象 == | == 现象 == | ||
− | + | “边境之地”现象仅会对坐标过大的轴的方向上物体的表现产生影响,若同时多个坐标轴的坐标过大,则物体在这些轴方向上的表现均会受到影响,但其他轴上不受影响。而玩家如果回到坐标值较小的地方,则会立即恢复正常。 | |
=== Virtools中 === | === Virtools中 === | ||
− | * | + | * 视角抖动,尤其是移动或旋转视角时; |
− | * 物体的移动不再“平滑流畅”,而是只能以一定的单位大小(如0.0625或1. | + | * 物体的移动不再“平滑流畅”,而是只能以一定的单位大小(如0.0625或1.25等)移动; |
− | * | + | * Virtools 中默认限制的最大坐标(可以在[[通用参数设置]]中更改,但“边境之地”现象不会改变)为 1,000,000。若物体被移动至此坐标附近,则物体将不会被显示,同时玩家在尝试移动物体时物体坐标总会被重置为 1,000,000,致使物体在被移动至此坐标后无法脱离。因此边境之地现象只能在玩家坐标低于 1,000,000 处被检验。 |
=== Ballance中 === | === Ballance中 === | ||
第25行: | 第25行: | ||
==== 坐标中等偏大 ==== | ==== 坐标中等偏大 ==== | ||
− | “坐标中等偏大”时的卡顿一般发生在坐标值为 100,000 至 500,000, | + | “坐标中等偏大”时的卡顿一般发生在坐标值为 100,000 至 500,000 左右时(更准确地说,2<sup>17</sup> = 131,072 ~ 2<sup>19</sup> = 524,288 中间),但也有配置较差的设备甚至在坐标为 10,000 处就能产生此现象。 |
* [[视角]]不断轻微抖动; | * [[视角]]不断轻微抖动; | ||
第33行: | 第33行: | ||
==== 坐标极大 ==== | ==== 坐标极大 ==== | ||
− | “坐标极大”一般指坐标在 | + | “坐标极大”一般指坐标在 2<sup>19</sup> = 524,288 左右以上时的现象。 |
* 视角剧烈抖动,玩家球运动时视角也会非常卡顿地移动,一部分[[机关]]也会抖动; | * 视角剧烈抖动,玩家球运动时视角也会非常卡顿地移动,一部分[[机关]]也会抖动; | ||
第44行: | 第44行: | ||
* 玩家球的移动''可能会''变得不流畅,类似于Virtools中移动物体时的现象。 | * 玩家球的移动''可能会''变得不流畅,类似于Virtools中移动物体时的现象。 | ||
** 但这也导致玩家球更容易对齐[[单轨]]。 | ** 但这也导致玩家球更容易对齐[[单轨]]。 | ||
+ | |||
+ | === 超出 Virtools 所允许编辑的界限 === | ||
+ | |||
+ | 玩家在 10<sup>7</sup> = 10,000,000 处视角更加剧烈的抖动,几乎无法正常游戏;在 2<sup>31</sup> = 2,147,483,648 处已经无法移动。 | ||
== 成因 == | == 成因 == | ||
{{NeedProfessor/zh}} | {{NeedProfessor/zh}} | ||
− | * | + | * Ballance 中,物件的坐标以浮点数表示。因此数值过大时,表示坐标的浮点值精确度下降。 |
+ | ** 坐标以[[Wikipedia:zh:单精度浮点数|单精度浮点数]](即32位浮点数)表示,但单精度浮点数仅有23位被用于表示有效数字;因此,在 2<sup>''n''</sup> 至 2<sup>''n''+1</sup> 的位置,最低误差是 2<sup>''n''−23</sup>。 | ||
+ | * 视角的“摄像机”也是一种实体,同样受到此限制。 | ||
== 画廊 == | == 画廊 == |
2020年8月16日 (日) 15:58的最新版本
玩家X和Z坐标绝对值达到 600,000 左右时转换视角,视角看似变成了非90度,而分数球“解体”。 | |
漏洞基本信息 | |
---|---|
常用名称 | 边境之地 |
是否存在固定产生方法 | 是 |
是否会导致游戏崩溃 | 否,但重复多次后可能会 |
是否允许用于疯狂模式竞速 | 状况未知 |
“边境之地”是指Ballance中坐标绝对值过大时(一般需要达到 217 = 131,072 以上)因表示坐标的浮点数运算错误造成的“奇异现象”。
“边境之地”现象可以通过在Virtools内修改物体坐标(以及玩家重生点,因为距离过远,玩家球从原点附近直接前往几乎是不可能的)得到。由于会造成极度的卡顿,且制作也很麻烦,目前并没有被应用于任何原版关卡和自制地图中。
目录
现象
“边境之地”现象仅会对坐标过大的轴的方向上物体的表现产生影响,若同时多个坐标轴的坐标过大,则物体在这些轴方向上的表现均会受到影响,但其他轴上不受影响。而玩家如果回到坐标值较小的地方,则会立即恢复正常。
Virtools中
- 视角抖动,尤其是移动或旋转视角时;
- 物体的移动不再“平滑流畅”,而是只能以一定的单位大小(如0.0625或1.25等)移动;
- Virtools 中默认限制的最大坐标(可以在通用参数设置中更改,但“边境之地”现象不会改变)为 1,000,000。若物体被移动至此坐标附近,则物体将不会被显示,同时玩家在尝试移动物体时物体坐标总会被重置为 1,000,000,致使物体在被移动至此坐标后无法脱离。因此边境之地现象只能在玩家坐标低于 1,000,000 处被检验。
Ballance中
坐标中等偏大
“坐标中等偏大”时的卡顿一般发生在坐标值为 100,000 至 500,000 左右时(更准确地说,217 = 131,072 ~ 219 = 524,288 中间),但也有配置较差的设备甚至在坐标为 10,000 处就能产生此现象。
- 视角不断轻微抖动;
- 分数球的“分数小球”和其“尾迹”分离,并沿着坐标值偏高的轴上向相反方向拉伸,时间越长偏移越远;运动变慢,由于“分数小球”和其“尾迹”分离,最后会无法正常追上玩家球,而是追逐相对于玩家球偏移了的某个位置;
- 部分粒子效果的透明层消失,导致贴图异常(看起来像是贴图缺失一样)。
坐标极大
“坐标极大”一般指坐标在 219 = 524,288 左右以上时的现象。
- 视角剧烈抖动,玩家球运动时视角也会非常卡顿地移动,一部分机关也会抖动;
- 分数球表现类似于#坐标中等偏大时,但随着时间流逝,运动更不规则,最终会像是解体了一样;
- 球在重生点重生时旋转着的“激光球”位置与球重生点实际所在的位置偏移(此现象甚至在玩家球位置恢复到坐标较小处时仍能保留),但球仍然在正常的位置重生;
- 变球器变球时将球“吸入”的位置不再是变球器中心,而是存在偏移;
- 飞碟的顶部“盖子”与飞碟本体偏移(偏移方向与坐标过大的坐标轴有关);
- 玩家球的移动可能会变得不流畅,类似于Virtools中移动物体时的现象。
- 但这也导致玩家球更容易对齐单轨。
超出 Virtools 所允许编辑的界限
玩家在 107 = 10,000,000 处视角更加剧烈的抖动,几乎无法正常游戏;在 231 = 2,147,483,648 处已经无法移动。
成因
此条目需要专业人士进行改进 | ||
---|---|---|
- Ballance 中,物件的坐标以浮点数表示。因此数值过大时,表示坐标的浮点值精确度下降。
- 坐标以单精度浮点数(即32位浮点数)表示,但单精度浮点数仅有23位被用于表示有效数字;因此,在 2n 至 2n+1 的位置,最低误差是 2n−23。
- 视角的“摄像机”也是一种实体,同样受到此限制。