• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            麒麟子

            ~~

            導航

            <2010年4月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            統計

            常用鏈接

            留言簿(12)

            隨筆分類

            隨筆檔案

            Friends

            WebSites

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            關于id Tech5的MegaTexture技術

            最近因為在搞游戲地形的關系,又想起id Tech5的地形技術,以前就看過了一些視頻,知道了大概,但一直不是很清楚其基本的實現原理,于是搜索一番,還是有些收獲的

            首先,來看看wikipedia上面對于MegaTexture的定義:

            http://en.wikipedia.org/wiki/MegaTexture

            MegaTexture refers to a texture allocation technique facilitating the use of a single extremely large texture rather than repeating multiple smaller textures. It is featured in Splash Damage's game, Enemy Territory: Quake Wars and was developed by id Software technical director John Carmack.[citation needed]

            MegaTexture employs a single large texture space for static terrain. The texture is stored on removable mediaor the hard drive and streamed as needed, allowing large amounts of detail and variation over a large area with comparatively little RAM usage.[citation needed]

            Then during rendering, required parts of the texture space are streamed inside dynamically (re-)allocated textures in video memory, scaled to the correct mipmap level(s) depending on the polygon size. This allows the engine to reduce the number of texels in VRAM/number of pixels on the screen ratio (the goal being getting closer to 1), saving memory.

            The upcoming games Doom 4 and Rage, powered by the id Tech 5 engine, use textures that measure up to 128000×128000 pixels[1].

            id Tech 6 will use a more advanced technique that virtualizes further both the geometry and the texels (texture points): Voxel Spare Octree (VSO). This works by not using geometries anymore (triangles and textures) but by instead storing colored 3d points in an octree. The goal being to be able to stream parts of the octree, going further down along the tree for nearby objects to give them more details, and to use higher level, larger voxels for further objects, which give an automatic level of detail system for both the geometry and the texture space at the same time. Despite most Voxel rendering tests end using very large amount of memory (up to several Gb), John Carmack claimed he's able to compress such VSO to 1 byte per voxel.

            翻譯的大意:

            MegaTexture使用一張貼圖來表現整個地表的像素外觀,通過動態定位和載入所需的該貼圖的局部的合適mipmap,來節約顯存開支(這里說到選擇mipmap level是基于polygon size的,不是很清楚實際的做法,估計可能是基于地形自身的polygon,但考慮上地形polygon可能會有的LOD,情況就比較復雜)

            Doom4和Rage都將使用最大為128000x128000的MegaTexture(這說明Doom4可能會有大量的室外場景?)

            id Tech6會使用一種叫做VSO的更為先進的技術,同時虛擬場景幾何和圖素(關于VSO,完全不懂鳥),這意味著將不再使用傳統的場景幾何(三角形+貼圖),而是通過octree儲存彩色化3D點(這句話我自己也無從了解,所以翻譯僅供參考了),目標就是動態載入octree的局部,對近處的物體,沿著此樹往下以獲得更多細節,而對于遠處的物體,則使用更高級別、更粗大的voxels(現查,voxels即volumetric pixels,可以理解為三維像素),這樣就給場景幾何和貼圖同時提供了LOD系統。盡管多數的Voxel渲染測試都反映需要很大量的顯存(幾個G),卡馬克表示他已經能夠把每個三維像素壓縮到1字節

            注:下面提到的姚勇的pdf里面,說到Doom3里已經有MegaTexture的實現了(沒有另外去查詢考證),尺寸最大32768x32768,不使用傳統LOD和地形的Geometry Morphing,可見卡馬克同學還是比較“激進”的,那么多年前就已經搞這個,和UE3(地形LOD+Morphing)果然是截然不同的思路阿

            通過google搜索,發現了另一篇好文,作者是姚勇(很多人應該知道的八):

            http://blog.csdn.net/puzzy3d/archive/2007/08/16/1746589.aspx

            點這個頁面里的pdf連接

            這個pdf寫得很好啊,我這樣的小白一看就基本明白MegaTexture背后的實現原理了,就是基于一種叫做clipmap的技術,clipmap顧名思義,就是把map的一部分clip下來用,每次更新需要的局部

            關于clipmap,據說是SGI在1998年的時候最先發表的(我沒去考證),這里有SGI關于此技術的文章一枚:

            http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=bks&srch=&fname=/SGI_Developer/Perf_PG/sgi_html/ch15.html

            這文章前半段還可以看看,對于非圖形程序員的普通群眾來說,看起來恐怕都會和我一樣累

            如果不愿意看這篇文章,你還可以去下載SGI當年那篇文章的pdf:

            The Clipmap:A Virtual Mipmap

            另外,clipmap這類原理的技術,在3d虛擬和大規模地形系統上(比如google earth),好像也頗為有用,關于google earth,最近找到一篇很贊的文章,打算花點功夫翻譯出來(希望還沒人干過這件事情)

            特地又重看了一下Tech 5的引擎演示, 這次的感覺就和以前不一樣了,MegaTexture如果只是一個換了名字的clipmap,那其實也沒啥好說的,Doom3里面也有,但沒見id以前怎么力推過。之所以tech 5要主推MegaTexture,還是因為有了一套為其配合的高效制作工具。

            其實clipmap技術和傳統基于tiling的技術注定要在制作上走兩條完全不同的路子。tiling技術的思路就是,我只做局部,然后讓局部不斷重復產生出整體,EPIC到UE3這一代為止,就是努力貫徹這種思路,所以不光是貼圖可以tiling,連模型也強調模塊化和拼接(當然模塊化的涵蓋比tiling要大一些)。這種思路的優點就是制作效率高、資源利用率高、資源存儲節約,缺點么,就是視覺上容易重復,制作上需要考慮避免突兀和不均勻(尤其是貼圖,tiling貼圖往往會導致趨向于均勻和缺乏反差從而無從表現個性化細節),在動態載入和LOD上,只能用一些較土的手段,總體就是不適合做富有變化的大規模地形。而clipmap,說白了,就是每一個像素都可以特殊處理,都不會因此而影響運行效率,且天生對動態載入和LOD有很棒的支持,對內存和顯存的消耗還好,對外存的需求就很大了,但畢竟外存的容量發展比較快。但clipmap的問題是,如果每一個像素都要制作,那么制作上的工作量就極大,所以使用此類技術的游戲,應該都會想辦法開發一些減輕工作量的工具,據Porky同學說WIC是“先用地形系統根據高度坡度等生成自然貼圖和lightmap, 公路和deco會往上投射公路和爆炸坑等貼圖,然后導出到PS里手畫其他一些東西,比如平地上的沙坑啥的”,用PS畫是一種方式,但問題是畢竟導進導出麻煩且不直觀,而tech 5的工具所提供的,就是一套內嵌的"PS",讓美工直接在場景里面繪制,那些stamp,其實很像PS里面的各種不同造型的筆刷,然后tech 5編輯器還提供這些“筆刷”繪制后的互相的疊加效果(這其實就是PS里面圖層之間的混合模式),所以,tech 5的MegaTexture,好玩就好玩在這里,感覺在編輯器層面,那個“大貼圖”就是一個巨大的PSD文件阿

            所以id和EPIC的確是個性很不一樣的公司,我特期待EPIC會把UE4設計成什么樣子

             

            http://lichong.blogbus.com/tag/clipmap/

            posted on 2013-02-23 23:15 麒麟子 閱讀(925) 評論(0)  編輯 收藏 引用

            久久久午夜精品福利内容| 99久久人妻无码精品系列蜜桃| 99久久免费国产特黄| avtt天堂网久久精品| 中文字幕一区二区三区久久网站| 国产呻吟久久久久久久92| 欧美精品乱码99久久蜜桃| 久久婷婷五月综合色奶水99啪| 欧美久久精品一级c片片| 要久久爱在线免费观看| 国产精品无码久久久久久| 久久亚洲国产成人影院网站| 亚洲国产精品无码久久久蜜芽| 99久久国产综合精品成人影院| 狠狠色婷婷久久综合频道日韩| 国产亚洲色婷婷久久99精品91| 香蕉久久av一区二区三区| 久久精品夜色噜噜亚洲A∨| 麻豆亚洲AV永久无码精品久久| 久久精品国产精品亚洲人人| 久久精品麻豆日日躁夜夜躁| 欧美亚洲日本久久精品| 久久九九有精品国产23百花影院| 无码人妻精品一区二区三区久久久 | 久久人人爽人人人人爽AV| 久久精品国产影库免费看| 久久亚洲精品无码aⅴ大香| 国产午夜电影久久| 国产一级做a爰片久久毛片| 99精品国产免费久久久久久下载| 久久艹国产| 久久无码AV中文出轨人妻| 久久天天日天天操综合伊人av| 久久无码av三级| 久久久国产精品福利免费| 久久精品国产亚洲麻豆| 国内精品久久久久久久97牛牛 | 久久婷婷五月综合97色直播| 久久人人爽人人爽人人片AV东京热| 久久精品一区二区三区不卡| 久久久久久久97|