QGoochMaterial Class
class Qt3DExtras::QGoochMaterialQGoochMaterialは、CADやCAMアプリケーションで人気のGoochシェーディングモデルを実装したマテリアルを提供します。詳細...
ヘッダー | #include <QGoochMaterial> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3dextras) target_link_libraries(mytarget PRIVATE Qt6::3dextras) |
qmake: | QT += 3dextras |
を継承する: | Qt3DRender::QMaterial |
ステータス | 非推奨 |
プロパティ
パブリック機能
QGoochMaterial(Qt3DCore::QNode *parent = nullptr) | |
float | alpha() const |
float | beta() const |
QColor | cool() const |
QColor | diffuse() const |
float | shininess() const |
QColor | specular() const |
QColor | warm() const |
パブリックスロット
void | setAlpha(float alpha) |
void | setBeta(float beta) |
void | setCool(const QColor &cool) |
void | setDiffuse(const QColor &diffuse) |
void | setShininess(float shininess) |
void | setSpecular(const QColor &specular) |
void | setWarm(const QColor &warm) |
シグナル
void | alphaChanged(float alpha) |
void | betaChanged(float beta) |
void | coolChanged(const QColor &cool) |
void | diffuseChanged(const QColor &diffuse) |
void | shininessChanged(float shininess) |
void | specularChanged(const QColor &specular) |
void | warmChanged(const QColor &warm) |
詳細説明
Gooch照明モデルは、色と明るさの両方を使用して、3D曲面の曲率を表示するのに役立ちます。これは、純粋に明るさの変化に依存するPhongのようなモデルよりも優れていることがよくあります。フォトリアリズムが目標ではないCADやCAMアプリケーションのような状況では、ある種のシルエットエッジインキングと組み合わせたGoochシェーディングモデルが一般的なソリューションです。
Goochライティング・モデルについては、オリジナルのGooch論文で詳しく説明されています。Goochモデルは、拡散オブジェクトカラーと、ユーザが提供するクールカラーとウォームカラーをミックスし、フラグメントから光源へのベクトルとフラグメントの法線ベクトルの間の角度の余弦に基づいてオブジェクトをシェーディングするために使用されるカラーランプの端点を生成します。オプションとして、スペキュラハイライトを上に追加することもできます。ディフューズカラーによるクールカラーとウォームカラーへの相対的な寄与は、それぞれアルファとベータプロパティによって制御されます。
このマテリアルは、シングルレンダリングパスアプローチのエフェクトを使用し、フラグメントごとにライティングを実行します。テクニックはOpenGL 2、OpenGL 3以上、OpenGL ES 2用に提供されています。
プロパティのドキュメント
alpha : float
現在のアルファ値を保持します。Goochシェーダで使用されるカラーランプの開始点は、{c = cool + alpha * diffuse}として計算されます。
アクセス関数:
float | alpha() const |
void | setAlpha(float alpha) |
通知シグナル:
void | alphaChanged(float alpha) |
beta : float
現在のベータ値を保持します。Goochシェーダで使用されるカラーランプの開始点は、{c = warm + beta * diffuse}として計算されます。
アクセス関数:
float | beta() const |
void | setBeta(float beta) |
通知シグナル:
void | betaChanged(float beta) |
cool : QColor
現在のクールカラーを保持します。
アクセス機能
QColor | cool() const |
void | setCool(const QColor &cool) |
通知シグナル
void | coolChanged(const QColor &cool) |
diffuse : QColor
現在のディフューズカラーを保持します。
アクセス関数:
QColor | diffuse() const |
void | setDiffuse(const QColor &diffuse) |
通知シグナル
void | diffuseChanged(const QColor &diffuse) |
shininess : float
現在のshininessの値を保持する。shininessの値が高いほど、ハイライトは小さく明るくなります。
アクセス関数:
float | shininess() const |
void | setShininess(float shininess) |
通知シグナル:
void | shininessChanged(float shininess) |
specular : QColor
現在のスペキュラカラーを保持します。
アクセス関数:
QColor | specular() const |
void | setSpecular(const QColor &specular) |
通知シグナル:
void | specularChanged(const QColor &specular) |
warm : QColor
現在の暖色を保持します。
アクセス機能
QColor | warm() const |
void | setWarm(const QColor &warm) |
通知シグナル:
void | warmChanged(const QColor &warm) |
メンバ関数ドキュメント
[explicit]
QGoochMaterial::QGoochMaterial(Qt3DCore::QNode *parent = nullptr)
親オブジェクトparent を持つ新しい QGoochMaterial インスタンスを構築します。
© 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.