QNormalDiffuseSpecularMapMaterial Class
class Qt3DExtras::QNormalDiffuseSpecularMapMaterialQNormalDiffuseSpecularMapMaterial は、拡散光と鏡面光の成分がテクスチャマップから読み取られ、法線テクスチャマップからレンダリングされるメッシュの法線が読み取られる、フォン照明とバンプ効果のデフォルト実装を提供します。さらに詳しく
Header: | #include <QNormalDiffuseSpecularMapMaterial> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3dextras) target_link_libraries(mytarget PRIVATE Qt6::3dextras) |
qmake: | QT += 3dextras |
Inherits: | Qt3DRender::QMaterial |
Status: | Deprecated |
このクラスは非推奨です。新しいコードで使用しないことを強くお勧めします。
プロパティ
|
パブリック関数
QNormalDiffuseSpecularMapMaterial(Qt3DCore::QNode *parent = nullptr) | |
virtual | ~QNormalDiffuseSpecularMapMaterial() |
QColor | ambient() const |
Qt3DRender::QAbstractTexture * | diffuse() const |
Qt3DRender::QAbstractTexture * | normal() const |
float | shininess() const |
Qt3DRender::QAbstractTexture * | specular() const |
float | textureScale() const |
パブリックスロット
void | setAmbient(const QColor &ambient) |
void | setDiffuse(Qt3DRender::QAbstractTexture *diffuse) |
void | setNormal(Qt3DRender::QAbstractTexture *normal) |
void | setShininess(float shininess) |
void | setSpecular(Qt3DRender::QAbstractTexture *specular) |
void | setTextureScale(float textureScale) |
シグナル
void | ambientChanged(const QColor &ambient) |
void | diffuseChanged(Qt3DRender::QAbstractTexture *diffuse) |
void | normalChanged(Qt3DRender::QAbstractTexture *normal) |
void | shininessChanged(float shininess) |
void | specularChanged(Qt3DRender::QAbstractTexture *specular) |
void | textureScaleChanged(float textureScale) |
詳細説明
このクラスは非推奨です。代わりにQDiffuseSpecularMaterial を使用してください。
スペキュラライティング効果は、3つのライティングコンポーネント、アンビエント、ディフューズ、スペキュラの組み合わせに基づいています。これらのコンポーネントの相対的な強さは、RGBトリプレットとしてモデル化された反射率係数によって制御されます:
- アンビエントは、他の光源がない場合に物体から発せられる色です。
- ディフューズ(Diffuse)とは、ライトによる急激な表面反射に対して発せられる色です。
- スペキュラ(Specular)とは、ライトによる表面の光沢のある反射に対して発せられる色です。
- 表面の輝きは float プロパティで制御します。
このマテリアルは、シングル レンダー パス アプローチのエフェクトを使用し、フラグメントごとにライティングを実行します。テクニックは、OpenGL 2、OpenGL 3以上、およびOpenGL ES 2用に提供されています。
プロパティの説明
ambient : QColor
現在のアンビエントカラーを保持します。
アクセス関数
QColor | ambient() const |
void | setAmbient(const QColor &ambient) |
通知シグナル
void | ambientChanged(const QColor &ambient) |
diffuse : Qt3DRender::QAbstractTexture*
現在のディフューズマップテクスチャを保持します。
デフォルトでは、ディフューズテクスチャは以下のプロパティを持っています:
- 線形最小化および拡大フィルタ
- ミップマップが有効なリニアミップマップ
- リピートラップモード
- 最大異方性16.0
アクセス関数:
Qt3DRender::QAbstractTexture * | diffuse() const |
void | setDiffuse(Qt3DRender::QAbstractTexture *diffuse) |
通知シグナル:
void | diffuseChanged(Qt3DRender::QAbstractTexture *diffuse) |
normal : Qt3DRender::QAbstractTexture*
現在の法線マップテクスチャを保持します。
デフォルトでは、法線テクスチャは以下のプロパティを持ちます:
- 線形最小化フィルタと拡大フィルタ
- リピートラップモード
- 最大異方性16.0
アクセス関数:
Qt3DRender::QAbstractTexture * | normal() const |
void | setNormal(Qt3DRender::QAbstractTexture *normal) |
通知シグナル:
void | normalChanged(Qt3DRender::QAbstractTexture *normal) |
shininess : float
現在の輝度を float 値で保持する。
アクセス関数
float | shininess() const |
void | setShininess(float shininess) |
ノーティファイアシグナル:
void | shininessChanged(float shininess) |
specular : Qt3DRender::QAbstractTexture*
現在のスペキュラマップテクスチャを保持します。
デフォルトでは、鏡面テクスチャは以下のプロパティを持っています:
- 線形最小化および拡大フィルター
- ミップマップが有効なリニアミップマップ
- リピートラップモード
- 最大異方性16.0
アクセス関数:
Qt3DRender::QAbstractTexture * | specular() const |
void | setSpecular(Qt3DRender::QAbstractTexture *specular) |
通知シグナル:
void | specularChanged(Qt3DRender::QAbstractTexture *specular) |
textureScale : float
現在のテクスチャスケールを保持します。レンダリング時にテクスチャ座標に乗数として適用されます。デフォルトは1.0です。
QTextureWrapMode::Repeatと組み合わせて使用すると、textureScaleは、サーフェス全体にテクスチャをタイル化する簡単な方法を提供します。例えば、4.0
のテクスチャスケールは、16 (4x4) のタイルになります。
アクセス関数
float | textureScale() const |
void | setTextureScale(float textureScale) |
通知シグナル
void | textureScaleChanged(float textureScale) |
メンバ関数ドキュメント
[explicit]
QNormalDiffuseSpecularMapMaterial::QNormalDiffuseSpecularMapMaterial(Qt3DCore::QNode *parent = nullptr)
親オブジェクトparent を持つ新しい QNormalDiffuseSpecularMapMaterial インスタンスを構築します。
[virtual noexcept]
QNormalDiffuseSpecularMapMaterial::~QNormalDiffuseSpecularMapMaterial()
QNormalDiffuseSpecularMapMaterial インスタンスを破棄します。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。