ストリード
「ポリゴンタイル法」仮
ネットワークで3DのMMORPGやるとか言う場合には、結構意味はあるかもしれない。ゲームに限定?するなら従来の3Dモデルデータ量が半分になる、可能性はある。
2012/08/09
森宮 照
プロデューサーシート
タイトル「ポリゴンタイル法」仮
概略 3Dモデルデータアルゴリズム
コンセプト「軽い」
ハード的テーマ「3Dモデルデータの構成方法」肯定否定
ゲームなどに使用する3Dモデルデータを記録するアルゴリズム
ソフト的テーマ「軽量」肯定否定
従来のそれよりも軽く、また取り廻しやすいデータ形式
目的 3Dモデルデータの圧縮
それは無い 従来よりも重い
ディレクターノート
概略
3Dモデルデータのデータ構成法の一案。
ポリゴンにパターンを用意し、それを並べて張り合わせる事で従来よりも軽いデータ量での記録を可能にする。
詳細
エンコード
3Dモデルデータを用意。
まずモデルデータの”ポリゴン(3頂点で構成された面)”を、パターン分類する。
ポリゴン形状として幾つか(256個とか)基本形を用意しておき、そのどれか?に相当するパターン番号を抽出。後は角度と位置を記録して、それを並べる。
※従来型
頂点を全てナンバリングし、その頂点番号を3つ列記する事でポリゴンを形成する。
デコード
データのポリゴンを空間に並べる。この時点ではポリゴンの頂点がズレている事はさほど気にしない。
データを並べたら、各頂点の「隣接」を調べる。頂点が非常に近い(同一点と判断して良い)なら同一点として、両者をその”中間値”にしてしまう。それにより、頂点同士を連結させ、タイル化による誤差を埋めてしまう。
従来型とのデータ比較
約千頂点、300ポリゴン程度。座標軸は2バイト、角度は1バイトで。
従来型
頂点。X,Y,Zで6バイト、*1000。6KB
ポリゴン。頂点番号3つで6バイト、カラー情報等で2バイト。300枚*8=2400。
6KB+2.4KB=9KB程度。
ポリゴンタイル法
頂点無し。
ポリゴン。位置情報でX,Y,Zの6バイト。角度で3バイト。タイルパターンで2バイト(パターン&拡大率)、カラー情報等で2バイト。1ポリゴン13バイト。
300ポリゴンだとすると、300*13=3900バイト。約4KB未満。
問題
ポリゴンをタイル化するので、どうしてもデータ的には再現度が低くなる可能性が有る。その為、「デコードし、エンコードした結果」の3Dモデルに合うようにテクスチャなどは張る必要が有るかも知れない。ただ、ゲームなどの利用に限定するなら、従来に比べてデータ量が半分になる場合があるので、ネットワーク環境を考えると利用価値はあると思われる。
end