GLB gltfpack によるポリゴン削減

三角形保持コントロールは、元の三角形数をどれだけ保持するかを設定します。それは目標であり、約束ではありません。このページでは、ジオメトリの単純化について説明します。テクスチャのサイズやエンコーディングは変更されません。

適度な目標から始める

元のモデルをアップロードし、テクスチャを変更せずに、ターゲットの三角形保持を 50% に設定します。単純化エラーはデフォルトの 1% のままにします。下に進む前に、曲線のアウトライン、薄いパーツ、穴を比較してください。複数のメッシュがあるモデルの場合は、総数だけで判断するのではなく、各部分を確認してください。

gltfpack -i input.glb -o output.glb -si 0.5 -kn -km -ke

目標が達成できない理由

誤差制限により、許容可能な単純化誤差が制限されます。制限を厳しくすると削減を早期に停止できる可能性があります。開いた境界、属性の継ぎ目、小さなメッシュ パーツの構造によっても、安全な単純化の選択肢が少なくなる可能性があります。ウェブサイトでは測定結果と考えられる原因を報告します。エンジンが停止する正確な理由は 1 つだけではありません。

別々のピースが開いたエッジと一致し続ける必要がある場合は、境界頂点をロックします。これによりギャップを避けることができますが、より多くの三角形が残る可能性があります。輸出後に組み立てられた部品をテストします。境界線をロックしても、すべての視覚的な継ぎ目が変更されないという保証はありません。

リップルサンプルの測定結果

簡略化設定出力三角形
オリジナルメッシュ8,192
50% ターゲット、デフォルトのエラー制限4,095
10% ターゲット、エラーゼロ、ロックされた境界線8,192
10% ターゲット、積極的な簡素化812

実行では、同じオリジナルの CC0 サンプルとネイティブ gltfpack 1.3 を使用します。三角形の合計では、各メッシュ プリミティブを 1 回カウントします。結果はモデルによって異なり、目標に近い数は、残りの形状が許容できるかどうかについては何も示しません。

同じ角度でシルエットを比較してみる

これらのイメージは、Three.js 0.180.0 の同じカメラ、照明、マテリアルを使用してテーブル内のファイルをレンダリングします。画像を開いてフルサイズで確認します。外側の葉と内側の開口部から始めます。三角形の数だけで結果を判断しないでください。

固定比較カメラから見た元の波紋モデル
オリジナル: 8,192 個の三角形
50% の三角形保持後のリップル モデル
三角形を50%保持:4,095個
積極的な 10% 保持後のリップル モデル
強力な簡略化で10%保持:812個

アグレッシブな 10% の結果では、内側の開口部のセグメントが明らかに直線になり、角が鋭くなっています。外側の葉もいくらか丸みを失います。これらの変更は、たとえ三角形のターゲットに到達したとしても、小さなサムネイルでは見落とされがちです。

このサンプルにはスキニングやアニメーションはありません。単一のビューでは、モーションの問題、隠れたサーフェス、またはすべてのシェーディングの変化を明らかにすることはできません。下側の三角形の数を受け入れる前に、独自の結果を回転し、意図した表示サイズで確認してください。

比較後にのみ積極的な単純化を使用する

積極的な単純化では、要求されたカウントが優先され、エラー制限は無視されます。このモードがアクティブな間、インターフェイスはエラー フィールドを無効にします。コピーに使用して、シルエットと表面の陰影を検査します。これは、難しいモデルの品質を維持するための近道ではありません。

gltfpack -i input.glb -o output.glb -si 0.1 -sa -kn -km -ke

三角形の数が少なくてもファイル サイズがほとんど減らない場合 →

エンジンリファレンス: gltfpack

オプティマイザを開きます ↗