Level of Detail 層次細(xì)節(jié)
這玩意兒一直沒(méi)搞清楚,好像分模型和貼圖兩部分。
模型:離攝像機(jī)近的地方,用高的細(xì)節(jié)網(wǎng)格渲染, 較遠(yuǎn)的地方用低的細(xì)節(jié)網(wǎng)格渲染。
貼圖:離攝像機(jī)近的地方,用分辨率高的貼圖,遠(yuǎn)的用分辨率低的貼圖。用dds文件可以保存貼圖的多個(gè)mipmap,也就是一系列從高到低的不同分辨率的貼圖,從而可以實(shí)現(xiàn)此種效果。《精通Unreal引擎技術(shù)》P188,
DDS File Reference
特別提示:Mipmaps詳解
我們一直再說(shuō)的mipmap究竟是什么呢?很簡(jiǎn)單,mipmap其實(shí)就是一系列的紋理,其中,第一個(gè)成員擁有最多的細(xì)節(jié),接下來(lái)的紋理大小減少為上一張的一半。舉個(gè)例子,假設(shè)有一張?jiān)笮?56×256的“高分辨率”紋理,那么下一級(jí)別的mipmap就是128×128的,再下來(lái)就是64×64的,以此類(lèi)推。Direct3D就通過(guò)mipmap鏈來(lái)控制渲染時(shí)紋理的質(zhì)量,當(dāng)然,代價(jià)是mipmap將會(huì)消耗更多的內(nèi)存。當(dāng)對(duì)象離攝像機(jī)很近的時(shí)候,使用高質(zhì)量的紋理,而物體遠(yuǎn)離攝像機(jī)時(shí),就是用低分辨率的紋理。
當(dāng)創(chuàng)建紋理時(shí),可以使用參數(shù)來(lái)指定有多少個(gè)層次包含在紋理中。這里層次的數(shù)目直接與mipmap鏈相對(duì)應(yīng)。把這個(gè)參數(shù)設(shè)置為0,Direct3D則會(huì)自動(dòng)在mipmap鏈中創(chuàng)建一系列紋理,從原始紋理的大小開(kāi)始,一直遞減到大小為1×1。在我們所舉的例子中,在一張256×256的紋理上把這個(gè)參數(shù)設(shè)為0,將會(huì)創(chuàng)建9個(gè)紋理:256×256、128×128、64×64,32×32、16×16,8×8,4×4、2×2、1×1。
當(dāng)調(diào)用SetTexture方法時(shí),Direct3D會(huì)根據(jù)當(dāng)前sampler states類(lèi)中MipFilter的屬性值,自動(dòng)在眾多的mipmap中進(jìn)行篩選。
DDS是DirectDraw Surface的縮寫(xiě),它是DirectX紋理壓縮(DirectX Texture Compression,簡(jiǎn)稱(chēng)DXTC)的產(chǎn)物。
DXTC減少了紋理內(nèi)存消耗的50%甚至更多,有3種DXTC的格式可供使用,分別是DXT1,DXT3和DXT5。
DXT1 壓縮比例:1:8 壓縮比最高,它只有1Bit Alpha,Alpha通道信息幾乎完全喪失。一般將不帶Alpha通道的圖片壓縮成這種格式。如Worldwind 用的衛(wèi)星圖片。
DXT3 壓縮比例:1:4 使用了4Bit Alpha,可以有16個(gè)Alpha值,可很好地用于alpha通道銳利、對(duì)比強(qiáng)烈的半透和鏤空材質(zhì)。
DXT5 壓縮比例:1:4 使用了線(xiàn)形插值的4Bit Alpha,特別適合Alpha通道柔和的材質(zhì),比如高光掩碼材質(zhì)。
許多3D軟件包括大部分游戲都用dds格式,又稱(chēng)“貼圖”,許多fans通過(guò)修改dds文件可以生成特殊顯示效果。 nVidia提供了PhotoShop使用dds的插件,通過(guò)該插件也可以生成dds文件。
還有一種生成dds文件的方法是使用nVidia提供的命令行工具nvdxt.exe
該文章轉(zhuǎn)自[無(wú)憂(yōu)網(wǎng)絡(luò)網(wǎng)游技術(shù)網(wǎng)]:http://www.5uwl.net/Article/ttii/msmir2001/200709/26369.html
實(shí)際文件大小比較:
tga: 12K
帶mipmap的dxt3: 6K
不帶mipmap的dxt3: 5K
不帶mipmap的dxt1: 3K
Direct3D9中的紋理貼圖
Texture coordinates are used to define a triangle on the texture that gets mapped to the 3D triangle.
紋理坐標(biāo)常常被定義為紋理上的一個(gè)三角形,這個(gè)三角形可以被貼圖到3D三角形上。
We can create textures from image files stored on disk using the D3DXCreateTextureFromFile function.
我們可以使用D3DXCreateTextureFromFile函數(shù),根據(jù)磁盤(pán)上的圖像文件來(lái)創(chuàng)建紋理。
We can filter textures by using the minification, magnification, and mipmap filter sampler states.
我們可以過(guò)濾紋理通過(guò)使用縮小過(guò)濾,擴(kuò)大過(guò)濾和多線(xiàn)性過(guò)濾方式。
Address modes define what Direct3D is supposed to do with texture coordinates outside the [0, 1] range. For example, should the texture be tiled, mirrored, clamped, etc.?
紋理的地址模式定義了Direct3D如何處理當(dāng)紋理坐標(biāo)超出了0-1范圍時(shí)。例如:紋理是應(yīng)該被平鋪,反射,壓縮,還是其他操作?
posted on 2008-01-17 17:12
七星重劍 閱讀(1404)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
Game Engine