QGoochMaterial Class
class Qt3DExtras::QGoochMaterialQGoochMaterialは、CADやCAMアプリケーションで人気のGoochシェーディングモデルを実装したマテリアルを提供します。詳細...
Header: | #include <QGoochMaterial> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3dextras) target_link_libraries(mytarget PRIVATE Qt6::3dextras) |
qmake: | QT += 3dextras |
Inherits: | Qt3DRender::QMaterial |
Status: | Deprecated |
プロパティ
パブリック関数
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の値が大きいほど、ハイライトは小さく明るくなります。
アクセス関数
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 インスタンスを構築します。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。