Forge Viewer の新バージョン 3.3 がリリースされています。今回はバージョン 3.3 での API 上の新機能をご紹介したいと思います。
非フォトグラフィックス レンダリング スタイルの追加
このバージョンでは、3D モデル表示時のフォトリアル表現に加えて、非フォトリアルなアーティスティックな表現が可能になりました。これによって、印象をやわらげ、デザインの提案などにも利用出来るようになります。
例えば、環境を「広場」に設定した上記のようなフォトリアル表現は、edging、cel、graphite、pencil のいずれかのスタイル指定によって、次のように表示スタイルを変化させることが出来ます。もちろん、このな表現のまま、3D モデルをリアルタイムにナビゲーションすることが出来るようになります。従来のように一定の演算時間が必要なレンダリング画像の生成は不要ですが、モバイル デバイスのようにグラフィックス機能が高くないデバイスでは、フレームレートが自動調整される場合があります。
スタイルの変更はビューアでモデルを表示した後のポスト処理(事後処理)になります。当該メソッドは、Viewer3D クラスに追加されています。
ビューア表示後に必要なポスト処理は次のようになります。
viewer.impl.preloadPostProcessStyle();
viewer.impl.setPostProcessParameter( "style", "pencil" );
preloadPostProcessStyle() を呼び出さずに、graphite スタイルや pencil スタイルなどのテクスチャ情報が必要な表現を指定すると、最初の表示が完了するまで若干時間が必要になる場合がありますのでご注意ください。
setPostProcessParameter() に指定可能なパラメータは、”style” の各値以外にも、下記のパラメータとの組み合わせで個別に値を指定することが出来ます(setPostProcessParameter() の複数行呼び出し)。
style
許容されるパラメータ:
"off" あるいは ””(未指定)
"edging"
"cel"
"graphite"
"pencil"
brightness
値の範囲: -1.0 から 1.0 (既定値: 0.0)
輝度の強さを調整します。
contrast
値の範囲: -1.0 から 1.0 (既定値: 0.0)
コントラストを調整します。
preserveColor
ブール値: true または false (既定値: false)
スケール カラーを有効化、または、クランプ カラーを無効化します。
例:
false 指定時にカラー (4.0,1.0,0.5) は (1.0,1.0,0.5) に変換
true 指定時にカラー (4.0,1.0,0.5) は (1.0,0.25,0.125) に変換 ー 各要素は最大4.0で除算されます。
grayscale
ブール値: true または false (既定値: false)
上記操作後で処理前に画像の彩度を上げることができます。
"graphite" スタイルには効果がないことに注意してください。
edges
ブール値: true または false (既定値: true)
エッジを表示する(スクリーンベース)を有効にします。 (反射された画像にエッジが表示されないことに注意してください)
edges パラメータは、すべてのエッジをオンまたはオフに設定します。 特定のエッジタイプには、3つの個別のトグルがあります。
idEdges
ブール値: true または false (既定値: true)
個別のIDまたは背景を持つオブジェクトが一致するエッジを表示するようにします。 これらのオブジェクトの内部エッジは表示されません。
normalEdges
ブール値: trueまたはfalse (default: true)
法線が「十分」であるエッジを表示して、鋭いエッジが表示されるようにします。
depthEdges
ブール値: true または false (既定値: true)
深度が「十分」異なるエッジを表示して、遠くのオブジェクト間のエッジが表示されるようにします。 これは、IDと法線が同じになるように、単一オブジェクト内の平面が平行であるケースをキャッチします。
levels ("cel" スタイルのみ)
値の範囲: 2.0 から 256.0 (既定値: 6.0)
ポスタリゼーションのレベル数を設定します。通常値の範囲: 2.0 から 8.0
分数値は有効であり、1つのレベルから別のレベルへのスムーズな移行が行われることに注意してください。
repeats ("graphite" と "pencil" スタイルのみ)
値の範囲: 0.001 から 100.0 (既定値: 3.0)
これらのスタイルで使用されるテクスチャパターンがビュー内で繰り返される回数を設定します。: top から bottom. 通常値の範囲: 1.0 - 5.0.
この数を増やすと、パターンは小さくなり、繰り返しとして検出される可能性が高くなります。
rotation ("graphite" と "pencil" スタイルのみ)
値の範囲: 0.0 から 1.0 (既定値: 0.0)
これらのスタイルで使用されるテクスチャパターンの時計回りの回転を設定します。 0.0 は回転なしを意味し、1.0 は 180度です。
既定値のパターンは、左下から右上の向きになります。
選択時とマウスホバー時のハイライト
既定値では、ビューアに表示した 3D オブジェクトの上にマウスを置いたり(マウス ホバー)、ビュー、または、モデル ブラウザで 3D オブジェクトをクリックして選択すると、対象の 3D オブジェクトをハイライト表示します。 このハイライト表示は、モデルを選択したり操作したりするときに便利ですが、プレゼンテーションモードを好む場合には邪魔になってしまいます。 今回のバージョンでは、これらの動作を切り替えることができるようになりました。 当該メソッドは、スタイル変更と同様に Viewer3D クラスに追加されています。
viewer.disableHighlight(boolean); // trueでホバー時のハイライトを無効化(既定値はfalse)
viewer.disableSelection(boolean); // trueで選択時のハイライトを無効化(既定値はfalse)
表示する 3D モデルやプレゼンテーションシーンに合わせて適宜お使いいただければと思います。
By Toshiaki Isezaki
コメント