QDebug operator<<(QDebug dbg, const QGLMaterial &material) { dbg << &material << "-- Amb:" << material.ambientColor() << "-- Diff:" << material.diffuseColor() << "-- Spec:" << material.specularColor() << "-- Shin:" << material.shininess(); for (int i = 0; i < material.textureLayerCount(); ++i) if (material.texture(i) != 0) dbg << "\n -- Tex" << i << ":" << material.texture(i) << material.texture(i)->objectName(); dbg << "\n"; return dbg; }
/*! 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); }