mirror of https://github.com/qt/qt3d.git
Share the mesh in bigscene-cpp
No point loading the same data 1k times. Shaves 35% off the time from application start to first frame being complete. Change-Id: I8cd7c8a5aa377c0663c03e35d7a4c03f50b052f6 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
This commit is contained in:
parent
733afa3b25
commit
4f2ff90254
|
@ -58,15 +58,8 @@
|
|||
Entity::Entity(Qt3DCore::QNode *parent)
|
||||
: QEntity(parent)
|
||||
, m_transform(new Qt3DCore::QTransform())
|
||||
, m_mesh(new Qt3DExtras::QCylinderMesh())
|
||||
, m_material(new Qt3DExtras::QPhongMaterial())
|
||||
{
|
||||
m_mesh->setRings(50.0f);
|
||||
m_mesh->setSlices(30.0f);
|
||||
m_mesh->setRadius(2.5f);
|
||||
m_mesh->setLength(5.0f);
|
||||
|
||||
addComponent(m_mesh);
|
||||
addComponent(m_transform);
|
||||
addComponent(m_material);
|
||||
}
|
||||
|
|
|
@ -61,6 +61,10 @@ namespace Qt3DCore {
|
|||
class QTransform;
|
||||
}
|
||||
|
||||
namespace Qt3DRender {
|
||||
class QGeometryRenderer;
|
||||
}
|
||||
|
||||
namespace Qt3DExtras {
|
||||
class QCylinderMesh;
|
||||
class QPhongMaterial;
|
||||
|
@ -101,7 +105,6 @@ private:
|
|||
|
||||
private:
|
||||
Qt3DCore::QTransform *m_transform;
|
||||
Qt3DExtras::QCylinderMesh *m_mesh;
|
||||
Qt3DExtras::QPhongMaterial *m_material;
|
||||
float m_theta;
|
||||
float m_phi;
|
||||
|
|
|
@ -81,6 +81,13 @@ int main(int ac, char **av)
|
|||
|
||||
QEntity *root = new QEntity();
|
||||
|
||||
// Mesh
|
||||
auto *mesh = new Qt3DExtras::QCylinderMesh(root);
|
||||
mesh->setRings(50.0f);
|
||||
mesh->setSlices(30.0f);
|
||||
mesh->setRadius(2.5f);
|
||||
mesh->setLength(5.0f);
|
||||
|
||||
// Camera
|
||||
QCamera *cameraEntity = view.camera();
|
||||
cameraEntity->lens()->setPerspectiveProjection(45.0f, 16.0f/9.0f, 0.1f, 1000.0f);
|
||||
|
@ -99,6 +106,7 @@ int main(int ac, char **av)
|
|||
// Scene
|
||||
for (int i = 0; i < max; i++) {
|
||||
Entity *e = new Entity();
|
||||
e->addComponent(mesh);
|
||||
const float angle = M_PI * 2.0f * i * det * 10.;
|
||||
|
||||
e->setDiffuseColor(QColor(qFabs(qCos(angle)) * 255, 204, 75));
|
||||
|
|
Loading…
Reference in New Issue