En esta página

Qt3DExtras::QDiffuseSpecularMaterial Class

class Qt3DExtras::QDiffuseSpecularMaterial

La clase QDiffuseSpecularMaterial proporciona una implementación por defecto del efecto de iluminación phong. Más...

Cabecera: #include <QDiffuseSpecularMaterial>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3dextras)
target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmake: QT += 3dextras
En QML: DiffuseSpecularMaterial
Hereda: Qt3DRender::QMaterial
Status: Obsoleto

Propiedades

Funciones públicas

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

Ranuras públicas

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)

Señales

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)

Descripción detallada

El efecto de iluminación phong se basa en la combinación de 3 componentes de iluminación ambiental, difusa y especular. La intensidad relativa de estos componentes se controla mediante sus coeficientes de reflectividad, que se modelan como tripletes RGB:

  • Ambiente es el color que emite un objeto sin ninguna otra fuente de luz.
  • Difuso es el color emitido por los reflejos de la superficie con las luces.
  • Especular es el color que se emite para los reflejos brillantes de la superficie con las luces.
  • El brillo de una superficie se controla mediante una propiedad float.

Este material utiliza un efecto con un enfoque de una sola pasada de renderizado y realiza la iluminación por fragmento. Se proporcionan técnicas para OpenGL 2, OpenGL 3 o superior así como OpenGL ES 2.

Documentación de propiedades

alphaBlending : bool

Indica si la información alfa procedente de la propiedad difusa se tendrá en cuenta durante el renderizado. Por defecto es false.

Funciones de acceso:

bool isAlphaBlendingEnabled() const
void setAlphaBlendingEnabled(bool enabled)

Señal del notificador:

void alphaBlendingEnabledChanged(bool enabled)

ambient : QColor

Mantiene el color ambiente que emite un objeto sin ninguna otra fuente de luz.

Funciones de acceso:

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

Señal notificadora:

void ambientChanged(const QColor &ambient)

diffuse : QVariant

Mantiene el color difuso del material que se emite para los reflejos de la superficie rugosa con las luces. Puede ser un valor de color plano o una textura.

Funciones de acceso:

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

Señal del notificador:

void diffuseChanged(const QVariant &diffuse)

normal : QVariant

Contiene la textura actual del mapa de normales del material. Esto sólo puede ser una textura, de lo contrario se ignora. Por defecto este mapa no está definido.

Funciones de acceso:

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

Señal notificadora:

void normalChanged(const QVariant &normal)

shininess : float

Contiene el exponente de brillo. Valores altos de brillo resultan en un resaltado más pequeño y brillante.

Por defecto es 150.0.

Funciones de acceso:

float shininess() const
void setShininess(float shininess)

Señal de aviso:

void shininessChanged(float shininess)

specular : QVariant

Mantiene el color especular del material que se emite para los reflejos de la superficie brillante con las luces. Puede ser un valor de color plano o una textura.

Funciones de acceso:

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

Señal del notificador:

void specularChanged(const QVariant &specular)

textureScale : float

Mantiene la escala actual de la textura. Se aplica como un multiplicador a las coordenadas de la textura en tiempo de renderizado. Por defecto es 1.0.

Cuando se utiliza junto con QTextureWrapMode::Repeat, textureScale proporciona una forma sencilla de mosaico de una textura a través de una superficie. Por ejemplo, una escala de textura de 4.0 resultaría en 16 (4x4) mosaicos.

Funciones de acceso:

float textureScale() const
void setTextureScale(float textureScale)

Señal notificadora:

void textureScaleChanged(float textureScale)

Documentación de la función miembro

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

Construye una nueva instancia de QDiffuseSpecularMaterial con el objeto padre parent.

[virtual noexcept] QDiffuseSpecularMaterial::~QDiffuseSpecularMaterial()

Destruye el QDiffuseSpecularMaterial.

© 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.