Javascript/canvas で 3D 表示アプリケーションを作成しましたが、これは非常にうまく機能します。最近、テクスチャをマップする機能を実装しました。
stl 形式から 3d モデルをインポートします。これらは tris のみを保存するのでうまく機能し、分割する必要がないためインポートが簡単ですが、テクスチャは保存されません。
テクスチャの保存方法はそのまま
textureObject(){
this.img=image //Js image object
this.triArray=[[x1,y1],[x2,y2]...]//Map of where polys
function returnImage(int i){
//returns a cropped triangle around the coordinates in the triArray.
}
}
実際の実装は少し異なりますが、それが肉汁です。これは完璧なテクスチャ マッピングではありませんが、罪のように醜く見えるアフィン変換にすぎませんが、私には十分です。
私の問題は、このプロジェクトのためだけに新しいファイル形式を作成する必要がないように、既に作成されている 3d オブジェクトから triArray を保存する方法がわからないことです。
2つのオプションがあると思います:
テクスチャ座標情報をファイルに保存するファイル形式がある場合は、別のファイル形式のインポーターを作成します。(しかし、どのファイル形式ですか?)
また
または、配列を作成するために実装できるオブジェクトにテクスチャをマッピングする標準的な方法はありますか? (方法は?)