2012-01-05 68 views
1

我正在写关于自动移植性测试的硕士论文,并且想知道游戏开发人员在开发支持OpenGL和DirectX的游戏时是否有任何自动测试软件?从理论上讲,人们可以在游戏中自动运行特定序列的过程中记录屏幕,并分析OpenGL和DirectX记录,但是有一些技术方面会导致这种情况变得不可能吗?游戏开发:OpenGL和DirectX的自动测试

回答

2

我能想到的最接近的是Wine中的测试,它根据这些方法做了一些测试。

不幸的是,正确的测试是不可能的,测试过于依赖系统状态,并且实现不保证像素相同。 DirectX确实提供了可用于许多测试用途的参考实现,但我不知道OpenGL等价物。

录制屏幕会导致更多的错误,具体取决于它的执行方式。我看到的测试渲染了一个图像,然后从纹理数据中进行处理(类似于屏幕记录,但在单个帧上并且可能更精确)。尽管如此,整个事情很容易出错,而且可能会很慢。

1

从我的问题中可以看出,您试图比较OpenGL和DirectX渲染器的渲染结果,渲染相同的场景。

我唯一能想到的就是将场景渲染到两个渲染器中的纹理,并将它们保存为未压缩以供以后进行比较,或者使用中间渲染路径同时采用纹理和着色器渲染每像素 - 稍后将被评估为另一个纹理。

然而,这种比较的有用性在我看来是有争议的,因为很难自动判断错误只是实现中的微小差异还是实际可见的伪像,更不用说评估错误对用户的重要性了知觉。

而且这已经假定您能够使两个渲染器以完全相同的帧速率和相机位置运行,这不太可能。

我想你会在你的错误图像中有很多噪声和偏移来解释实际上找到任何有用的信息。

+0

是的,你正确理解我。帧速率等肯定会引入很多变量,使测试变得更加困难。当然可以有一个容差设置,以便如果两个特定图像的差异达到一定的数量,图像将发送给人类审阅者。不幸的是,自动过程可能非常容易出错,因此实施一个过程可能没有足够的利润。 – 2012-01-05 12:10:42

0

我知道,对于不同图形芯片在15年前完成的屏幕比较,我想你需要搜索图像质量指标。