» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[其他] 突然想到了halo3回放模式的一个问题

引用:
原帖由 msforza 于 2007-9-27 18:18 发表

也有可能,但是如果回放速度是2倍呢,那岂不马上三红?或者是隔帧渲染?我觉得只记录结果会更省资源,回放可以做的更漂亮
我举个只记录输入,回放的时候即时计算物理和ai失败的典型例子吧,xb时代的rsc2,如 ...
事实上Halo3在加速回放的时候,在复杂场景下会发生严重的跳帧。性能很差的机器回放SC的录像选择高倍速也会跳帧。


TOP

引用:
原帖由 xphi 于 2007-9-27 19:19 发表


事实上Halo3在加速回放的时候,在复杂场景下会发生严重的跳帧。性能很差的机器回放SC的录像选择高倍速也会跳帧。
跳的不明显,我一直以为是隔帧渲染



TOP

在火爆的对战场景按住RT不放的话,有时可能只有几FPS。


TOP

受不了你们了。。还真以为回放录像的时候是真计算了一把,肯定是把渲染命令拿出来重新执行了一次罢了,至于跳祯,那么复杂的场景,你让它加速绘制当然不可能,所以就出现了那种情况

TOP

引用:
原帖由 xphi 于 2007-9-27 16:46 发表


游戏里的物件不是一个孤立的存在,不像做Flash,制定轨迹就可以了,如果记录轨迹的话,还要记录物件之间的交互,记录量会更加的大。

目前大部分的游戏录像,包括SC,Halo3,几乎所有的模拟器,都是记录玩 ...
我觉得你说的这个方法实在太多余,直接记录渲染命令让图像引擎重新渲染一遍就是了,如果那些信息都要记录然后重新玩一遍,那举个例子,一次判定,你是记录操作信息还是记录结果信息,如果记录了结果那还记录操作信息干嘛,重新计算不是还要耗费时间,毕竟,录像看就好了,不用操纵

TOP

引用:
原帖由 karsus 于 2007-9-27 20:36 发表


我觉得你说的这个方法实在太多余,直接记录渲染命令让图像引擎重新渲染一遍就是了,如果那些信息都要记录然后重新玩一遍,那举个例子,一次判定,你是记录操作信息还是记录结果信息,如果记录了结果那还记录 ...
别的太明显的错误就不和你说了,知不知到Halo3的回放是可以自由移动镜头的?

TOP

引用:
原帖由 xphi 于 2007-9-27 20:41 发表


别的太明显的错误就不和你说了,知不知到Halo3的回放是可以自由移动镜头的?
。。自由移动镜头和我说的有什么关系吗?只要不能操作,那我说的方法就没问题

恩,如果你指的是视野外的内容,记录命令和去执行是两码事吧,至于细节层次问题,那只不过是调用模型贴图罢了,除非移动了镜头渲染效果发生了本质变化才能说明额外的信息在回放的过程中被重新计算了

总的来说,我觉得你说的方法实在太不实际,具体实现起来太麻烦了,基本上只需要调用渲染单元,可能再加上一些单元来处理你在移动镜头时的判定罢了,记录操作信息再计算太不实际而且没有必要

TOP

引用:
原帖由 hudihutian 于 2007-9-27 14:18 发表
所有角色的坐标信息和动作信息?

omg

地图如果是1000000x1000000像素的,每秒60帧,仅仅记录主角的坐标信息每秒要多少字节?
又不是记录坐标,他只要记录你的操作就行了,例如记录你按了10秒前,再按了10秒左,然后回放的时候你自动往前10秒再往做10秒,中间的左边一运算不就出来了嘛。
至于AI的行动,魔兽星际的录象大家总看过吧,里面还不是有NPC一样的AI,总不能说每次看录象都不一样吧,具体这个怎么实现的我也不清楚

TOP

引用:
原帖由 karsus 于 2007-9-27 21:21 发表


。。自由移动镜头和我说的有什么关系吗?只要不能操作,那我说的方法就没问题

恩,如果你指的是视野外的内容,记录命令和去执行是两码事吧,至于细节层次问题,那只不过是调用模型贴图罢了,除非移动了镜 ...
不知道你在胡扯什么。游戏的时候MC视角外的东西全部都被clip掉,哪里来的渲染指令?
回放的时候可以第一视角第三视角随便切换,可以360随便转视角,还可以自由控制camera去游戏里去不了的地方,这些地方正常游戏怎么来的“渲染指令”?
你以为这里说“播片”就真是“播片”啊?

TOP

不知道游戏里各种爆炸的粒子系统是不是也把随机数种子都记录下来了,每个火花飞溅的角度都和进行游戏的时候一摸一样么?没查过。。。。。。

TOP

引用:
原帖由 江西恐龙 于 2007-9-27 15:28 发表
——A和B两个玩家,游戏一开始就按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死,他们的死亡瞬间将会是一致么?

你到现在还没有回答我的问题……
我回答你,如果A在时间T按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死
然后A再次在时间T按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死
然后A再再次在时间T按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死
那么这3次,A的死亡瞬间是一致的。
正因为你说A和B是两个玩家,那么他们就是两个随机种子,无论A是用即时存档还是别的不管什么方法再次进行游戏,再次按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死,那么随机种子都有可能变化了,结果都有可能不一样。
但是!A只要是再次在时间T这个时候按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死,那么他的死亡瞬间永远都是一致的。
但是!A已经在时间T按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死,那么A就不可能再次到时间T这个瞬间来按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死。
但是!只要A是在时间T这个瞬间按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死,那么他必定是在某一个固定的瞬间死掉!
至于!A已经过了时间T,他还能不能再回到时间T来再次进行按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死。这个问题我不得而知。
假设!A再次回到时间T,再次按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死,但是A的坐姿可能变化了,随机种子也可能发生变化了。
除非!A再次回到时间T,并且一切跟原先一样,说白了就是把A玩游戏的过程在时间T的瞬间来个即时存档,那么A再次按住“↑”键不动,不操作任何键。直到冲进敌人堆里被打死,A还是在那个瞬间死亡。


我晕了@_@

TOP

引用:
原帖由 xphi 于 2007-9-27 20:41 发表


别的太明显的错误就不和你说了,知不知到Halo3的回放是可以自由移动镜头的?
恩,算了,我觉得还是不要讨论这个问题了,因为没有人知道HALO的程序结构是怎么样的,图形引擎是怎么工作的,这个没个结果

不过我依然觉得绝对不是你说的办法,因为你那个。。是个最笨的办法。。全部重新计算,在知道具体的数据流程和结构的情况下要达到那种回放有很多优化方法,绝对不需要记录那么多数据,既然结果之前都出来了,为什么我要把它重新计算出来

至于你说的自由移动问题,我觉得很好解决,只需要让程序知道那个需要绘制,具体绘制哪个面在移动的过程再判断就是了,具体的如光照方向之类的直接调用结果岂不快些

TOP

引用:
原帖由 xphi 于 2007-9-27 20:41 发表


别的太明显的错误就不和你说了,知不知到Halo3的回放是可以自由移动镜头的?
能移动镜头很普遍啊,好多游戏的录象都是可以移动镜头的啊,反正他就是按照记录重新渲染一遍,你想怎么看就怎么看,但是也只能看不能摸。要是我看到一半的时候啊,觉得我这个地方打得不好,我一按个暂停,我进去了,我能操作了,我换个打法,那多NB啊,期待此技术的出现

TOP

引用:
原帖由 xekrn 于 2007-9-27 21:28 发表

不知道你在胡扯什么。游戏的时候MC视角外的东西全部都被clip掉,哪里来的渲染指令?
回放的时候可以第一视角第三视角随便切换,可以360随便转视角,还可以自由控制camera去游戏里去不了的地方,这些地方正常 ...
你搞清楚我指的是什么再说吧,绘制的场景是固定的不用更改,具体哪个面可见,显示在显示器上那是另外一个流程

如果你能找到图片,证明游戏里你操纵MC使得某物体对某方向有镜面反射效果,如果你在回放镜头的时候,反射方向随你镜头方向改变,OK,那算我错了,如果不变,你就闭嘴吧

TOP

引用:
原帖由 karsus 于 2007-9-27 21:41 发表


恩,算了,我觉得还是不要讨论这个问题了,因为没有人知道HALO的程序结构是怎么样的,图形引擎是怎么工作的,这个没个结果

不过我依然觉得绝对不是你说的办法,因为你那个。。是个最笨的办法。。全部重新 ...
重新计算不是笨办法,如果AI结构写的好完全做的到,况且这种做法从CS到SC到WC都一直在用了。

另外我倒是想听听你怎么解释你的“渲染指令”。

如果一个阿兵跟在MC身后直到关末都没进MC的视野,如果游戏的PVS做的好这个阿兵的模型顶点根本不会进GPU,但是我回放模式可以看的一清二楚,请问是怎么通过“渲染指令”做出来的?

TOP

发新话题
     
官方公众号及微博