summaryrefslogtreecommitdiffstats
path: root/examples/bigscene-cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire.ecortex@kdab.com>2014-12-30 15:43:48 +0100
committerSean Harmer <sean.harmer@kdab.com>2014-12-31 11:23:55 +0100
commitc5891b2a67e539760887d8c0476ea7aac521cdf2 (patch)
tree25c58246b751814396bfe6076f2fa85b3d0a363d /examples/bigscene-cpp
parent3701990027d9e18bac2cfbb8c536287d2dcc7bd8 (diff)
bigscene-cpp: use QPhongMaterial which reduces code size
Change-Id: I18beff0430a13f40112adf1c026949a59774e0ee Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'examples/bigscene-cpp')
-rw-r--r--examples/bigscene-cpp/main.cpp34
1 files changed, 6 insertions, 28 deletions
diff --git a/examples/bigscene-cpp/main.cpp b/examples/bigscene-cpp/main.cpp
index 7050b3dc1..1c5b440d8 100644
--- a/examples/bigscene-cpp/main.cpp
+++ b/examples/bigscene-cpp/main.cpp
@@ -64,6 +64,7 @@
#include <Qt3DRenderer/QCameraSelector>
#include <Qt3DRenderer/QTechniqueFilter>
#include <Qt3DRenderer/QOpenGLFilter>
+#include <Qt3DRenderer/QPhongMaterial>
#include <qmath.h>
using namespace Qt3D;
@@ -103,26 +104,6 @@ int main(int ac, char **av)
frameGraph->setActiveFrameGraph(techniqueFilter);
root->addComponent(frameGraph);
- QShaderProgram *shader = new QShaderProgram();
- shader->setVertexShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/diffuse.vert"))));
- shader->setFragmentShaderCode(QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/shaders/diffuse.frag"))));
-
- QRenderPass *renderPass = new QRenderPass();
- renderPass->setShaderProgram(shader);
-
- QTechnique *technique = new QTechnique();
- technique->openGLFilter()->setApi(Qt3D::QOpenGLFilter::Desktop);
- technique->openGLFilter()->setMajorVersion(3);
- technique->openGLFilter()->setMinorVersion(1);
- technique->openGLFilter()->setProfile(Qt3D::QOpenGLFilter::Core);
- technique->addPass(renderPass);
-
- QEffect *effect = new QEffect();
- QParameter* lightPos = new QParameter(QStringLiteral("lightPosition"), QVector4D(10.0f, 10.0f, 0.0f, 1.0f));
- QParameter* lightIntensity = new QParameter(QStringLiteral("lightIntensity"), QVector3D(0.5f, 0.5f, 0.5f));
- effect->addParameter(lightPos);
- effect->addParameter(lightIntensity);
- effect->addTechnique(technique);
const float radius = 100.0f;
const int max = 1000;
@@ -135,8 +116,7 @@ int main(int ac, char **av)
QRotateTransform *rotateX = new QRotateTransform();
QRotateTransform *rotateZ = new QRotateTransform();
QCylinderMesh *mesh = new QCylinderMesh();
- QMaterial *material = new QMaterial();
-
+ QPhongMaterial *material = new QPhongMaterial();
mesh->setRings(50.0f);
mesh->setSlices(30.0f);
mesh->setRadius(2.5f);
@@ -144,12 +124,10 @@ int main(int ac, char **av)
const float angle = M_PI * 2.0f * i * det * 10.;
- QParameter *diffuseColorParameter = new QParameter(QStringLiteral("kd"), QVector3D(cosf(angle), 0.3f, sinf(angle)));
- QParameter* ambientColorParameter = new QParameter(QStringLiteral("ka"), QVector3D(cosf(angle), sinf(angle), 0.5f));
-
- material->setEffect(effect);
- material->addParameter(diffuseColorParameter);
- material->addParameter(ambientColorParameter);
+ material->setDiffuse(QColor(fabs(cosf(angle)) * 255, 204, 75));
+ material->setAmbient(Qt::gray);
+ material->setSpecular(Qt::white);
+ material->setShininess(150.0f);
translation->setTranslation(QVector3D(radius * cos(angle), 200.* i * det, radius * sin(angle)));
rotateX->setAxis(QVector3D(1.0f, 0.0f, 0.0f));