麦克雷 Mavom.cn

标题: 细说一下英伟达新技术神经纹理压缩技术。 [打印本页]

作者: rrmbembz98    时间: 前天 09:05
标题: 细说一下英伟达新技术神经纹理压缩技术。
这个东西还跟主美进行了一小点深入的讨论。
我们起初以为神经纹理压缩技术是作用在开发时候,在美术进行贴图制作完成以后导入引擎后。改变传统的压缩方式,让贴图体积更小细节更多的无损压缩。但其实没那么简单,这个技术的核心目的是让你在有限的显存大小下,享受无限的贴图清晰度。这里我们需要科普一下目前一些引擎的贴图压缩。引擎是不支持PNG或者TGA原格式的贴图的。因为这些从贴图软件导入引擎的贴图体积非常大,因此游戏引擎都会自带一些压缩格式,这些压缩格式都是有损压缩,数据上有损,视觉上也是有损的,遇到比较过分或者对画质要求较高的游戏,我们会根据实际情况在一些显眼的地方会选择压缩率较低,贴图质量损失相对较小的格式。其主要目的就是减少引擎贴图体积,不然一个游戏做出来上千体积GB不是没可能而是轻轻松松,显存需求上百GB。跑数据的卡来了都顶不住。
目前一些小关卡的比较封闭,沉浸式的3A游戏才能用上游戏内每平方米1024x1024的贴图。可能你们会觉得1k的图很小,其实外面几乎所有能打高清材质mode的游戏,打完mode都没有这种清晰度的贴图,可以说其实很大了。是每平方米1k。4平方米就是4k,而游戏内的资产是立体的,贴图是平面,需要用平面去包裹立方体,常说的展UV。你就知道也许一个很小的资产。就可能需要4096x4096的图才够。而4k的图在引擎里即使通过有损压缩依旧体积很大,占用显存不说,这种资产太多游戏体积也很大。而现在的游戏厂商会把体积控制在120gb左右。当然也会有例外!
你现在知道一平方米就需要一张1k的图,而游戏这么大同屏显示的那么多,整个游戏如此巨大,是怎么做到只有100多gb呢,不应该一个游戏上万GB体积?显存是怎么压到10多gb呢,不应该用一千多gb显存的卡来玩吗?这就是最重要的优化。为了做这些优化几乎目前市面上的大部分引擎都有层材质功能,虽然贴图大小只会吃显存不吃显卡性能,大家几乎都知道,所以我只要幻想有一张1024gb显存的显卡,那还不能玩各种3A大作吗
(, 下载次数: 0) ,你这么说也对但是能造出来也买不起系列。
这里为了优化游戏体那些开发引擎的TA工程师,开发出了层材质功能,什么是层材质,层材质为什么会吃GPU性能等等。这个功能细说会非常麻烦,我们就简单聊一聊,其实层材质功能类似地形材质,可以说基本也是地形材质的演变。层材质各种各样,每个游戏里面的TA工程师会有根据每个游戏的美术部门要求去写对应的层材质系统,可以说千变万化。虽然千变万化但是都离不开当层材质的层数越多的时候GPU渲染压力就很大,超级吃核心性能,不亚于各种特效光照等。所以层材质就是我们区分出整个游戏需要的各种材质属性,比如新的金属,旧的金属,塑料,金属刷漆(可变色),油布,普通布料等各种材质以后。当我们制作一个资产的时候,我们只使用这些基础材质作为底层材质,然后通过加层的方式实现各种变化等操作。这样下来一个游戏的贴图资产基本控制在10%左右。而80%-90%的资产全是共用贴图,这样原本需要1000多个GB才能做出来的游戏,基本只需要100多GB的空间。原本同屏加载需要上百GB的显存才够的,只需要16gb
。开个玩笑,我没有嘲讽16gb小的意思,毕竟游戏主机也才这么点。
所以证经纹理压缩并不是老黄真的扣那么点显存而做的技术,而是目前整个游戏行业几乎是刚需的一个技术,但是因为没哪家厂商能够做这样的技术。其实上无论是游戏厂商还是提供引擎的厂商,它们无时无刻都在研究着这些技术,为了去节省内存,显存游戏本身也做了很多的会牺牲画质的优化。我们需要的是画质又好,储存占用率又低的技术,而神经纹理这种非常高级的技术,除了老黄游戏厂商真的没本事,就算某些厂商哪天鼓捣出来说不定也不会开源,坐着收专利费等。我觉得能搞出层材质这种投机取巧的系统已经是非常厉害了,但是这玩意儿它太吃GPU核心性能了,一般最高只能做到四层。美术效果会打折扣。
其实你们要向前看,并不是以后有了神经纹理压缩技术,显卡就永远不提升显存,硬盘就永远那么大,你要知道游戏画质是无限的,我现在的技术极限就是游戏内每平方米1k的贴图,以后就可以做每平方米4k的贴图,影视也不过就这么大了。所以这个技术真的就是彻底改变游戏画质的关键,如果没有这个技术,以现在的技术水平。1k变成4k贴图,游戏体积会直接从100多gb提升到大概1000gb,显存大概会从16gb提升到128gb才够。是多维度的增大并不是只提升8倍,贴图的增大很多模型资产开始增多,材质ID数量开始增多,整个游戏开始变得非常臃肿。光靠硬件性能简直是天方夜谭,而且这么大的游戏每次加载单个关卡也是非常大,SSD随机4k读取没啥进步的情况下,每次加载你要等几十倍时间,真的是抽象,id各种资产的增多cpu性能也远远跟不上x3d系列也会变成一个笑话。
打字上限了不说了


(, 下载次数: 0)
作者: MichaelSisa    时间: 前天 09:06
111
作者: 艾的民    时间: 前天 09:07
谁来总结一下
作者: Williamsi    时间: 前天 09:07
所以有没有省流,这个技术啥时候能铺开?
还有就是老黄抠显存确实有卡死显卡上限和降本增效的目的(毕竟显存不是NV自产的,需要给三星海力士那些厂商好处)
作者: MichaelQUOF    时间: 前天 09:08
层材质,高低模,确实在一个比较大的场景中用高模的话,贴图很容易要跑1024GB去了,各种烘焙展开本质就是为了避免把"3D游戏"变成"真实世界模拟器",毕竟要模拟运动光照虚拟摄像机真的需要超算or渲染农场的。
目前非核心玩家属于不知道也不想管这事,硬件爱好者觉得N想偷一片显存,但一些核心玩家的争议点在于,更进一步使用Ai压缩之后的数据和使用Ai渲染的图片,到底属不属于“开发者以及主美”的意思,游戏使用Ai材质每次截图都不一样虽然肉眼看着还凑合行不行,再根本一点,玩家要不要为这些Ai出来的游戏材质付费,3A是不是该五六块一个。
既然提及绘画,很多画师对Ai的态度目前也很模棱两可,有相当一部分画师以及单主任务对ai创作的绘画不但不该付费,"创作者"还需道歉,所以这是个更深层次的问题,起码如果国内的网游搞些Ai立绘出来,包被骂的
综合这些情况,这争议其实是个付费意愿的问题,如果一个游戏哪怕是3A,模型是Ai的代码是Ai的甚至游戏还是用玩家的显卡买的Ai功能跑的,这东西还要不要收费?上一次"视频革命"胡编乱造的各种短视频答案是不收了,短视频随便看然后博主带货收点粉丝买货钱,游戏也要朝这个方向进发嘛?
最后具体点,就是核心玩家认为这些Ai功能降低了游戏开发者,游戏美术,画师的"工作价值",既然明知因为Ai你们的优化难度,美术工作时间,风格把控都降低了,那工作价值也低了,付费意愿也就低了,开始骂游戏厂商,但现在还没实装的,于是转向骂老黄。
极端情况其实是,如何在N卡会自动生成图片 模型 甚至游戏的情况下,证明游戏开发相关人员的劳动是有价值的
作者: MonrieOn    时间: 前天 09:08
给楼主点大大的赞,这种高质量的科普应该被更多的人看到,其实纹理压缩的应用范围非常广,因为纹理本身的用途就非常多样,比如3D游戏中有个东西叫“骨骼纹理”就可以用神经纹理压缩优化,原本的f32当你骨骼纹理太多的情况下对显存需求也大得要死,而且不好做近远景分级,但是用神经纹理就可以省下超过四倍的显存空间,举个例子,当你在同屏渲染大批量角色动画,而且这些角色在远景和近景都有的时候,传统纹理可能需要多级LOD或者多种尺寸的贴图去切换,但如果用神经纹理通过训练好的模型来自动做近远景的分级采样,存纹理所花费的显存占用也会小很多
作者: jianyutx    时间: 前天 09:09
感谢科普
(, 下载次数: 0)
作者: Jumper    时间: 前天 09:09
实时渲染压缩一般都为有损,如果用无损就会掉帧。无损一般只用于硬盘存放。
作者: 艾的民    时间: 前天 09:10
我曾经非常期待dlss4是纹理(填充)相关技术的运用,结果却是拼好帧,ntc在23年就有提及,但到落实还不懂什么时候。
作者: Samueldype    时间: 前天 09:10
太长不看,长话短说
(, 下载次数: 0)
作者: JohnnyCew    时间: 前天 09:11
这种东西都不用看的,主流16g就会压缩到16g,主流是24就会压缩到24,再逆天的技术也不会让8g显存够用,毕竟厂商只会摆烂,不会优化
(, 下载次数: 0)
作者: kclam    时间: 前天 09:11
去年这英伟达公布了后amd也紧随其后公布了ai神经纹理压缩,我也很纳闷为啥到现在也没游戏集成
作者: 艾的民    时间: 前天 09:12
计算机里面存储的东西,压根就没有什么是“无损”的,这很好理解,因为存储的东西最小就是一个比特,无法继续细分,而自然界是可以无限细分的,所以恰恰相反,最“无损”的东西反而是计算出来的
既然需要计算,那存储的东西就可以不是数据本身,而是方程与参数
现在,引擎就是方程,纹理贴图就是参数,方程越好,参数越多,就越真实,但代价就是大量的资源,并且边际效应明显
那应该想一种很小代价就能达到效果的算法
打个比方,假如过去的算法是n个参数的m阶方程,但发现依靠更少的参数甚至更低阶的方程可以做到“大差不差”的效果,但是这种方程通常很难找到,通用性也不高
这个时候ai出现了,ai的本质就是学习,拟合,逼近,ai模型其实就是预计算的方程,是使用“原来的参数”和“原来的方程计算的结果”计算出来的,并且可以用不同的数据训练同一个模型,通用性很高
接着就可以设置这个模型的预计算方式,需要的正确率等,让他帮忙压缩参数数量,优化方程速度等,虽然还是需要大量的算力,甚至比以前的算力需求更大,但模型可以被保存,于是就可以“预先支付”算力,之后只需要加载这个模型就行了
大概就是这么个道理,有很多不恰当的比喻,见谅




欢迎光临 麦克雷 Mavom.cn (https://www.mavom.cn/) Powered by Discuz! X3.5