このページでは

Camera QML Type

「Camera」クラスの抽象基底クラスを定義します。詳細...

Import Statement: import QtQuick3D
Inherits:

Node

Inherited By:

CustomCamera, FrustumCamera, OrthographicCamera, and PerspectiveCamera

プロパティ

方法

詳細な説明

カメラは、3Dシーンのコンテンツが、View3D などの2D面にどのように投影されるかを定義します。シーンの内容を可視化するには、少なくとも1つのカメラが必要です。

カメラは、シーン内の他の空間Node と同様に、位置や回転を調整することができます。Node の位置と向きによって、シーン内のカメラの位置や、カメラが向いている方向が決まります。カメラのデフォルトの向きでは、前方ベクトルはZ軸の負の方向を、上方ベクトルはY軸の正の方向を指しています。

位置と向きに加え、視錐台(frustum)によって、シーンのどの部分がカメラから見えるか、そしてそれらが2D平面上にどのように投影されるかが決定されます。さまざまなカメラのサブタイプには、カメラの視錐台の形状を決定するための複数のオプションが用意されています。

  • PerspectiveCamera は、ピラミッド型の視錐台を持つカメラを提供します。このカメラでは、カメラから遠いオブジェクトほど小さく見えるように投影されます。これは最も一般的に使用されるカメラタイプであり、現実世界のほとんどのカメラの動作に対応しています。
  • OrthographicCamera は、フラスタムの辺が平行であるカメラを提供します。これにより、オブジェクトの知覚されるスケールは、カメラからの距離の影響を受けません。このタイプのカメラの代表的な用途は、CAD(コンピュータ支援設計)アプリケーションや地図作成です。
  • FrustumCamera は、近接平面との交点の座標によって視錐台を自由にカスタマイズできる透視カメラの一種です。非対称なカメラの視錐台が必要な場合に役立ちます。
  • CustomCamera これは、投影行列を自由にカスタマイズできるカメラタイプであり、独自の投影行列を計算したい上級ユーザーに有用です。

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

透視カメラ正射影カメラ

プレートのパースペクティブカメラビュー

プレートの正投影カメラビュー

「Qt Quick 3D - View3D の例」も参照してください 。

プロパティのドキュメント

frustumCullingEnabled : bool

このプロパティが「true 」に設定されている場合、カメラのフラスタム外にあるオブジェクトはカリングされ、レンダラーに渡されなくなります。デフォルトでは、このプロパティは「false 」に設定されています。すべてのオブジェクト、またはその大部分がカメラのフラスタム内にあるシーンでは、フラスタムカリングは不要なパフォーマンスのオーバーヘッドとなります。 しかし、シーンの大部分がカメラの視野外にあるような複雑なシーンでは、フラスタムカリングを有効にすることでパフォーマンスが向上する可能性があります。

levelOfDetailBias : real [since 6.5]

このプロパティは、自動詳細度メッシュが使用される前に、モデルをレンダリングする際に必要なサイズを変更します。生成される各詳細度メッシュには、そのレベルが表示されるべき理想的なサイズ値が含まれており、これはレンダリングされたシーンのうち、そのメッシュが占める割合を表します。 画面上でわずか数ピクセルしか占めないモデルの場合、正しく表示されるために完全なジオメトリを必要としないため、この場合は代わりに低レベルのLODメッシュが使用されます。この値は理想値に対するバイアスであり、1.0 より小さい値に設定すると、より低いレベルのLODに切り替わる前に、さらに小さなレンダリングサイズが必要となります。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()も参照してください 。

© 2026 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.