QGoochMaterial Class

class Qt3DExtras::QGoochMaterial

QGoochMaterialは、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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。