Camera QML Type

Camerasの抽象ベースを定義します。詳細...

Import Statement: import QtQuick3D
Inherits:

Node

Inherited By:

CustomCamera, OrthographicCamera, and PerspectiveCamera

プロパティ

メソッド

詳細説明

Cameraは、3Dシーンのコンテンツが、View3D のような2Dサーフェスにどのように投影されるかを定義します。シーンのコンテンツを視覚化するには、少なくとも1つのCameraが必要です。

シーン内の他の空間Node のように、Camera を配置したり回転させたりすることができます。Node の位置と向きは、カメラがシーンのどこにあり、どの方向を向いているかを決定します。カメラのデフォルトの向きは、前方ベクトルが負の Z 軸に沿い、上方ベクトルが正の Y 軸に沿います。

位置と向きとともに、フラストラムはシーンのどの部分がカメラから見えるか、そしてそれらが2Dサーフェス上にどのように投影されるかを定義します。異なるCameraサブタイプには、Cameraのフラストラムの形状を決定する複数のオプションがあります。

  • PerspectiveCamera はピラミッド型のフラストラムを持つカメラで、カメラから遠いオブジェクトが小さく見えるように投影されます。これは最も一般的に使用されるカメラタイプで、現実世界のほとんどのカメラの動作に対応しています。
  • OrthographicCamera はフラストラムの線が平行なカメラで、カメラからの距離の影響を受けずに物体のスケールを認識することができます。このタイプのカメラの典型的な使用例は、CAD(コンピュータ支援設計)アプリケーションや地図作成です。
  • FrustumCamera はパースペクティブカメラで、近接平面との交点の座標によってフラッサムを自由にカスタマイズできるタイプです。非対称のカメラフラクタムが必要な場合に便利です。
  • CustomCamera は、投影行列を自由にカスタマイズできるカメラタイプで、独自の投影行列を計算したい上級ユーザーにとって便利です。

この違いを説明するために、これらのスクリーンショットは、PerspectiveCameraOrthographicCamera によって投影された同じシーンを示しています。透視投影を使用してレンダリングされた画像では、赤いボックスが緑のボックスよりも小さくなっていることに注目してください。

透視カメラ正投影カメラ

Qt Quick 3D - View3D Exampleも参照してください

プロパティの説明

frustumCullingEnabled : bool

このプロパティがtrue の場合、カメラのフラストラムの外側のオブジェクトはカリングされます。デフォルトでは、このプロパティはfalse に設定されています。すべてのオブジェクトまたはほとんどのオブジェクトがカメラのフラストラム内にあるシーンでは、フラストラムカリングは不必要なパフォーマンスオーバーヘッドです。しかし、大きな部分がカメラのビューの外側にある複雑なシーンでは、フラストラムカリングを有効にするとパフォーマンスが向上する可能性があります。


levelOfDetailBias : float [since 6.5]

このプロパティは、自動詳細レベルメッシュが使用される前に、レンダリング時にモデルが必要とするサイズを変更します。生成された各詳細レベルメッシュには、各レベルが表示されるべき理想的なサイズ値が含まれており、これはレンダリングされたシーンがそのメッシュになる割合です。画面上に数ピクセルしか表示されないモデルは、正しく見えるために完全なジオメトリを必要としないので、この場合、低レベルの詳細メッシュが代わりに使用されます。この値は理想的な値への偏りであり、1.0 より小さい値は、より小さい詳細レベルに切り替える前に、さらに小さいレンダリングサイズを必要とします。値が1.0 より大きいと、より低い詳細レベルがより早く使用されるようになります。値を0.0 にすると、詳細レベルの使用を完全に無効にします。

デフォルト値は1.0

注意: このプロパティは、詳細レベルを含むジオムトリーを持つモデルに対してのみ効果があります。

このプロパティは Qt 6.5 で導入されました。

Model::levelOfDetailBiasも参照してください


lookAtNode : Node

このプロパティがnon-null に設定されている場合、このカメラの回転は自動的に更新され、このカメラまたは指定されたノードのシーン位置が変化するたびに、このカメラは指定されたノードを見続けるようになります。デフォルトでは、このプロパティはnull に設定されています。

lookAtも参照してください


メソッドの説明

vector3d lookAt(QtQuick3D::Node node)

カメラがnode を向くように、カメラの回転値を設定します。


vector3d lookAt(vector3d scenePos)

カメラの回転値を設定し、カメラがscenePos を向くようにします。


vector3d mapFromViewport(vector3d viewportPos)

viewportPos をビューポート空間(2D)からグローバルシーン空間(3D)に変換します。

viewportPos の x 値と y 値は、ビューポートの左上を [0, 0]、右下を [1, 1] として正規化する必要があります。z値は、フラストラムのニアクリッププレーン(clipNear)からの距離として解釈されます。

viewportPos をシーン内の位置にうまくマッピングできない場合は、[0, 0, 0] の位置が返されます。

mapToViewport およびView3D.mapTo3DScene()も参照して ください。


vector3d mapToViewport(vector3d scenePos)

scenePos をグローバルシーン空間(3D)からビューポート空間(2D)に変換します。

返される位置は、ビューポートの左上を [0, 0]、右下を [1, 1] として正規化されます。返されるz値には、シーン座標における、フラストラムの近クリップ平面(clipNear)からscenePos までの距離が含まれます。距離が負の場合、ポイントはカメラの後ろにあります。

scenePos をビューポート内の位置にうまくマッピングできない場合、[0, 0, 0] の位置が返されます。

mapFromViewport() およびView3D.mapFrom3DScene()も参照してください


本書に含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。