プログレッシブメッシュを作成する新しい方法

ODA SDKs バージョン 21.3 より前は、OdGiProgressiveMeshGenerator を使用するためにシェルデータからプログレッシブメッシュを作成する必要があり、初期データ転送後にジェネレータのステータスを確認することが含まれていました。ステータスが OK でない場合、プログレッシブメッシュは構築できないか、データが失われる可能性がありました。そのため、プログレッシブメッシュを生成するか、元のシェルデータをどこかに保持するかを決定する必要がありました。

バージョン 21.3 以降、新しい OdGiProgressiveMeshEx クラスは OdGiProgressiveMeshGenerator と OdGiProgressiveMesh をラップします。このクラスは、プログレッシブメッシュの生成がキャンセルされた場合、またはデータの非多様性によりメッシュが生成されなかった場合でも、初期シェルデータを保持します。

OdGiProgressiveMeshEx クラスは、同じ API を介してプログレッシブメッシュデータと初期データへのアクセスを提供します。

プログレッシブメッシュを作成する

プログレッシブメッシュを作成するには、OdGiProgressiveMeshEx のインスタンスを作成し、初期データで埋め、buildProgressiveMesh メソッドを呼び出します。

OdGiProgressiveMeshExPtr pPM = OdGiProgressiveMeshEx::createObject();
pPM->setupInitialShell( pts.size(), pts.asArrayPtr(), faces.size(), faces.asArrayPtr() );
pPM->options().setMinVertices( nMinPoints );
pPM->options().setMinFaces( nMinFaces );
pPM->buildProgressiveMesh();

OdGiProgressiveMeshEx::options() メソッドを使用して OdGiProgressiveMeshGeneratorOptions にアクセスできます。

OdGiProgressiveMeshEx::buildProgressiveMesh() メソッドを使用して、頂点、面、およびエッジデータを指定します。

OdGiProgressiveMeshEx::setGenerationAbortFlags() メソッドを使用すると、プログレッシブメッシュの生成を中止する OdGiProgressiveMeshGenerator::Status フラグのセットを指定できます。

OdGiProgressiveMeshEx::isProgressiveMeshGenerated() メソッドは、プログレッシブメッシュが正常に生成された場合に true を返します。このメソッドが false を返す場合、OdGiProgressiveMeshEx は初期データで動作し、すべてのプログレッシブメッシュ固有の呼び出し (setLOD() など) は無視されます。

メッシュが生成された場合、OdGiProgressiveMeshEx::progressiveMesh() の呼び出しによって取得できます。

VisualizeSDK

Visualize SDKバージョン21.3以降、OdTvProgressiveMeshDataクラスはOdGiProgressiveMeshの代わりにOdGiProgressiveMeshExをラップします。そのため、メッシュが生成されなくても、初期データは保持され、レンダリングできます。

OdTvProgressiveMeshDataクラスには、メッシュが正常に生成された場合にtrueを返す新しいisProgressiveMeshGenerated()メソッドがあります。

今すぐ始める

ODAソフトウェアを60日間無料でお試しください。
リスクなし、クレジットカード不要。

無料で試す