maker
#1
首先声明,本人是技术/画面党,虽然不懂技术,但是非常关注游戏所使用的技术。
也许很多人会抱怨“为何星球表面材质不清晰”,飞船看上去“塑料”等等。但请注意:Infinity绝非普通游戏,单说星球:Infinity要完成整个星期的材质贴图!目前来说以地图巨大的Crysis来说,开发者所面临的地形贴图也仅仅是几平方公里的区域。而Infinity要对付的可是整个星球!
如果你想要不同的星球风貌(意味着使用更多不同材质),当然没问题,准备好2GB以上的显存吧;这些还仅仅是用作行星材质缓冲。那玩家飞船?地面建筑呢?好吧,再准备2GB显存吧!
可以说Infinity创造了一个个技术奇迹;技术、画面党们,来享受这个跨时代的技术盛宴吧!
很久没沙发了
画面好不奇怪,IA本来就是专攻视效的程序
材质,不算什么大问题,而且其实一个星球的材质也没多少吧,再加上过程生成技术是最善于压缩这类数据的
真正决定画面质量的是“渲染”,材质决定了画面风格、真实度、精细度等等,当然,材质粗糙了也不行
最后,4G内存无论如何也用不了吧,目前这个引擎,再优化下的话,也许400M就够用了……
CPU才更要注意(大概……)
过程生成最大的亮点就是用超小体积的程序实现华丽效果啊
举个例子,我们现在要生成一条彩虹
常规做法是绘制一个彩虹的图片再显示出来
而使用过程生成的话,只需要:
1.显示颜色xx,xx,xx
2.坐标+1
3.颜色值+1
循环,直到255,255,255
论坛里好像有表现此特性的程序下载,也有讨论,不过不好找了
11134
#6
有个过程生成的小游戏。。恩。。几百K把。。。但是跑出几百M的效果
因为是大型程序,大概会采取让用户自己选择是否把运算结果保留在硬盘上的方式吧,要是每次都从头演算那也太那啥了……
11134
#9
:7_473: :7_473: :7_473: 可以这么理解
maker
#11
[quote=“sonil, post: 10, topic: 11379”]
原帖由 sonil 于 2008-5-17 12:11 发表 
看来楼主不了解过程生成 [/quote]
那还请sonil做点简单解释~
我想IA在这里说得很明白了:
https://forums.infinity-game.com/t/topic/9679/1
-
显存使用:对于1000个256x256x4的地形块,这个算法大约会用掉256MB的显存。如果大小是128x128的话,则只需要64MB,不过这个时候纹理看起来就不是很清楚了。
-
少许的延迟。这主要取决于像素着色器能以多快的速度渲染一个材质块。
-
无法进行材质压缩。因为材质运算是在GPU系统中进行,而材质压缩是由基于CPU系统的驱动程序来完成,打开材质压缩功能后,将会把它们从GPU系统下载到CPU系统,执行压缩后再重新传回GPU处,这将严重拖慢程序的运行。
-因为每个地形块只有唯一一个材质,当地形的LOD值(Level Of Detail细节水平)达到最大深度时(最靠近地面的时候),贴图当然无法被继续优化,你就会看到一片模糊。
-
屏幕分辨率一直都在提升。当时,128x128的纹理在800x600的分辨率下看起来还过得去,但是在1680x1050下就惨不忍睹了。256x256的能好一些,但是依然有些模糊。如果继续发展下去的话,我们就要用512x512的了,不过这会吃掉1G的显存。
-
当然,还必须留些显存给舰船材质,背景贴图,特效,图形用户界面,特效缓存,等等等等…因而占用100%的显存来做地形材质显然是不现实的.恩恩,50%还不错。(我再汗哪!!)
-
无法再做凹凸/法线贴图。要做的话就要再为每个地形块准备一个可渲染材质,显存消耗就直接乘2了(巨汗啊!!!)
总结
如果现在我只是简单地重新使用这种技术,结果将是:
- 首先我们假设手头有一张带512MB显存的显卡。
- 扣掉256MB来做地形材质贴图。
- 再取一半去做凹凸贴图,于是真正可用的就只有128MB了。
- 对于有1000个地形块的场景,这将意味着每块最高只能达到128x128的大小了。
- 显然对于高分辨率来说这看起来并不爽(1280x1024, 1680x1050, 等等…)
sonil
#13
IA解释的够清楚了吧
这个游戏的过程生成和对显卡的需求没有关系
场景不会全部放到内存里 又何来“Infinity要完成整个星期的材质贴图!”?
你要看到什么 才会处理什么
画质=银子
还有,IA只是在考虑如何压缩材质,何不考虑下减多边形呢?筛网也不是什么复杂的技术吧
** 楼主可以简单的理解为,类似于。要表达一些看似很复杂的图形,服务器上只是记录了几个简单的方程式而已,然后方程式在我们的客户电脑上再通过复杂的运算,得到那些很复杂的图形。所以,对玩家电脑的CPU运算要求会比较高吧。**
** 服务器,只记录和传输过来一个几K的运算式子的数据包,然后我们的电脑接收后再计算出几M的运算结果(要表现的画面结果),甚至更大,简单的说大致就类似这个意思吧。**
maker
#17
算法的确是这样的,但是材质贴图还要啊。这必将占用大量的显存/内存空间。
** 这个我不清楚,因为我只了解点程序设计,但是图像设计我是一窍不通的。**