Overview

binvox 檔案格式是一種體積像素(volumn pixel, voxel)格式,簡稱體素。體素能以較省空間的形式來表示一個 3D 模型,常應用在 minecraft、樂高積木上。

viewvox_NkTTSL4amT.png

Introduction

為何較省空間?

Structure

#binvox 1
// 1 代表對應的版本,#binvox 代表該檔案格式是 binvox
dim 256 256 256
// 分別代表體素網格的高度、寬度和長度,三個維度應該是相等的
translate -0.241359 -0.319687 -0.241206
scale 7.30682
// 上面兩行主要是用來正規化從網格到體素的變換,分別是平移和縮放。
data
// 檔案最後一項代表體素的資料,全部以二進制格式儲存。

translatescale 的目的是要對其他格式的檔案(例如 mesh)進行正規化。使體素模型可以擬合到一個 1x1x1 的立方體上,並且其原點位於 (0, 0, 0),這是透過平移和縮放來達成的。步驟依序如下:

  1. 平移:將網格模型的原點平移到 (0, 0, 0)。
  2. 縮放:將網格模型的尺度大小縮放至可以擬合體素模型所要求的維度大小。
  3. 接著就可以依據座標決定體素是否為 0 或 1。

Demo-9.jpg

Tools