作者 |
Patrick Min |
---|---|
平台 | |
編寫於 |
C++ |
最新版本 |
binvox 1.17, viewvox 0.42 - 2012年11月11日 |
發佈日期 |
September, 2010 |
大小 |
0.8 MB |
版權 |
N/A |
原始碼 |
舊版本, 0.4 |
相容 |
N/A |
連結 |
Binvox 是一個命令列程式,將3D檔案轉換到 .binvox 構築計劃檔案或 .schematic 檔案供 MCEedit 使用。一個 .binvox 輸出檔案可以被互動式「viewvox」 OpenGL 軟件查看,都是由相同的作者提供。這些軟件的主頁在 Patrick Min 的網站上。
處理轉換3D多邊形到方塊的軟件叫做「voxelization」。Binvox voxelizes、viewvox 展示結果。 Voxelization 不是一個完美的處理軟件,因為這個軟件需要讓你作出太多的決定了。比其他的輸出決定更多,最重要的決定是圍繞著如何填充像素模型,讓模型看起來被「填滿」。因此,有許多途徑控制 Binvox 的結果。
支持的系統[]
Binvox 和 viewvox 在 Windows、Mac、和 Linux 系統上執行。viewvox 預覽軟件使用 OpenGL 和 GLUT。
下載[]
Windows:vox_package.zip。這個發行版讓你一次下載所有所需的東西,包括 GLUT。它也包括2個3D示例檔案和.BAT 檔案來繪製它們。查看發行版裏面的 README.txt 取得更多資訊。
另一個則是 Auto-Binvox.zip,一個批處理檔案,可以簡單處理 voxelising 的任何檔案,並且附帶 Binvox 和 Viewbox(其他版本可能不相容 Windows 7)。這個批處理檔案可以讓你把資料夾裡的一個3D模型進行處理,然後將其放在 Binvox 和 Viewvox 中進行轉換。這樣做的缺點是你不能很容易的控制選項、Schematic 的最大維度和方塊種類。
GLUT 庫必須分別下載,以便讓 Viewvox 順利執行。
Mac(Snow Leopard,OS X 10.6.8): binvox、viewvox。
Linux(Fedora 13,64位元): binvox 64位元 32位元、viewvox 64位元 或 32位元。
檔案格式[]
支持下列3D檔案格式: Wavefront OBJ、VRML 2.0、UG、OFF、DXF、XGL、POV、BREP、PLY、JOT。只有 polygons 支持這些的大多數格式(VRML 2.0 則完全支持)。實際上,Wavefront OBJ 可能是支持最多的格式了。
模型可以在網頁建立,例如在 Turbosquid 網站(提示:按成本排序)。為了將 3DS 轉換的 OBJ 格式,可用 MeshLab 之類的軟件。
輸出預設為 .binvox viewvox 軟件可預覽檔案格式。簡單輸入 「viewvox <your_output_file>.binvox」 來生成預覽。一個被生成的 .schmatic 檔案可使用 MCEdit 匯入到世界中。
畫廊[]
photo gallery of creations 由作者進行維護。如果你想製作畫廊,向他發送你自己手動製作的照片(地址),他可能會將它們加入到畫廊中。
Binvox 指令[]
Binvox 有以下選項(輸入不帶參數的 「binvox」 將會顯示這些):
Usage: binvox [-d <voxel dimension>] [-t <voxel file type>] [-c] [-v] <model filespec> -d: specify voxel grid size (default 256, max 1024) -t: specify voxel file type (default binvox, also supported: hips, mira, vtk, raw, schematic) -c: z-buffer based carving method only -dc: dilated carving, stop carving 1 voxel before intersection -v: z-buffer based parity voting method only (default is both -c and -v) -e: exact voxelization (any voxel with part of a triangle gets set)(does not use graphics card) Additional parameters: -bb <minx> <miny> <minz> <maxx> <maxy> <maxz>: force a different input model bounding box -ri: remove internal voxels -cb: center model inside unit cube -rotx: rotate object 90 degrees ccw around x-axis before voxelizing -rotz: rotate object 90 degrees ccw around z-axis before voxelizing both -rotx and -rotz can be used multiple times -aw: _also_ render the model in wireframe (helps with thin parts) -fit: only write the voxels in the voxel bounding box -bi <id>: when converting to schematic, use block ID <id> -down: downsample voxels by a factor of 2 in each dimension (can be used multiple times) -dmin <nr>: when downsampling, destination voxel is on if >= <nr> source voxels are (default 4) Supported 3D model file formats: VRML V2.0: almost fully supported UG, OBJ, OFF, DXF, XGL, POV, BREP, PLY, JOT: only polygons supported Example: binvox -c -d 200 -t mira plane.wrl
Viewvox 控制[]
提示:為了查看模型匯入到地圖後的結果,輸入 「pannntsy」(改變到遠景視圖,摺疊可選顏色,展示底部網格,摺疊透明網格,顯示單片,顯示模型的最上方(設定視角從 Y 軸垂直向下看))當 Viewvox 啟動時。「j」 和 「k」 會移動到模型在地圖上的水平方向,並且下面的方塊會顯示成半透明的灰白色。
Viewvox 控制:
滑鼠
左键 = 旋转 中键 = 摇动镜头 右键 = 缩放
按鍵
r = 重设视图 方向键 = 沿 x(←、→)或 y(↑、↓)方向移动1像素 =、- = 沿 z 移动一个像素(缩放到正面的视图)
q = 退出
a = 隐藏可选颜色 p = 隐藏正面和远景投影 X、Y、Z = 设置视角到 X、Y、或 Z 轴 1 = 隐藏 X、Y、Z 坐标
s = 显示单片 n = 显示旁边的上/下/上和下片 t = 隐藏旁边的透明 j = 向下移动一片 k = 向上移动一片 g = 隐藏显示片层的网格
教學[]
這裏是一個 Mac 核心教學。
這裏是原始教學帖子。該教學被複製並且在這裏更新,因此使用者可以隨時改善它。
取得軟件和一些模型。為了讓你做起來簡單,本教學將會使用最新的 Binvox 和 Viewvox 軟件,GLUT DLL、2個模型和用於顯示模型的2個批處理檔案。在這裏取得,並將其解壓。如果你不想查看這篇教學來快速開始,請閱讀 README.TXT。Mondeus 的影片 展示了如何使用軟件,也許會對你有幫助——主要的,雙擊一個批處理檔案然後類似的模型就會被轉換並顯示。
如果你想從難的途徑開始,保證獲得了最新版本,按照下面的步驟操作。你應該了解 Patrick 的 Minecraft 頁面。首先,下載 binvox 和 viewvox 到相同目錄中。你可以放置它們到桌面中。你也需要下載 GLUT ,然後將 DLL 放到與 binvox 相同位置的 zip 檔案中,或者你如果知道怎麼做,你可以將它們放到 Windows 系統 DLL 資料夾(例如 Windows 7 就是 C:\Windows\SysWOW64)。
第二步,尋找一個要轉換的模型,為了簡單一些,將其放到 Binvox 資料夾。之前的帖子已經有了許多的免費模型,也還有更多,例如:TurboSquid 的、3dvia 的、Princeton 的 和 Nasa 的。你可以使用下面的格式的模型:VRML、OBJ、OFF、DXF、PLY 和 STL。
如果你擁有其他格式的模型,你可以使用 [1] Milkshape], Blender,或其他模型轉換器,將其轉換到 Binvox 可讀取的格式。
無論如何,讓我們使用一個很好的示例模型—— Aim*SHAPE(一個手模型)來開始吧。你不需要取得高解像度模型,一個低解像度網格也很好——之後,它就變成方塊了。因此選擇下面那列的左邊第三行第一個。一旦你下載後,解壓到 Binvox 和 Viewvox 的位置(為了簡單)。你需要唯一的檔案是 gipshand2-3k.obj,實際上這個檔案是儲存著模型資料的一個文字文件。
現在,點擊開始選單按鈕(畫面左下角),然後在下面的搜尋框中輸入:
cmd
將會出現一個黑色文字窗口。轉到你放置 Binvox 和模型的地方。例如桌面,那麼就是:
cd C:\Users\Eric\Desktop
為了執行 Binvox,你可以輸入:
binvox gipshand2-3k.obj
幾分鐘之後,你將會在畫面左上角看見一組手動繪製。這是 Binvox 正在進行建模並尋找像素。這將會建立一個叫做 gipshand2-3k.binvox 的檔案,這個檔案會在窗口中提及,並像這些顯示:
Voxels::print_filled_area area filled: 185 x 92 x 243 integer bounding box: [6,6,7] - [190,97,249] writing voxel file... VoxelFile::write_file(gipshand2-3k.binvox) Wrote 426642 set voxels out of 16777216, in 148528 bytes
第一行展示了模型的大小;第三個值是模型的高,即這個模型高243方塊。這對 Minecraft 世界來說太高了,但是我們仍將會在一分鐘之內到達這個尺寸。
如果沒有得到任何東西,確保這些東西都在同一目錄!也就是說,「cd」 是 「改變目錄」 ——仔細查看教學是如何使用它的。如果你不懂得 DOS 指令,可以簡單的將 binvox.exe 軟件(及依賴檔案)和你的模型檔案放在同意目錄,相同位置。這是人們在執行 Binvox 時遇到的第一個問題——Binvox 不知道你的檔案在何處。
查看輸出檔案,輸入:
viewvox gipshand2-3k.binvox
提示:你可以在 CMD 窗口使用↑鍵來顯示你剛才輸入過的指令(你可以多次按下它),使用←鍵、→鍵和 Delete 鍵來改變指令的內容。使用這種方法可以避免再次輸入 「gipshand2-3k.obj」 的麻煩,你可以點擊↑鍵,改變「obj」為「binvox」,「bin」為「view」。
你應該獲得像這樣的東西(CMD 窗口應該向上捲動了一點點,為了展示輸入的指令,本教學切斷了命令列):
Viewvox 對 Minecraft 玩家來說顯示了一些有用的資訊,例如:
Voxels::remove_internal_voxels removing 383513 voxels, which leaves 43129 voxels[/code]
這告訴你建造這個模型所需的方塊,為了關閉 viewvox 窗口,點擊 CMD 窗口並按下 Ctrl+C。不要問我為什麼。當你按下後,你應該得到一個「>」提示。
然而,預設的,Binvox 將模型製作成方塊為256方塊高(或長、或深,反正就是最大的那個)。我們願意將其指定為64.現在,你可以鍵入:
binvox gipshand2-3k.obj -d 64
"-d 64" 指定你想掃描的高度。技術性備註:在 Windows 機器上,GLUT 有一個錯誤,那就是窗口不能小於120像素(Linux 不存在這個問題)。我們要在內部加入一些代碼來增大解像度,然後降低取樣,因此它的運作就變成了一樣的。手動解決這個問題的途徑是:
binvox gipshand2-3k.obj -down -down
每個 「-down」 都會將解像度二等分。預設從256開始,除2,再除2,就是4,這樣就會得到64。解決這個問題的另一個途徑就是使用「-e」 選項,which does an "exact" (any voxel overlapped gets tagged) voxelization:
binvox gipshand2-3k.obj -d 64 -e
精確像素化可避免在使用 GPU 繪製而造成的任何的精度問題。這樣做有一個缺點,那就是不能進行進一步的控制。所有像素都被任何標記的多邊形接觸,這有時候看起來很不好。有許多選項來控制密度,邊緣強調度等。
當你使用的時候,會輸出一個新的 Binvox 模型。在這個新模型上使用 Viewvox,你會注意到它被稱作 gipshand2-3k_1.binvox。因此輸入:
viewvox gipshand2-3k_1.binvox
你可以使用滑鼠控制這個模型的視角。左鍵是旋轉、中鍵是搖動鏡頭、右鍵是縮放(用了一個時髦的方法)。這裏是一個經過旋轉後的模型視角:
看起來挺不錯。Viewvox 說這個模型有2471個方塊,每5秒繪製1個方塊,用時3.5小時。但是,應該如何建造它呢?很簡單(除了其他所有的繁瑣步驟):
第一步,按下S。這將會隱藏整個模型並顯示垂直片面。這仍然很難數得到有多少個方塊,因此按下A。這將會導致顯示縱橫交錯排列的顏色。你想看上或者看下?按下N來隱藏這些鄰近的,然後按下T來讓它們變成半透明。按下1隱藏顯示的座標。注意:CMD 窗口在啟動時就列出了這些選項。
這裏是經過上述步驟後的視圖,模型中間的一個垂直片面視圖。
專業技巧:在啟動 Viewvox 時你總可以鍵入「antspy」(想想 「ant spy」 或 「pantsy」,如果這對你有用)。這將會帶你到一個 俯視圖,展示了1層,上面和下面都變成了透明的。通常要按下N2次以上,來只顯示下面鄰近的層。
當然,你可能想從模型的下方開始建造。按下J顯示下片,上面就是K。你可以在 CMD 窗口中看見你目前處於的片號碼(從0開始)。
這是最基本的,並且當所有東西都很好的時候才做。首先,把一個「不漏水」的模型選出來,如果你填滿它,不會有水漏出來,並且沒有吊著的邊緣。多數在互聯網上找到的模型並不會像這樣,他們通常粘合每個面來獲得一個效果。因此,你將會需要嘗試命令列的不同選項。這裏是 Binvox 最重要的幾個選項。
-c - 如果你的模型是漏水的,這個選項你必須使用。它實際上繪製得更快,但會丟失角落和裂縫。
-dc - 在像素化時可以忽略的小功能。這個選項試圖模糊模型。
-aw - 繪製模型的所有角落。這是另一個非常薄的技術模糊特性。
-dmin 1 - 當使用 「-down」,使用更小的像素填充模型,如果想填充任何的更大模型的話。 另一個技術模糊特性。
-rotx - 沿著 X 軸旋轉模型90°。在 Viewvox 中,X 軸是紅色的,Y 軸是綠色的,Z 軸是藍色的(RGB)。你可以多次重複這個操作。
-rotz - 沿著 Y 軸旋轉模型90°,許多模型一開始會指向「上」,而不是 Binvox 要求的。只需要嘗試 -rotx 和 -rotz 指令還獲得正確的朝向。
-cb - 這並不是關鍵,但會經常使用(除了上面的教學,這樣只是為了簡單)。這個模型通常會被移動,以便顯示左下角的組成的立方體。這個選項會把模型放在中間,讓其更容易讀取座標軸。用不用這個選項由你決定。
-t schematic - 把 .binvox 檔案輸出用 .schematic 檔案輸出代替。這種類型的檔案可以使用i MCEdit 或其他工具匯入到世界中。
只鍵入「binvox」,你會看見更多的命令列選項。在煩人的選項之後,像素化通常都是98%正確的 - 對模型進行小幅改動。
這裏是經過轉換後的一個騎士模型:
binvox chevalier.obj -d 536 -aw -c -dc -cb -dmin 1 -down -down -down
祝你好運!如果有任何問題,請將其發佈到the 社群上。
如果你想把一個模型正確匯入到 Minecraft 世界中,請參閱 這裏。
新的 Binvox 和 Viewvox 版本和選項會加入得相當頻繁,因此要經常檢查更新。你總是可以在鍵入「binvox」(不帶參數)後在 CMD 窗口看到 Binvox 支持的選項和版本資訊。
語言