Qt3DExtras::QGoochMaterial Class
class Qt3DExtras::QGoochMaterialQGoochMaterial은 CAD 및 CAM 애플리케이션에서 널리 사용되는 Gooch 셰이딩 모델을 구현하는 재질을 제공합니다. 더 보기...
| 헤더: | #include <qgoochmaterial.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3dextras) target_link_libraries(mytarget PRIVATE Qt6::3dextras) |
| qmake: | QT += 3dextras |
| 상속: | Qt3DRender::QMaterial |
| 상태: | 사용 중단됨 |
이 클래스는 더 이상 사용되지 않습니다. 새로운 코드에서는 이 클래스를 사용하지 않는 것을 강력히 권장합니다.
속성
공개 함수
| 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) 조명 모델에 대한 자세한 설명은 원본 구치 논문에서 확인할 수 있습니다. 구치 모델은 물체의 확산 색상에 사용자가 지정한 차가운 색상과 따뜻한 색상을 혼합하여 색상 그라데이션의 끝점을 생성하며, 이 그라데이션은 프래그먼트에서 광원으로 향하는 벡터와 프래그먼트의 법선 벡터 사이의 각도의 코사인을 기반으로 물체에 음영을 입히는 데 사용됩니다. 선택적으로, 그 위에 스페큘러 하이라이트를 추가할 수도 있습니다. 확산 색상이 차가운 색상과 따뜻한 색상에 미치는 상대적 기여도는 각각 알파(alpha) 및 베타(beta) 속성으로 제어됩니다.
이 머티리얼은 단일 렌더 패스 방식을 사용하는 이펙트를 활용하며, 프래그먼트별 조명을 수행합니다. 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
현재 광택 값을 저장합니다. 광택 값이 높을수록 하이라이트는 더 작고 밝아집니다.
액세스 함수:
| 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 인스턴스를 생성합니다.
© 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.