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