红警DIY论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 471|回复: 0

【水】为什么RA2里Leptons和像素的关系是6倍

[复制链接]
发表于 2020-4-3 15:12:16 | 显示全部楼层 |阅读模式
其实我是想说做了这么多年的vxl才真正弄明白FLH开火点的计算和之前学到的不一样

lepton是WW祖传的一种比格子更小的长度尺寸,一个格子的边长=256 leptons。那么一个格子是多大呢?RA2系列的引擎里,格子的外观是相当于一个正方形转置了45度再沿着垂直方向压扁到1/2的菱形。菱形在水平方向上的长对角线是60像素,垂直方向上的短对角线是30像素。当然,它们在伪3D的世界里代表的都是同一段长度,只是因为角度不同所以看起来不一样(乘以sin夹角)。

数学稍好的同学一下就能算出,一个格子的边长应该是60÷√2≈42.426像素,从而可以得出,一个像素等于256÷42.426=6.034 leptons。
对于F和L,即水平方向上的位移,这个6.034就够用了。但是对于H也就是竖直方向上的位移,我一直以来看到过好几个不同的说法,有4.2、5.3、7,众说纷纭,一直以来我也是凭经验调节。结果今天测试HVA中心的时候顺手试了了一下居然也是6.034。也就是说,在HVA里测出来的Y值偏移和Leptons的比例关系和X、Z都是一样的。但是在Art里的FLH中每提升300个leptons,游戏里差不多只提升了43个像素,这个怎么来的呢。

答案还是夹角。RA2系列的平台里的Z轴并不是平行于屏幕垂直向上的,而是稍微指向屏幕外。从水平面两个方向上显示比例是2:1可以很容易算出水平面与显示器平面的夹角是arctan(1/2)≈26.57°,垂直方向的像素长度在渲染游戏画面时就会相应的缩短到原来的cos(26.57°)=√3/2≈0.866。这样一来,300个leptons对应到49.718个VXL体素,最后会对应成43.057个屏幕像素,除一下可以得到1画面垂直像素=6.97leptons。

这样就可以再算一些有趣的东西了,比如:
地图中每提高一层地形高度会让一个地块的画面向上偏移15像素,因此可以得知地图中的1个高度差=15屏幕像素=17.32 VXL体素,或者104.51 leptons。
一个1x1面积,1格地形高度的长方体,在VXL中约等于42x17x42体素。
一个普通正东西南北朝向的斜面的坡度是22.21°,
一层悬崖的高度是4层,即60屏幕像素 = 69.28 VXL体素 = 418.05 leptons
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY官方论坛

GMT+8, 2021-10-22 23:18 , Processed in 0.023374 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表