Qt3DExtras::QGoochMaterial Class
class Qt3DExtras::QGoochMaterialQGoochMaterial は、CAD や CAM アプリケーションで広く利用されている Gooch シェーディングモデルを実装したマテリアルを提供します。詳細...
| ヘッダー: | #include <qgoochmaterial.h> |
| 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
現在の光沢度値を保持します。光沢度の値が大きいほど、ハイライトは小さくなり、明るくなります。
アクセス関数:
| 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インスタンスを作成します。
© 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.