QDiffuseSpecularMaterial Class

class Qt3DExtras::QDiffuseSpecularMaterial

QDiffuseSpecularMaterial クラスは、フォン照明効果のデフォルト実装を提供します。詳細...

Header: #include <QDiffuseSpecularMaterial>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3dextras)
target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmake: QT += 3dextras
In QML: DiffuseSpecularMaterial
Inherits: Qt3DRender::QMaterial
Status: Deprecated

プロパティ

パブリック関数

QDiffuseSpecularMaterial(Qt3DCore::QNode *parent = nullptr)
virtual ~QDiffuseSpecularMaterial()
QColor ambient() const
QVariant diffuse() const
bool isAlphaBlendingEnabled() const
QVariant normal() const
float shininess() const
QVariant specular() const
float textureScale() const

パブリックスロット

void setAlphaBlendingEnabled(bool enabled)
void setAmbient(const QColor &ambient)
void setDiffuse(const QVariant &diffuse)
void setNormal(const QVariant &normal)
void setShininess(float shininess)
void setSpecular(const QVariant &specular)
void setTextureScale(float textureScale)

シグナル

void alphaBlendingEnabledChanged(bool enabled)
void ambientChanged(const QColor &ambient)
void diffuseChanged(const QVariant &diffuse)
void normalChanged(const QVariant &normal)
void shininessChanged(float shininess)
void specularChanged(const QVariant &specular)
void textureScaleChanged(float textureScale)

詳細説明

フォンの照明効果は、アンビエント、ディフューズ、スペキュラの3つの照明コンポーネントの組み合わせに基づいています。これらのコンポーネントの相対的な強さは、RGBトリプレットとしてモデル化された反射率係数によって制御されます:

  • アンビエントは、他の光源がない場合に物体から発せられる色です。
  • ディフューズ(Diffuse)とは、ライトによる急激な表面反射に対して発せられる色です。
  • スペキュラ(Specular)とは、ライトによる表面の光沢のある反射に対して発せられる色です。
  • 表面の輝きは float プロパティで制御します。

このマテリアルは、シングル レンダー パス アプローチのエフェクトを使用し、フラグメントごとにライティングを実行します。テクニックは、OpenGL 2、OpenGL 3以上、およびOpenGL ES 2用に提供されています。

プロパティの説明

alphaBlending : bool

diffuse プロパティから来るアルファ情報がレンダリング中に考慮されるかどうかを示します。デフォルトはfalseです。

アクセス関数

bool isAlphaBlendingEnabled() const
void setAlphaBlendingEnabled(bool enabled)

通知シグナル

void alphaBlendingEnabledChanged(bool enabled)

ambient : QColor

Notifierシグナル: 他の光源を持たないオブジェクトから放射されるアンビエントカラーを保持します。

アクセス関数:

QColor ambient() const
void setAmbient(const QColor &ambient)

Notifierシグナル:

void ambientChanged(const QColor &ambient)

diffuse : QVariant

アクセス関数:ノーティファイアシグナル:ライトによる粗い表面反射のために放射されるマテリアルのディフューズカラーを保持します。これはプレーンなカラー値でもテクスチャでもよい。

アクセス関数

QVariant diffuse() const
void setDiffuse(const QVariant &diffuse)

ノーティファイアシグナル:

void diffuseChanged(const QVariant &diffuse)

normal : QVariant

マテリアルの現在の法線マップテクスチャを保持します。これはテクスチャのみで、それ以外は無視されます。デフォルトではこのマップは設定されていません。

アクセス関数

QVariant normal() const
void setNormal(const QVariant &normal)

通知シグナル

void normalChanged(const QVariant &normal)

shininess : float

shininess指数を保持します。shininessの値が大きいほど、ハイライトが小さく明るくなります。

デフォルトは150.0。

アクセス関数:

float shininess() const
void setShininess(float shininess)

通知シグナル:

void shininessChanged(float shininess)

specular : QVariant

マテリアルのスペキュラカラーを保持します。これはプレーンなカラー値でもテクスチャでも構いません。

アクセス関数

QVariant specular() const
void setSpecular(const QVariant &specular)

ノーティファイアシグナル

void specularChanged(const QVariant &specular)

textureScale : float

現在のテクスチャスケールを保持します。レンダリング時にテクスチャ座標に乗数として適用されます。デフォルトは 1.0 です。

QTextureWrapMode::Repeatと組み合わせて使用すると、textureScaleは、サーフェス全体にテクスチャをタイル化する簡単な方法を提供します。例えば、4.0 のテクスチャスケールは、16 (4x4) のタイルになります。

アクセス関数

float textureScale() const
void setTextureScale(float textureScale)

通知シグナル

void textureScaleChanged(float textureScale)

メンバ関数ドキュメント

[explicit] QDiffuseSpecularMaterial::QDiffuseSpecularMaterial(Qt3DCore::QNode *parent = nullptr)

親オブジェクトparent を持つ新しい QDiffuseSpecularMaterial インスタンスを構築します。

[virtual noexcept] QDiffuseSpecularMaterial::~QDiffuseSpecularMaterial()

QDiffuseSpecularMaterial を破棄します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。