QGLMaterial *Bitmap3DRender::material(QColor color) { Q_D(Bitmap3DRender); QGLMaterial *material = d->materials.material(color.name()); if (material == NULL) { material = new QGLMaterial; material->setObjectName(color.name()); color.setAlpha(1); material->setColor(color); d->materials.addMaterial(material); } return material; }
/*! Initializes the Qt3D materials used in the application. */ void GameView::initializeMaterials() { m_MaterialCollection = new QGLMaterialCollection(this); QGLTexture2D *lightTexture = new QGLTexture2D; lightTexture->setImage(QImage(":/reflectionmap.png")); QColor ambientColor = QColor(64, 64, 190); QGLMaterial *material = new QGLMaterial; material->setObjectName("PauseButtonMaterial"); QGLTexture2D *texture = new QGLTexture2D; texture->setImage(QImage(":/pause_button.png")); material->setTexture(texture); m_MaterialCollection->addMaterial(material); // Black hole material material = new QGLMaterial; material->setObjectName("BlackHoleMaterial"); texture = new QGLTexture2D; texture->setImage(QImage(":/BlackHole.jpg")); material->setTexture(texture); texture = new QGLTexture2D; texture->setImage(QImage(":/bh_sprial.png")); material->setTexture(texture, 1); material->setTextureCombineMode(QGLMaterial::Replace); m_MaterialCollection->addMaterial(material); // Black hole center material material = new QGLMaterial; material->setObjectName("BlackHoleFrontMaterial"); texture = new QGLTexture2D; texture->setImage(QImage(":/bh_sprial.png")); material->setTexture(texture); material->setTexture(lightTexture, 1); m_MaterialCollection->addMaterial(material); // Platform material material = new QGLMaterial; material->setObjectName("PlatformMaterial"); texture = new QGLTexture2D; texture->setImage(QImage(":/platformtex.png")); material->setTexture(texture); m_MaterialCollection->addMaterial(material); // Blok material material = new QGLMaterial; material->setObjectName("BlokMaterial"); texture = new QGLTexture2D; texture->setImage(QImage(":/SimpleBlock.png")); material->setTexture(texture); material->setTexture(lightTexture, 1); material->setAmbientColor(ambientColor); material->setShininess(0.2f); m_MaterialCollection->addMaterial(material); // Ball materials material = new QGLMaterial; material->setObjectName("BallMaterial1"); material->setAmbientColor(ambientColor); material->setDiffuseColor(QColor(255, 255, 64)); material->setTexture(texture, 0); material->setTexture(lightTexture, 1); material->setShininess(1.0f); material->setSpecularColor(material->diffuseColor()); m_MaterialCollection->addMaterial(material); material = new QGLMaterial; material->setObjectName("BallMaterial2"); material->setAmbientColor(ambientColor); material->setDiffuseColor(QColor(255, 64, 64)); material->setTexture(texture, 0); material->setTexture(lightTexture, 1); material->setShininess(1.0f); material->setSpecularColor(material->diffuseColor()); m_MaterialCollection->addMaterial(material); material = new QGLMaterial; material->setObjectName("BallMaterial3"); material->setDiffuseColor(QColor(64, 64, 255)); material->setAmbientColor(ambientColor); material->setTexture(texture, 0); material->setTexture(lightTexture, 1); material->setShininess(1.0f); material->setSpecularColor(material->diffuseColor()); m_MaterialCollection->addMaterial(material); material = new QGLMaterial; material->setObjectName("BallMaterial4"); material->setDiffuseColor(QColor(64, 255, 64)); material->setAmbientColor(ambientColor); material->setTexture(texture, 0); material->setTexture(lightTexture,1); material->setShininess(1.0f); material->setSpecularColor(material->diffuseColor()); m_MaterialCollection->addMaterial(material); material = new QGLMaterial; material->setObjectName("LightFlareMaterial"); texture = new QGLTexture2D; texture->setImage(QImage(":/flare.png")); material->setTexture(texture); m_MaterialCollection->addMaterial(material); material = new QGLMaterial; material->setObjectName("FontMaterial"); texture = new QGLTexture2D; texture->setImage(QImage(":/scorefont.png")); material->setTexture(texture); m_MaterialCollection->addMaterial(material); }