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 の例も参照して ください。

プロパティ ドキュメント

frustumCullingEnabled : bool

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


levelOfDetailBias : real [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()も参照してください


© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.