RenderInstancingDemo(CommonGraphicsApp* app) :m_app(app), m_x(0), m_y(0), m_z(0) { m_app->setUpAxis(2); { b3Vector3 extents=b3MakeVector3(100,100,100); extents[m_app->getUpAxis()]=1; int xres = 20; int yres = 20; b3Vector4 color0=b3MakeVector4(0.1, 0.1, 0.1,1); b3Vector4 color1=b3MakeVector4(0.6, 0.6, 0.6,1); m_app->registerGrid(xres, yres, color0, color1); } { int boxId = m_app->registerCubeShape(0.1,0.1,0.1); for (int i=-numCubesX/2;i<numCubesX/2;i++) { for (int j = -numCubesY/2;j<numCubesY/2;j++) { b3Vector3 pos=b3MakeVector3(i,j,j); pos[app->getUpAxis()] = 1; b3Quaternion orn(0,0,0,1); b3Vector4 color=b3MakeVector4(0.3,0.3,0.3,1); b3Vector3 scaling=b3MakeVector3(1,1,1); int instanceId = m_app->m_renderer->registerGraphicsInstance(boxId,pos,orn,color,scaling); m_movingInstances.push_back(instanceId); } } } m_app->m_renderer->writeTransforms(); }