이 페이지에서

Qt3DExtras::QDiffuseSpecularMapMaterial Class

class Qt3DExtras::QDiffuseSpecularMapMaterial

QDiffuseSpecularMapMaterial은 텍스처 맵에서 확산광 및 반사광 성분을 읽어오는 퐁(Phong) 조명 효과의 기본 구현을 제공합니다. 더 보기...

헤더: #include <qdiffusespecularmapmaterial.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3dextras)
target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmake: QT += 3dextras
상속: Qt3DRender::QMaterial
상태: 사용 중단됨

이 클래스는 더 이상 사용되지 않습니다. 새로운 코드에서는 이 클래스를 사용하지 않는 것을 강력히 권장합니다.

속성

공개 함수

QDiffuseSpecularMapMaterial(Qt3DCore::QNode *parent = nullptr)
virtual ~QDiffuseSpecularMapMaterial()
QColor ambient() const
Qt3DRender::QAbstractTexture *diffuse() const
float shininess() const
Qt3DRender::QAbstractTexture *specular() const
float textureScale() const

공개 슬롯

void setAmbient(const QColor &ambient)
void setDiffuse(Qt3DRender::QAbstractTexture *diffuse)
void setShininess(float shininess)
void setSpecular(Qt3DRender::QAbstractTexture *specular)
void setTextureScale(float textureScale)

신호

void ambientChanged(const QColor &ambient)
void diffuseChanged(Qt3DRender::QAbstractTexture *diffuse)
void shininessChanged(float shininess)
void specularChanged(Qt3DRender::QAbstractTexture *specular)
void textureScaleChanged(float textureScale)

상세 설명

이 클래스는 더 이상 사용되지 않습니다. 대신 ` Qt3DExtras::QDiffuseSpecularMaterial `를 사용하십시오.

스페큘러 조명 효과는 앰비언트, 디퓨즈, 스페큘러라는 3가지 조명 구성 요소의 조합을 기반으로 합니다. 이러한 구성 요소들의 상대적 강도는 RGB 3원색으로 모델링된 반사 계수를 통해 제어됩니다.

  • 앰비언트는 다른 광원이 없는 상태에서 물체가 방출하는 색상입니다.
  • 확산(Diffuse)은 조명이 닿았을 때 거친 표면에서 반사되어 방출되는 색상입니다.
  • 스페큘러는 빛이 반사될 때 광택 있는 표면에서 나타나는 색상입니다.
  • 표면의 광택도는 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)

shininess : float

현재의 광택도를 부동소수점 값으로 저장합니다. 광택도 값이 높을수록 하이라이트는 더 작고 밝아집니다.

기본값은 150.0입니다.

액세스 함수:

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입니다.

textureScale을 QTextureWrapMode::Repeat와 함께 사용하면 표면 전체에 텍스처를 타일링하는 간단한 방법을 제공합니다. 예를 들어, 텍스처 스케일이 4.0 인 경우 16개(4x4)의 타일이 생성됩니다.

액세스 함수:

float textureScale() const
void setTextureScale(float textureScale)

알림 신호:

void textureScaleChanged(float textureScale)

멤버 함수 문서

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

parent 를 부모 객체로 하는 새로운 QDiffuseSpecularMapMaterial 인스턴스를 생성합니다.

[virtual noexcept] QDiffuseSpecularMapMaterial::~QDiffuseSpecularMapMaterial()

QDiffuseSpecularMapMaterial 인스턴스를 삭제합니다.

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