红警DIY论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 鬼蟬

上头,还是想研究vpl

[复制链接]
 楼主| 发表于 2020-4-3 15:27:43 | 显示全部楼层
西城杨柳 发表于 2020-4-3 15:19
但是角度是从normal算出来的,而且游戏运行时不一定会算角度,有可能直接从normal算出section。这一周期 ...

Normals和每一个方向角之间是存在对照表的,不是计算所得。Normal和方向角之间的关系几乎是杂乱的,只不过在排列过程中存在一些相对连续的段落。
发表于 2020-4-3 15:30:22 | 显示全部楼层
鬼蟬 发表于 2020-4-3 15:27
Normals和每一个方向角之间是存在对照表的,不是计算所得。Normal和方向角之间的关系几乎是杂乱的,只不 ...

是查表得到的?游戏里也是这么计算的?
 楼主| 发表于 2020-4-3 15:35:50 | 显示全部楼层
西城杨柳 发表于 2020-4-3 15:30
是查表得到的?游戏里也是这么计算的?

我对游戏引擎没有研究,游戏中的计算方式不明,否则就不需要这样的研究,直接从引擎的角度解构就可以了。
至少目前来说这套2004年由外网网友Bglman发布的法线-方向角的对照表还是颇为准确的,我用来做手法也完全看不出任何不妥的地方。至于是不是真实值,以及游戏中的计算方式是不是这样就不得而知了。
发表于 2020-4-3 17:07:10 | 显示全部楼层
看不懂,原理和我自己的理解好像不太一样emmmm,好像很厉害的样子
发表于 2020-4-3 18:14:26 | 显示全部楼层
鬼蟬 发表于 2020-4-3 15:35
我对游戏引擎没有研究,游戏中的计算方式不明,否则就不需要这样的研究,直接从引擎的角度解构就可以了。 ...

刚才逆向了一下引擎的代码,VXL相关代码似乎在0x755DB0附近。不过那里一大堆虚函数调用,静态反汇编根本看不出来做了什么。
发表于 2020-4-14 04:18:48 | 显示全部楼层
我这里有一丶丶其他工作 不知道能不能帮上忙
如果假设游戏中逻辑“光源”的方向为朝向为平行于地面沿轴朝游戏内右上角,vxl颜色为“漫反射颜色”,
按照与光源夹角0~90°线性对应vpl的sections,以ts法线的flata.vxl为案例,可以得到如下的效果:

和游戏内有一些差别;
上述渲染利用了游戏中的法向量表:
法线具有四种模式,对应四个法线表,分别具有16 36 64 245个法向量,其中第二个和第四个分别对应ts和ra2的
游戏内四种法向量表值见附件(可能会出现最后会有些不对的地方);
如果把上述的法向量表转成RGB存成色盘((nv + 1.0)*127),将会和vxlse139+的法线编辑界面较一致
[url=]normals.7z[/url]
vxl_render_test.png

normals.7z

3.18 KB, 下载次数: 5

法向量表

 楼主| 发表于 2020-4-19 07:00:47 | 显示全部楼层
Tse 发表于 2020-4-15 02:58
这里有一些前面为了弄其他东西弄得,不知道有没有用。。。
假设游戏内逻辑“光源”是朝着游戏内右上(-y) ...

从数据上也能说明这个规律相似但不准确,你做的图就非常直观地表现了这个问题,所以这个东西目前还是卡住了
然而光源方向并不是在VXL的右上,它不会随着VXL一起旋转的
发表于 2020-4-22 03:45:00 | 显示全部楼层
鬼蟬 发表于 2020-4-19 07:00
从数据上也能说明这个规律相似但不准确,你做的图就非常直观地表现了这个问题,所以这个东西目前还是卡住 ...

确实,至少角度需要修正
发表于 2020-4-22 03:49:08 | 显示全部楼层
西城杨柳 发表于 2020-4-3 18:14
刚才逆向了一下引擎的代码,VXL相关代码似乎在0x755DB0附近。不过那里一大堆虚函数调用,静态反汇编根本 ...

此处开始应该是vxl对象的构造函数,用于从一个文件对象中解析vxl文件为一个vxl对象
第一个参数从ecx传入自然是对象本身this,然后第二个参数便是ra2自己的文件对象
第三个参数似乎是决定是否使用vxl文件内置的色盘
发表于 2020-4-22 10:03:30 | 显示全部楼层
Tse 发表于 2020-4-22 03:49
此处开始应该是vxl对象的构造函数,用于从一个文件对象中解析vxl文件为一个vxl对象
第一个参数从ecx传入 ...

主要是后面一大堆虚函数调用,太难读了,看不出用的什么计算方法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2023-10-4 23:40 , Processed in 0.070085 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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