diff options
Diffstat (limited to 'src/extras/defaults/qmetalroughmaterial.cpp')
-rw-r--r-- | src/extras/defaults/qmetalroughmaterial.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/extras/defaults/qmetalroughmaterial.cpp b/src/extras/defaults/qmetalroughmaterial.cpp index 7d5ee61ea..7aecfa65d 100644 --- a/src/extras/defaults/qmetalroughmaterial.cpp +++ b/src/extras/defaults/qmetalroughmaterial.cpp @@ -79,6 +79,10 @@ QMetalRoughMaterialPrivate::QMetalRoughMaterialPrivate() , m_metalRoughES3RenderPass(new QRenderPass()) , m_metalRoughES3Shader(new QShaderProgram()) , m_metalRoughES3ShaderBuilder(new QShaderProgramBuilder()) + , m_metalRoughRHITechnique(new QTechnique()) + , m_metalRoughRHIRenderPass(new QRenderPass()) + , m_metalRoughRHIShader(new QShaderProgram()) + , m_metalRoughRHIShaderBuilder(new QShaderProgramBuilder()) , m_filterKey(new QFilterKey) { } @@ -120,6 +124,16 @@ void QMetalRoughMaterialPrivate::init() QStringLiteral("ambientOcclusion"), QStringLiteral("normal")}); + m_metalRoughRHIShader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/rhi/default.vert")))); + m_metalRoughRHIShaderBuilder->setParent(q); + m_metalRoughRHIShaderBuilder->setShaderProgram(m_metalRoughRHIShader); + m_metalRoughRHIShaderBuilder->setFragmentShaderGraph(QUrl(QStringLiteral("qrc:/shaders/graphs/metalrough.frag.json"))); + m_metalRoughRHIShaderBuilder->setEnabledLayers({QStringLiteral("baseColor"), + QStringLiteral("metalness"), + QStringLiteral("roughness"), + QStringLiteral("ambientOcclusion"), + QStringLiteral("normal")}); + m_metalRoughGL3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); m_metalRoughGL3Technique->graphicsApiFilter()->setMajorVersion(3); m_metalRoughGL3Technique->graphicsApiFilter()->setMinorVersion(1); @@ -129,6 +143,10 @@ void QMetalRoughMaterialPrivate::init() m_metalRoughES3Technique->graphicsApiFilter()->setMajorVersion(3); m_metalRoughES3Technique->graphicsApiFilter()->setMinorVersion(0); + m_metalRoughRHITechnique->graphicsApiFilter()->setApi(QGraphicsApiFilter::RHI); + m_metalRoughRHITechnique->graphicsApiFilter()->setMajorVersion(1); + m_metalRoughRHITechnique->graphicsApiFilter()->setMinorVersion(0); + m_filterKey->setParent(q); m_filterKey->setName(QStringLiteral("renderingStyle")); m_filterKey->setValue(QStringLiteral("forward")); @@ -143,6 +161,11 @@ void QMetalRoughMaterialPrivate::init() m_metalRoughES3Technique->addRenderPass(m_metalRoughES3RenderPass); m_metalRoughEffect->addTechnique(m_metalRoughES3Technique); + m_metalRoughRHITechnique->addFilterKey(m_filterKey); + m_metalRoughRHIRenderPass->setShaderProgram(m_metalRoughRHIShader); + m_metalRoughRHITechnique->addRenderPass(m_metalRoughRHIRenderPass); + m_metalRoughEffect->addTechnique(m_metalRoughRHITechnique); + // Given parameters a parent m_baseColorMapParameter->setParent(m_metalRoughEffect); m_metalnessMapParameter->setParent(m_metalRoughEffect); |