From bd7943b8740d939367ee69e1ea349223cafe7f3d Mon Sep 17 00:00:00 2001 From: Jonathan Fransson Date: Mon, 15 Apr 2019 16:25:26 -0600 Subject: [PATCH] Rendering separate orbits --- .../earth/satellites/satellites_debris.asset | 6 ++-- .../space/rendering/renderablesatellites.cpp | 33 +++++-------------- .../space/rendering/renderablesatellites.h | 2 +- 3 files changed, 13 insertions(+), 28 deletions(-) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_debris.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_debris.asset index e4902c1725..56cbcf1fad 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_debris.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_debris.asset @@ -1,4 +1,4 @@ asset.request('./debris/debris_breezem') -asset.request('./debris/debris_fengyun') -asset.request('./debris/debris_iridium33') -asset.request('./debris/debris_kosmos2251') +--asset.request('./debris/debris_fengyun') +--asset.request('./debris/debris_iridium33') +--asset.request('./debris/debris_kosmos2251') diff --git a/modules/space/rendering/renderablesatellites.cpp b/modules/space/rendering/renderablesatellites.cpp index 861d439f98..cb651fb14d 100644 --- a/modules/space/rendering/renderablesatellites.cpp +++ b/modules/space/rendering/renderablesatellites.cpp @@ -713,31 +713,16 @@ void RenderableSatellites::render(const RenderData& data, RendererTasks&) { //glEnableVertexAttribArray(0); // We like submitting vertices on stream 0 for no special reason //glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(TrailVBOLayout), 0); + const size_t orbits = static_cast(_vertexBufferData.size()) / _nSegments; + size_t vertices = 0; + + glBindVertexArray(_vertexArray); - //glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer); - //glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _indexBuffer); - - glDrawArrays(GL_LINE_LOOP, 0, static_cast(_vertexBufferData.size())); - - /*glDrawElements(GL_LINES, - static_cast(_indexBufferData.size()), - //20, - GL_UNSIGNED_INT, - 0); - */ - //&_indexBufferData.front()); - //glDrawArrays(GL_LINES, - // 0, - // 20); //static_cast(_indexBufferData.size())); - /* - glBegin (GL_LINES); - glVertex3f (_vertexBufferData[0].x, _vertexBufferData[0].y, _vertexBufferData[0].z); - glVertex3f (_vertexBufferData[1].x, _vertexBufferData[1].y, _vertexBufferData[1].z); - glVertex3f (_vertexBufferData[2].x, _vertexBufferData[2].y, _vertexBufferData[2].z); - glVertex3f (_vertexBufferData[3].x, _vertexBufferData[3].y, _vertexBufferData[3].z); - glEnd (); - */ - + for (size_t i = 0; i <= orbits; ++i) { + //glDrawArrays(GL_LINE_STRIP, 0, static_cast(_vertexBufferData.size())); + glDrawArrays(GL_LINE_LOOP, vertices, _nSegments); + vertices = vertices + _nSegments + 1; + } glBindVertexArray(0); _programObject->deactivate(); diff --git a/modules/space/rendering/renderablesatellites.h b/modules/space/rendering/renderablesatellites.h index f0899620b3..539ee8666b 100644 --- a/modules/space/rendering/renderablesatellites.h +++ b/modules/space/rendering/renderablesatellites.h @@ -119,7 +119,7 @@ namespace openspace { RenderableTrail::Appearance _appearance; - UniformCache(opacity, modelView, projection, color) //, useLineFade, lineFade) + UniformCache(opacity, modelView, projection, color, useLineFade, lineFade) _uniformCache; /**