History

Make sure the frustum that we use for culling contains the current camera information.

Andrzej Kapolka committed 12 years ago

Commit fe249ef1 parent 34ccc2a3 files · +11 −6Browse files

Showing the changes to interface/src/MetavoxelSystem.cpp (1 of 3 files). Show all

Unified · Split

interface/src/MetavoxelSystem.cpp+6−6
@@ -133,7 +133,7 @@ const GLenum COLOR_NORMAL_DRAW_BUFFERS[] = { GL_COLOR_ATTACHMENT0, GL_COLOR_ATTA · 132 unmodified lines
133 133
134void MetavoxelSystem::render() {134void MetavoxelSystem::render() {
135 // update the frustum135 // update the frustum
136 ViewFrustum* viewFrustum = Application::getInstance()->getViewFrustum();136 ViewFrustum* viewFrustum = Application::getInstance()->getDisplayViewFrustum();
137 _frustum.set(viewFrustum->getFarTopLeft(), viewFrustum->getFarTopRight(), viewFrustum->getFarBottomLeft(),137 _frustum.set(viewFrustum->getFarTopLeft(), viewFrustum->getFarTopRight(), viewFrustum->getFarBottomLeft(),
138 viewFrustum->getFarBottomRight(), viewFrustum->getNearTopLeft(), viewFrustum->getNearTopRight(),138 viewFrustum->getFarBottomRight(), viewFrustum->getNearTopLeft(), viewFrustum->getNearTopRight(),
139 viewFrustum->getNearBottomLeft(), viewFrustum->getNearBottomRight());139 viewFrustum->getNearBottomLeft(), viewFrustum->getNearBottomRight());
@@ -2187,7 +2187,7 @@ private: · 2047 unmodified lines
2187SpannerRenderVisitor::SpannerRenderVisitor(const MetavoxelLOD& lod) :2187SpannerRenderVisitor::SpannerRenderVisitor(const MetavoxelLOD& lod) :
2188 SpannerVisitor(QVector<AttributePointer>() << AttributeRegistry::getInstance()->getSpannersAttribute(),2188 SpannerVisitor(QVector<AttributePointer>() << AttributeRegistry::getInstance()->getSpannersAttribute(),
2189 QVector<AttributePointer>(), QVector<AttributePointer>(), QVector<AttributePointer>(),2189 QVector<AttributePointer>(), QVector<AttributePointer>(), QVector<AttributePointer>(),
2190 lod, encodeOrder(Application::getInstance()->getViewFrustum()->getDirection())),2190 lod, encodeOrder(Application::getInstance()->getDisplayViewFrustum()->getDirection())),
2191 _containmentDepth(INT_MAX) {2191 _containmentDepth(INT_MAX) {
2192}2192}
2193 2193
@@ -2223,7 +2223,7 @@ private: · 29 unmodified lines
2223 2223
2224BufferRenderVisitor::BufferRenderVisitor(const AttributePointer& attribute) :2224BufferRenderVisitor::BufferRenderVisitor(const AttributePointer& attribute) :
2225 MetavoxelVisitor(QVector<AttributePointer>() << attribute),2225 MetavoxelVisitor(QVector<AttributePointer>() << attribute),
2226 _order(encodeOrder(Application::getInstance()->getViewFrustum()->getDirection())),2226 _order(encodeOrder(Application::getInstance()->getDisplayViewFrustum()->getDirection())),
2227 _containmentDepth(INT_MAX) {2227 _containmentDepth(INT_MAX) {
2228}2228}
2229 2229
@@ -2257,12 +2257,12 @@ void DefaultMetavoxelRendererImplementation::render(MetavoxelData& data, Metavox · 27 unmodified lines
2257 float viewportWidth = viewport[VIEWPORT_WIDTH_INDEX];2257 float viewportWidth = viewport[VIEWPORT_WIDTH_INDEX];
2258 float viewportHeight = viewport[VIEWPORT_HEIGHT_INDEX];2258 float viewportHeight = viewport[VIEWPORT_HEIGHT_INDEX];
2259 float viewportDiagonal = sqrtf(viewportWidth * viewportWidth + viewportHeight * viewportHeight);2259 float viewportDiagonal = sqrtf(viewportWidth * viewportWidth + viewportHeight * viewportHeight);
2260 float worldDiagonal = glm::distance(Application::getInstance()->getViewFrustum()->getNearBottomLeft(),2260 float worldDiagonal = glm::distance(Application::getInstance()->getDisplayViewFrustum()->getNearBottomLeft(),
2261 Application::getInstance()->getViewFrustum()->getNearTopRight());2261 Application::getInstance()->getDisplayViewFrustum()->getNearTopRight());
2262 2262
2263 _pointProgram.bind();2263 _pointProgram.bind();
2264 _pointProgram.setUniformValue(_pointScaleLocation, viewportDiagonal *2264 _pointProgram.setUniformValue(_pointScaleLocation, viewportDiagonal *
2265 Application::getInstance()->getViewFrustum()->getNearClip() / worldDiagonal);2265 Application::getInstance()->getDisplayViewFrustum()->getNearClip() / worldDiagonal);
2266 2266
2267 glEnableClientState(GL_VERTEX_ARRAY);2267 glEnableClientState(GL_VERTEX_ARRAY);
2268 glEnableClientState(GL_COLOR_ARRAY);2268 glEnableClientState(GL_COLOR_ARRAY);