/*! \class Qt3D::QDiffuseSpecularMapMaterialPrivate \internal */ QDiffuseSpecularMapMaterialPrivate::QDiffuseSpecularMapMaterialPrivate() : QMaterialPrivate() , m_diffuseSpecularMapEffect(new QEffect()) , m_diffuseTexture(new QTexture2D()) , m_specularTexture(new QTexture2D()) , m_ambientParameter(new QParameter(QStringLiteral("ka"), QColor::fromRgbF(0.05f, 0.05f, 0.05f, 1.0f))) , m_diffuseParameter(new QParameter(QStringLiteral("diffuseTexture"), m_diffuseTexture)) , m_specularParameter(new QParameter(QStringLiteral("specularTexture"), m_specularTexture)) , m_shininessParameter(new QParameter(QStringLiteral("shininess"), 150.0f)) , m_lightPositionParameter(new QParameter(QStringLiteral("lightPosition"), QVector4D(1.0f, 1.0f, 0.0f, 1.0f))) , m_lightIntensityParameter(new QParameter(QStringLiteral("lightIntensity"), QVector3D(1.0f, 1.0f, 1.0f))) , m_textureScaleParameter(new QParameter(QStringLiteral("texCoordScale"), 1.0f)) , m_diffuseSpecularMapGL3Technique(new QTechnique()) , m_diffuseSpecularMapGL2Technique(new QTechnique()) , m_diffuseSpecularMapES2Technique(new QTechnique()) , m_diffuseSpecularMapGL3RenderPass(new QRenderPass()) , m_diffuseSpecularMapGL2RenderPass(new QRenderPass()) , m_diffuseSpecularMapES2RenderPass(new QRenderPass()) , m_diffuseSpecularMapGL3Shader(new QShaderProgram()) , m_diffuseSpecularMapGL2ES2Shader(new QShaderProgram()) { m_diffuseTexture->setMagnificationFilter(QAbstractTextureProvider::Linear); m_diffuseTexture->setMinificationFilter(QAbstractTextureProvider::LinearMipMapLinear); m_diffuseTexture->setWrapMode(QTextureWrapMode(QTextureWrapMode::Repeat)); m_diffuseTexture->setGenerateMipMaps(true); m_diffuseTexture->setMaximumAnisotropy(16.0f); m_specularTexture->setMagnificationFilter(QAbstractTextureProvider::Linear); m_specularTexture->setMinificationFilter(QAbstractTextureProvider::LinearMipMapLinear); m_specularTexture->setWrapMode(QTextureWrapMode(QTextureWrapMode::Repeat)); m_specularTexture->setGenerateMipMaps(true); m_specularTexture->setMaximumAnisotropy(16.0f); }
/*! * \internal */ void QSkyboxEntityPrivate::init() { m_gl3Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/skybox.vert")))); m_gl3Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/gl3/skybox.frag")))); m_gl2es2Shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/skybox.vert")))); m_gl2es2Shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/es2/skybox.frag")))); m_gl3Technique->openGLFilter()->setApi(QOpenGLFilter::Desktop); m_gl3Technique->openGLFilter()->setMajorVersion(3); m_gl3Technique->openGLFilter()->setMajorVersion(1); m_gl3Technique->openGLFilter()->setProfile(QOpenGLFilter::Core); m_gl2Technique->openGLFilter()->setApi(QOpenGLFilter::Desktop); m_gl2Technique->openGLFilter()->setMajorVersion(2); m_gl2Technique->openGLFilter()->setMajorVersion(0); m_gl2Technique->openGLFilter()->setProfile(QOpenGLFilter::None); m_es2Technique->openGLFilter()->setApi(QOpenGLFilter::ES); m_es2Technique->openGLFilter()->setMajorVersion(2); m_es2Technique->openGLFilter()->setMajorVersion(0); m_es2Technique->openGLFilter()->setProfile(QOpenGLFilter::None); m_gl3RenderPass->setShaderProgram(m_gl3Shader); m_gl2RenderPass->setShaderProgram(m_gl2es2Shader); m_es2RenderPass->setShaderProgram(m_gl2es2Shader); QCullFace *cullFront = new QCullFace(); cullFront->setMode(QCullFace::Front); QDepthTest *depthTest = new QDepthTest(); depthTest->setFunc(QDepthTest::LessOrEqual); m_gl3RenderPass->addRenderState(cullFront); m_gl3RenderPass->addRenderState(depthTest); m_gl2RenderPass->addRenderState(cullFront); m_gl2RenderPass->addRenderState(depthTest); m_es2RenderPass->addRenderState(cullFront); m_es2RenderPass->addRenderState(depthTest); m_gl3Technique->addPass(m_gl3RenderPass); m_gl2Technique->addPass(m_gl2RenderPass); m_es2Technique->addPass(m_es2RenderPass); m_effect->addTechnique(m_gl3Technique); m_effect->addTechnique(m_gl2Technique); m_effect->addTechnique(m_es2Technique); m_material->setEffect(m_effect); m_material->addParameter(m_textureParameter); m_transform->addTransform(m_translate); m_mesh->setXYMeshResolution(QSize(2, 2)); m_mesh->setXZMeshResolution(QSize(2, 2)); m_mesh->setYZMeshResolution(QSize(2, 2)); m_posXImage->setCubeMapFace(QTextureCubeMap::CubeMapPositiveX); m_posYImage->setCubeMapFace(QTextureCubeMap::CubeMapPositiveY); m_posZImage->setCubeMapFace(QTextureCubeMap::CubeMapPositiveZ); m_negXImage->setCubeMapFace(QTextureCubeMap::CubeMapNegativeX); m_negYImage->setCubeMapFace(QTextureCubeMap::CubeMapNegativeY); m_negZImage->setCubeMapFace(QTextureCubeMap::CubeMapNegativeZ); m_skyboxTexture->setMagnificationFilter(QTextureCubeMap::Linear); m_skyboxTexture->setMinificationFilter(QTextureCubeMap::Linear); m_skyboxTexture->setGenerateMipMaps(false); m_skyboxTexture->setWrapMode(QTextureWrapMode(QTextureWrapMode::ClampToEdge)); m_skyboxTexture->addTextureImage(m_posXImage); m_skyboxTexture->addTextureImage(m_posYImage); m_skyboxTexture->addTextureImage(m_posZImage); m_skyboxTexture->addTextureImage(m_negXImage); m_skyboxTexture->addTextureImage(m_negYImage); m_skyboxTexture->addTextureImage(m_negZImage); q_func()->addComponent(m_mesh); q_func()->addComponent(m_material); q_func()->addComponent(m_transform); }