QMaterial Class
class Qt3DRender::QMaterial씬의 모든 머티리얼 컴포넌트 클래스의 베이스가 되는 추상 클래스를 제공합니다. 더 보기...
Header: | #include <QMaterial> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
QML에서: | Material |
상속합니다: | Qt3DCore::QComponent |
상속 대상: | 12 종류Qt3DExtras::QDiffuseMapMaterial, Qt3DExtras::QDiffuseSpecularMapMaterial, Qt3DExtras::QDiffuseSpecularMaterial, Qt3DExtras::QGoochMaterial, Qt3DExtras::QMetalRoughMaterial, Qt3DExtras::QMorphPhongMaterial, Qt3DExtras::QNormalDiffuseMapMaterial, Qt3DExtras::QNormalDiffuseSpecularMapMaterial, Qt3DExtras::QPerVertexColorMaterial, Qt3DExtras::QPhongAlphaMaterial, Qt3DExtras::QPhongMaterial, and Qt3DExtras::QTextureMaterial |
Status: | Deprecated |
속성
- effect : Qt3DRender::QEffect*
공용 기능
void | addParameter(Qt3DRender::QParameter *parameter) |
Qt3DRender::QEffect * | effect() const |
QList<Qt3DRender::QParameter *> | parameters() const |
void | removeParameter(Qt3DRender::QParameter *parameter) |
공용 슬롯
void | setEffect(Qt3DRender::QEffect *effect) |
신호
void | effectChanged(Qt3DRender::QEffect *effect) |
상세 설명
QMaterial은 entity 의 렌더링을 지정하는 방법을 제공합니다. 모든 측면은 QMaterial의 자체 서브클래스를 정의하여 머티리얼을 사용하여 시각 요소를 설명할 수 있습니다(예: 소리가 요소에서 반사되는 방식, 표면의 온도 등).
QMaterial은 그 자체로는 아무것도 하지 않습니다. QEffect 노드를 참조할 때만 QMaterial이 유용해집니다.
실제로는 하나의 QEffect 노드가 여러 QMaterial 컴포넌트에서 참조되는 경우가 많습니다. 이렇게 하면 효과, 기법, 패스 및 셰이더를 한 번만 생성하고 QParameter 인스턴스를 추가하여 머티리얼을 지정할 수 있습니다.
QMaterial에 정의된 QParameter 은 QEffect, QTechnique 및 QRenderPass 에 정의된 (같은 이름의) 파라미터를 재정의하지만 QRenderPassFilter 및 QTechniqueFilter 의 파라미터에 의해 재정의됩니다.
QMaterial *material1 = new QMaterial(); QMaterial *material2 = new QMaterial(); // Create effect, technique, render pass and shader QEffect *effect = new QEffect(); QTechnique *gl3Technique = new QTechnique(); QRenderPass *gl3Pass = new QRenderPass(); QShaderProgram *glShader = new QShaderProgram(); // Set the shader on the render pass gl3Pass->setShaderProgram(glShader); // Add the pass to the technique gl3Technique->addRenderPass(gl3Pass); // Set the targeted GL version for the technique gl3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); gl3Technique->graphicsApiFilter()->setMajorVersion(3); gl3Technique->graphicsApiFilter()->setMinorVersion(1); gl3Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::CoreProfile); // Add the technique to the effect effect->addTechnique(gl3Technique); // Set the effect on the materials material1->setEffect(effect); material2->setEffect(effect); // Set different parameters on the materials const QString parameterName = QStringLiteral("color"); material1->addParameter(new QParameter(parameterName, QColor::fromRgbF(0.0f, 1.0f, 0.0f, 1.0f))); material2->addParameter(new QParameter(parameterName, QColor::fromRgbF(1.0f, 1.0f, 1.0f, 1.0f)));
QEffect, QTechnique, QParameter도 참조하십시오 .
프로퍼티 문서
effect : Qt3DRender::QEffect*
머티리얼에 사용할 효과를 지정합니다.
기능에 액세스합니다:
Qt3DRender::QEffect * | effect() const |
void | setEffect(Qt3DRender::QEffect *effect) |
알림 신호:
void | effectChanged(Qt3DRender::QEffect *effect) |
멤버 함수 문서
void QMaterial::addParameter(Qt3DRender::QParameter *parameter)
소재의 파라미터에 parameter 을 추가합니다.
QList<Qt3DRender::QParameter *> QMaterial::parameters() const
머티리얼의 현재 파라미터 벡터를 반환합니다.
void QMaterial::removeParameter(Qt3DRender::QParameter *parameter)
소재의 매개 변수에서 parameter 을 제거합니다.
© 2025 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.