中文第一计算机图形学社区OpenGPU 版权所有2007-2018

 找回密码
 注册

扫一扫,访问微社区

搜索
查看: 5566|回复: 2

normalMap的DDS压缩

[复制链接]
发表于 2012-12-13 00:22:28 | 显示全部楼层 |阅读模式
关于normal map的dds压缩,有一张图可以说明问题:


可以注意到普通的dtx5压缩后,那些颗粒的光照细节丢失得比较厉害,同时栅格现象也很严重。

同时可以看到DXT5_NM在相同文件大小的情况下,细节保存得不错。


使用Swizzled DXT5格式:基本上还是DXT5格式,但是把X值放到A,把Y值放到G,R/B channel可忽略,理由是DXT5压缩特性使得A/G channel压缩品质比较高。品质会比直接把DXT5存XYZ的方式好很多。

使用3Dc:目前只有AMD(ATI)的GPU支援。效果应该比Swizzled DXT5好。(由于手边沒有ATI的卡,所以无从比较)
The DXT1 compressed normal map on the right shows noticeable
blocking artifacts compared to the original normal map on the left.


The DXT5 compressed normal map on the right
compared to the original normal map on the left.


The DXT5 compressed normal map with re-normalization on
the right compared to the original normal map on the left.


此时引入关键字:3Dc dxt5_nm swizzle

我在D3D里没看到有对DXT5_NM的直接支持,在使用nvtt生成dxt5_nm格式的normalMap,因为xy=ag,r=1,所以颜色是桔黄的。


shader中作相应处理

float3 fvNormal;
fvNormal.xy = (tex2D( normalMap, texCoord ).ag * 2.0f - 1.0f);
fvNormal.z = sqrt(1.0 - dot(fvNormal.xy, fvNormal.xy));



渲染效果

链接:

http://codefield.blogspot.com/2007/04/normal-map_6771.html

http://www.ozone3d.net/tutorials/bump_map_compression_p3.php#z_generation

http://code.google.com/p/nvidia-texture-tools/wiki/NormalMapCompression

http://developer.nvidia.com/object/real-time-normal-map-dxt-compression.html


发表于 2014-3-27 18:26:16 | 显示全部楼层
学习了, 以后也改用dxt5试试. 原来这个板块, 用搜索引擎查资料的候进来过...
发表于 2018-10-24 11:18:06 | 显示全部楼层
确实值得好好看看,顶先












本站发布红包,见者有份!

每人每天都可免费领取一次!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|小黑屋|Archiver|手机版|中文第一计算机图形学社区OpenGPU

GMT+8, 2018-12-14 02:53 , Processed in 0.042905 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表