Board logo

标题: 不懂就问,贴图为啥这么占显存? [打印本页]

作者: yi_huan    时间: 2016-2-3 18:43     标题: 不懂就问,贴图为啥这么占显存?

posted by wap, platform: iPhone
贴图都是用啥格式的?用JPG不行吗?压缩一下效果还是可以的,容量也比bmp小好多呢。
还有个问题,不同质量的贴图都是事先做好的,还是即时压缩的?
现在3D游戏吃显存太夸张了
作者: 马甲5号    时间: 2016-2-3 18:49

因为他们赖的优化,反观巫师3显存占用就没有cod12、古墓10夸张
作者: makimaki    时间: 2016-2-3 18:51

dds格式,一般比jpg压缩还狠的
作者: zhouaa    时间: 2016-2-3 19:00

分辨率高了就算jpg体积也很大啊
作者: 聋则嗅明XP    时间: 2016-2-3 19:03

posted by wap, platform: 锤子 T1 4G
显存不只是放贴图,你画面上的所有信息,每个像素点的位置,颜色,它们的变化等等数据都需要暂存在显存内,都是需要占用显存空间的,风辨率越高,发色数越高占容量越高,成正比,过去电脑显卡因为显存捉襟见肘,很多显存较高卡的卖点就是画面可以上1024x768。
作者: 超越神的牛肉人    时间: 2016-2-3 19:04

posted by wap, platform: Android
现在显存都不是问题了吧,问题是显核的了都
作者: mimicry    时间: 2016-2-3 20:41

posted by wap, platform: iPhone
图片放在硬盘里和显存里是两种不同形态
作者: 脆骨    时间: 2016-2-3 21:31

posted by wap, platform: SONY
一个人的模型,附上4,5张贴图,场景也是
作者: endrollex    时间: 2016-2-3 21:43

一般厂商都会考虑对应档次显卡的缓存,基本不是问题,除非开发小组脑残
作者: qinxiaoyu    时间: 2016-2-3 22:02

显存不单单是用在贴图上的,还有一部分是用来帮助CPU计算3D模型的
多边形越多展开后这部分的贴图分辨率就越高
我只学过3DMAX,我就以3DMAX做个解释
打个比方说
一个人物的3D模型里会有,32*32 64*64 128*128等等不同分辨率的贴图
一般脸会用128*128的,手啊,鞋子啊,耳环之类的能用32*32就用这种低分辨率的,当然,现在不可能这么低了
假如说人模是1080P级别的,那么这个人物的贴图肯定是有数个1920*1080,加上10几个1024*768这种组合方式的贴图
一个人模的贴图不是一张简简单单一张图片,精细的模型可能需要用到10几张,目的就是为了方便上色
作者: 分分钟叫你做人    时间: 2016-2-3 22:10

场景无缝连接的,一般都比较占用显存的吧、先预读到内存,当前场景的贴图就读到显存

[ 本帖最后由 分分钟叫你做人 于 2016-2-3 22:11 编辑 ]
作者: shinkamui    时间: 2016-2-3 22:18

显存贴图必须是可以固定寻址的,也就是特定视觉位置的像素必然保存在特定内存位置,这样才能快速并行的起来。所以压缩比固定,考虑到读取效率,一般比例也不是特别大。jpg之类是动态的,压缩比虽然大但是只能顺序读取,虽然有的游戏支持jpg但其实是先解压成无压缩位图用的。

之于大小,目前bc6好像差不多6:1,不论内容,jpg如果是白图就可能很小的。
作者: 來福時代    时间: 2016-2-3 22:22

一个面要好几张贴图呢,还不算根据LOD分成几个级别精度的
作者: radiator    时间: 2016-2-3 22:26

posted by wap, platform: iPhone
次时代人物贴图最低都是1024*1024起步了,纹理清晰点就得2048*2048了,一个人物 最少要用6张 最后加上场景肯定就需要大显存来存贴图和模型信息了,贴图格式也不是jpeg这种笨格式而是游戏引擎用的dds格式可以动态调用不同分辨率的贴图,比如你贴图细节调到最高那就是1024或2047的原始尺寸,中等画质那就是缩水到512*512级别的细节,最低那就是缩到256*256级别的贴图了。从2048缩到256细节都丢失了只剩大致的马赛克像素了,画面就会感觉糊
作者: zhangyunsony    时间: 2016-2-4 04:03

posted by wap, platform: Galaxy S6 EDGE
正如photoshop耗内存一个道理
作者: 卖哥    时间: 2016-2-4 09:53

posted by wap, platform: Meizu MX4
显存不仅仅存放现在要用的,还要存放可能要用的。对于自由视角的游戏来说,电脑不可能精确判断下一个场景需要什么贴图,最粗暴的解决方案会把整关卡内所有贴图都一股脑载入,显存自然遭不住。
作者: Nemo_theCaptain    时间: 2016-2-4 12:41

引用:
原帖由 卖哥 于 2016-2-4 09:53 发表
posted by wap, platform: Meizu MX4
显存不仅仅存放现在要用的,还要存放可能要用的。对于自由视角的游戏来说,电脑不可能精确判断下一个场景需要什么贴图,最粗暴的解决方案会把整关卡内所有贴图都一股脑载入,显存 ...
现在已经没有那么简单粗暴的游戏了,因为有中间件的Streaming方案
就算是COD这种祖传引擎游戏到了次世代都用上了Umbra 3
作者: 分分钟叫你做人    时间: 2016-2-4 19:57

简单打个比方
数码单反拍的无损照片一张,4000x3000左右分辨率的,几十MB,
现在游戏高精度材质,一张分辨率4096x4096或8192x8192....你可以算算有多大容量
然后游戏里面,地形贴一张diffuse,贴一张置换,贴一张过滤,再贴一张高光,有植被覆盖的,还要贴植被的,
然后地面有了,还有树啊,花花草草啊,等等,再继续贴
花草有了,再来点水吧,又得贴...

猪脚那更精细,皮肤,毛孔,高光,反射,有伤疤的,还要贴伤疤,贴流血,像劳拉那样海飞丝的,还要单独贴个海飞丝...
别急,做游戏要赚钱,要DLC等等,就还得做多几套衣服,然后再贴......

其实显存里的贴图都是压缩过的,真是不压缩的话,Titan X那12G显存都不够用...

[ 本帖最后由 分分钟叫你做人 于 2016-2-4 19:59 编辑 ]




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0