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 の同じカメラ、照明、マテリアルを使用してテーブル内のファイルをレンダリングします。画像を開いてフルサイズで確認します。外側の葉と内側の開口部から始めます。三角形の数だけで結果を判断しないでください。
アグレッシブな 10% の結果では、内側の開口部のセグメントが明らかに直線になり、角が鋭くなっています。外側の葉もいくらか丸みを失います。これらの変更は、たとえ三角形のターゲットに到達したとしても、小さなサムネイルでは見落とされがちです。
このサンプルにはスキニングやアニメーションはありません。単一のビューでは、モーションの問題、隠れたサーフェス、またはすべてのシェーディングの変化を明らかにすることはできません。下側の三角形の数を受け入れる前に、独自の結果を回転し、意図した表示サイズで確認してください。
比較後にのみ積極的な単純化を使用する
積極的な単純化では、要求されたカウントが優先され、エラー制限は無視されます。このモードがアクティブな間、インターフェイスはエラー フィールドを無効にします。コピーに使用して、シルエットと表面の陰影を検査します。これは、難しいモデルの品質を維持するための近道ではありません。
gltfpack -i input.glb -o output.glb -si 0.1 -sa -kn -km -ke
三角形の数が少なくてもファイル サイズがほとんど減らない場合 →
エンジンリファレンス: gltfpack
オプティマイザを開きます ↗

