QMaterial Class

class Qt3DRender::QMaterial

씬의 모든 머티리얼 컴포넌트 클래스의 베이스가 되는 추상 클래스를 제공합니다. 더 보기...

속성

  • 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에 정의된 QParameterQEffect, QTechniqueQRenderPass 에 정의된 (같은 이름의) 파라미터를 재정의하지만 QRenderPassFilterQTechniqueFilter 의 파라미터에 의해 재정의됩니다.

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.