From 2ec20e546b3d0950d04c5d5aae96d0058e61eaf8 Mon Sep 17 00:00:00 2001 From: Jonathan Fransson Date: Wed, 10 Apr 2019 14:16:19 -0600 Subject: [PATCH 1/4] merge --- .../space/rendering/renderablesatellites.cpp | 23 +++++++++++-------- .../space/rendering/renderablesatellites.h | 7 +++--- .../shaders/renderablekeplerorbits_fs.glsl | 4 +++- .../shaders/renderablekeplerorbits_vs.glsl | 3 ++- 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/modules/space/rendering/renderablesatellites.cpp b/modules/space/rendering/renderablesatellites.cpp index d446413bc5..be39b17762 100644 --- a/modules/space/rendering/renderablesatellites.cpp +++ b/modules/space/rendering/renderablesatellites.cpp @@ -434,7 +434,7 @@ RenderableSatellites::RenderableSatellites(const ghoul::Dictionary& dictionary) _epochColumnName = dictionary.value(EpochColumnInfo.identifier); - addPropertySubOwner(_appearance); + //addPropertySubOwner(_appearance); addProperty(_path); addProperty(_nSegments); addProperty(_semiMajorAxisUnit); @@ -594,6 +594,7 @@ void RenderableSatellites::deinitialize() { } void RenderableSatellites::initializeGL() { + glGenVertexArrays(1, &_vertexArray); glGenBuffers(1, &_vertexBuffer); glGenBuffers(1, &_indexBuffer); @@ -608,7 +609,7 @@ void RenderableSatellites::initializeGL() { ); } ); - + /* _uniformCache.opacity = _programObject->uniformLocation("opacity"); _uniformCache.modelView = _programObject->uniformLocation("modelViewTransform"); _uniformCache.projection = _programObject->uniformLocation("projectionTransform"); @@ -617,16 +618,17 @@ void RenderableSatellites::initializeGL() { _uniformCache.lineFade = _programObject->uniformLocation("lineFade"); setRenderBin(Renderable::RenderBin::Overlay); - + */ } void RenderableSatellites::deinitializeGL() { - + SpaceModule::ProgramObjectManager.release(ProgramName); glDeleteBuffers(1, &_vertexBuffer); glDeleteBuffers(1, &_indexBuffer); glDeleteVertexArrays(1, &_vertexArray); + } @@ -639,6 +641,7 @@ bool RenderableSatellites::isReady() const { void RenderableSatellites::update(const UpdateData&) {} void RenderableSatellites::render(const RenderData& data, RendererTasks&) { + /* _programObject->activate(); _programObject->setUniform(_uniformCache.opacity, _opacity); @@ -654,11 +657,11 @@ void RenderableSatellites::render(const RenderData& data, RendererTasks&) { _programObject->setUniform(_uniformCache.projection, data.camera.projectionMatrix()); _programObject->setUniform(_uniformCache.color, _appearance.lineColor); - _programObject->setUniform(_uniformCache.useLineFade, _appearance.useLineFade); + //_programObject->setUniform(_uniformCache.useLineFade, _appearance.useLineFade); - if (_appearance.useLineFade) { - _programObject->setUniform(_uniformCache.lineFade, _appearance.lineFade); - } + //if (_appearance.useLineFade) { + // _programObject->setUniform(_uniformCache.lineFade, _appearance.lineFade); + //} glDepthMask(false); //glBlendFunc(GL_SRC_ALPHA, GL_ONE); @@ -670,13 +673,13 @@ void RenderableSatellites::render(const RenderData& data, RendererTasks&) { 0); glBindVertexArray(0); _programObject->deactivate(); + */ } void RenderableSatellites::updateBuffers() { const size_t nVerticesPerOrbit = _nSegments + 1; _vertexBufferData.resize(_TLEData.size() * nVerticesPerOrbit); _indexBufferData.resize(_TLEData.size() * _nSegments * 2); - size_t orbitindex = 0; size_t elementindex = 0; @@ -699,7 +702,7 @@ void RenderableSatellites::updateBuffers() { float timeOffset = orbit.period * static_cast(i) / static_cast(_nSegments); - glm::vec3 position = _keplerTranslator.debrisPos(Time(orbit.epoch + timeOffset)); + glm::vec3 position = _keplerTranslator.debrisPos(Time(orbit.epoch + timeOffset)); _vertexBufferData[index].x = position.x; _vertexBufferData[index].y = position.y; diff --git a/modules/space/rendering/renderablesatellites.h b/modules/space/rendering/renderablesatellites.h index d3623544cd..c00eec0b94 100644 --- a/modules/space/rendering/renderablesatellites.h +++ b/modules/space/rendering/renderablesatellites.h @@ -89,7 +89,6 @@ namespace openspace { GLuint _vertexBuffer; GLuint _indexBuffer; - void readFromCsvFile(); void updateBuffers(); std::vector _orbits; @@ -109,10 +108,10 @@ namespace openspace { properties::StringProperty _meanAnomalyAtEpochColumnName; properties::StringProperty _epochColumnName; - RenderableTrail::Appearance _appearance; + //RenderableTrail::Appearance _appearance; - UniformCache(opacity, modelView, projection, color, useLineFade, lineFade) - _uniformCache; + //UniformCache(opacity, modelView, projection, color, useLineFade, lineFade) + // _uniformCache; /** * Reads the provided TLE file and calles the KeplerTranslation::setKeplerElments diff --git a/modules/space/shaders/renderablekeplerorbits_fs.glsl b/modules/space/shaders/renderablekeplerorbits_fs.glsl index cf095fb168..1f54b51abb 100644 --- a/modules/space/shaders/renderablekeplerorbits_fs.glsl +++ b/modules/space/shaders/renderablekeplerorbits_fs.glsl @@ -43,4 +43,6 @@ Fragment getFragment() { frag.gNormal = vec4(0.0, 0.0, -1.0, 1.0); return frag; -} \ No newline at end of file + +} + diff --git a/modules/space/shaders/renderablekeplerorbits_vs.glsl b/modules/space/shaders/renderablekeplerorbits_vs.glsl index 9640dea8aa..29c3ff6897 100644 --- a/modules/space/shaders/renderablekeplerorbits_vs.glsl +++ b/modules/space/shaders/renderablekeplerorbits_vs.glsl @@ -36,9 +36,10 @@ uniform int pointSize; out vec4 viewSpacePosition; void main() { + dvec4 position = dvec4(vertexData.xyz, 1.0); float timeOffset = vertexData.w; viewSpacePosition = vec4(modelViewTransform * position); gl_Position = projectionTransform * viewSpacePosition; -} \ No newline at end of file +} From 986176af567029bdc5921061ffa092428bd8cb3f Mon Sep 17 00:00:00 2001 From: Jonathan Fransson Date: Wed, 10 Apr 2019 17:41:30 -0600 Subject: [PATCH 2/4] No crash on render, but not rendering --- data/assets/spaceDebris.scene | 2 +- .../space/rendering/renderablesatellites.cpp | 83 +++++-------------- .../space/rendering/renderablesatellites.h | 6 +- 3 files changed, 24 insertions(+), 67 deletions(-) diff --git a/data/assets/spaceDebris.scene b/data/assets/spaceDebris.scene index 4fe45f780d..beaa95d6eb 100644 --- a/data/assets/spaceDebris.scene +++ b/data/assets/spaceDebris.scene @@ -9,7 +9,7 @@ asset.require('scene/solarsystem/planets/earth/earth') --assetHelper.requestAll(asset, 'scene/digitaluniverse') -- Load default key bindings applicable to most scenes asset.require('util/default_keybindings') ---asset.require('util/default_dashboard') +asset.require('util/default_dashboard') --asset.require('util/default_joystick') asset.require('util/webgui') diff --git a/modules/space/rendering/renderablesatellites.cpp b/modules/space/rendering/renderablesatellites.cpp index c1a4c9a282..ee6a81551e 100644 --- a/modules/space/rendering/renderablesatellites.cpp +++ b/modules/space/rendering/renderablesatellites.cpp @@ -604,42 +604,26 @@ void RenderableSatellites::initializeGL() { ); } ); -<<<<<<< HEAD - /* + _uniformCache.opacity = _programObject->uniformLocation("opacity"); _uniformCache.modelView = _programObject->uniformLocation("modelViewTransform"); _uniformCache.projection = _programObject->uniformLocation("projectionTransform"); _uniformCache.color = _programObject->uniformLocation("color"); _uniformCache.useLineFade = _programObject->uniformLocation("useLineFade"); _uniformCache.lineFade = _programObject->uniformLocation("lineFade"); -======= - - // _uniformCache.opacity = _programObject->uniformLocation("opacity"); - // _uniformCache.modelView = _programObject->uniformLocation("modelViewTransform"); - // _uniformCache.projection = _programObject->uniformLocation("projectionTransform"); - // _uniformCache.color = _programObject->uniformLocation("color"); - // _uniformCache.useLineFade = _programObject->uniformLocation("useLineFade"); - // _uniformCache.lineFade = _programObject->uniformLocation("lineFade"); ->>>>>>> e4734ae0b3148cae1f230b00570b5e8c723d5b4b setRenderBin(Renderable::RenderBin::Overlay); - */ + } void RenderableSatellites::deinitializeGL() { SpaceModule::ProgramObjectManager.release(ProgramName); -<<<<<<< HEAD glDeleteBuffers(1, &_vertexBuffer); glDeleteBuffers(1, &_indexBuffer); glDeleteVertexArrays(1, &_vertexArray); - -======= - // glDeleteBuffers(1, &_vertexBuffer); - // glDeleteBuffers(1, &_indexBuffer); - // glDeleteVertexArrays(1, &_vertexArray); ->>>>>>> e4734ae0b3148cae1f230b00570b5e8c723d5b4b + } @@ -652,9 +636,9 @@ bool RenderableSatellites::isReady() const { void RenderableSatellites::update(const UpdateData&) {} void RenderableSatellites::render(const RenderData& data, RendererTasks&) { -<<<<<<< HEAD - /* + _programObject->activate(); + _programObject->setUniform(_uniformCache.opacity, _opacity); glm::dmat4 modelTransform = @@ -666,59 +650,32 @@ void RenderableSatellites::render(const RenderData& data, RendererTasks&) { _uniformCache.modelView, data.camera.combinedViewMatrix() * modelTransform ); + _programObject->setUniform(_uniformCache.projection, data.camera.projectionMatrix()); _programObject->setUniform(_uniformCache.color, _appearance.lineColor); - //_programObject->setUniform(_uniformCache.useLineFade, _appearance.useLineFade); + _programObject->setUniform(_uniformCache.useLineFade, _appearance.useLineFade); + if (_appearance.useLineFade) { + _programObject->setUniform(_uniformCache.lineFade, _appearance.lineFade); + } - //if (_appearance.useLineFade) { - // _programObject->setUniform(_uniformCache.lineFade, _appearance.lineFade); - //} glDepthMask(false); - //glBlendFunc(GL_SRC_ALPHA, GL_ONE); + glBlendFunc(GL_SRC_ALPHA, GL_ONE); + // Crashes in here glBindVertexArray(_vertexArray); - glDrawElements(GL_LINES, - static_cast(_indexBufferData.size()), - GL_UNSIGNED_INT, - 0); + //glDrawElements(GL_LINES, + // static_cast(_indexBufferData.size()), + // GL_UNSIGNED_INT, + // 0); + glDrawArrays(GL_LINES, + 0, + static_cast(_indexBufferData.size())); glBindVertexArray(0); + _programObject->deactivate(); - */ -======= - // _programObject->activate(); - // _programObject->setUniform(_uniformCache.opacity, _opacity); - // glm::dmat4 modelTransform = - // glm::translate(glm::dmat4(1.0), data.modelTransform.translation) * - // glm::dmat4(data.modelTransform.rotation) * - // glm::scale(glm::dmat4(1.0), glm::dvec3(data.modelTransform.scale)); - - // _programObject->setUniform( - // _uniformCache.modelView, - // data.camera.combinedViewMatrix() * modelTransform - // ); - - // _programObject->setUniform(_uniformCache.projection, data.camera.projectionMatrix()); - // _programObject->setUniform(_uniformCache.color, _appearance.lineColor); - // _programObject->setUniform(_uniformCache.useLineFade, _appearance.useLineFade); - - // if (_appearance.useLineFade) { - // _programObject->setUniform(_uniformCache.lineFade, _appearance.lineFade); - // } - - // glDepthMask(false); - // //glBlendFunc(GL_SRC_ALPHA, GL_ONE); - - // glBindVertexArray(_vertexArray); - // glDrawElements(GL_LINES, - // static_cast(_indexBufferData.size()), - // GL_UNSIGNED_INT, - // 0); - // glBindVertexArray(0); - // _programObject->deactivate(); ->>>>>>> e4734ae0b3148cae1f230b00570b5e8c723d5b4b } void RenderableSatellites::updateBuffers() { diff --git a/modules/space/rendering/renderablesatellites.h b/modules/space/rendering/renderablesatellites.h index d960908850..57ff4714a9 100644 --- a/modules/space/rendering/renderablesatellites.h +++ b/modules/space/rendering/renderablesatellites.h @@ -104,10 +104,10 @@ namespace openspace { properties::StringProperty _meanAnomalyAtEpochColumnName; properties::StringProperty _epochColumnName; - //RenderableTrail::Appearance _appearance; + RenderableTrail::Appearance _appearance; - //UniformCache(opacity, modelView, projection, color, useLineFade, lineFade) - // _uniformCache; + UniformCache(opacity, modelView, projection, color, useLineFade, lineFade) + _uniformCache; /** * Reads the provided TLE file and calles the KeplerTranslation::setKeplerElments From 66ab6527fa0bad72098697a49fad103ede330636 Mon Sep 17 00:00:00 2001 From: Jonathan Fransson Date: Thu, 11 Apr 2019 15:19:48 -0600 Subject: [PATCH 3/4] glDrawElement issues --- modules/space/rendering/renderablesatellites.cpp | 10 +++++----- modules/space/shaders/renderablekeplerorbits_fs.glsl | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/space/rendering/renderablesatellites.cpp b/modules/space/rendering/renderablesatellites.cpp index ee6a81551e..2b4e195585 100644 --- a/modules/space/rendering/renderablesatellites.cpp +++ b/modules/space/rendering/renderablesatellites.cpp @@ -666,12 +666,12 @@ void RenderableSatellites::render(const RenderData& data, RendererTasks&) { // Crashes in here glBindVertexArray(_vertexArray); //glDrawElements(GL_LINES, - // static_cast(_indexBufferData.size()), - // GL_UNSIGNED_INT, - // 0); + //static_cast(_indexBufferData.size()), + //GL_UNSIGNED_INT, + //0); glDrawArrays(GL_LINES, 0, - static_cast(_indexBufferData.size())); + 20); //static_cast(_indexBufferData.size())); glBindVertexArray(0); _programObject->deactivate(); @@ -716,7 +716,7 @@ void RenderableSatellites::updateBuffers() { } ++orbitindex; } - + glBindVertexArray(_vertexArray); glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer); diff --git a/modules/space/shaders/renderablekeplerorbits_fs.glsl b/modules/space/shaders/renderablekeplerorbits_fs.glsl index 1f54b51abb..fac0d3daa1 100644 --- a/modules/space/shaders/renderablekeplerorbits_fs.glsl +++ b/modules/space/shaders/renderablekeplerorbits_fs.glsl @@ -34,7 +34,7 @@ in vec4 viewSpacePosition; Fragment getFragment() { Fragment frag; - frag.color = vec4(color, opacity); + frag.color = vec4(0.0, 0.0, 0.5, opacity); frag.depth = safeLength(viewSpacePosition); frag.blend = BLEND_MODE_ADDITIVE; frag.gPosition = viewSpacePosition; From 76959c4a351c1ee0ef5f301db6941cd66c4f7771 Mon Sep 17 00:00:00 2001 From: Jonathan Fransson Date: Fri, 12 Apr 2019 12:01:29 -0600 Subject: [PATCH 4/4] Rendering issues --- data/assets/spaceDebris.scene | 2 +- .../space/rendering/renderablesatellites.cpp | 39 ++++++++++++------- .../shaders/renderablekeplerorbits_fs.glsl | 7 ++-- .../shaders/renderablekeplerorbits_vs.glsl | 8 ++-- 4 files changed, 33 insertions(+), 23 deletions(-) diff --git a/data/assets/spaceDebris.scene b/data/assets/spaceDebris.scene index beaa95d6eb..fa86bf08d6 100644 --- a/data/assets/spaceDebris.scene +++ b/data/assets/spaceDebris.scene @@ -14,7 +14,7 @@ asset.require('util/default_dashboard') asset.require('util/webgui') -asset.request('customization/globebrowsing') +--asset.request('customization/globebrowsing') -- asset.request('scene/solarsystem/planets/earth/satellites/satellites_all') asset.request('scene/solarsystem/planets/earth/satellites/satellites_debris') diff --git a/modules/space/rendering/renderablesatellites.cpp b/modules/space/rendering/renderablesatellites.cpp index 2b4e195585..b6790d5686 100644 --- a/modules/space/rendering/renderablesatellites.cpp +++ b/modules/space/rendering/renderablesatellites.cpp @@ -609,8 +609,8 @@ void RenderableSatellites::initializeGL() { _uniformCache.modelView = _programObject->uniformLocation("modelViewTransform"); _uniformCache.projection = _programObject->uniformLocation("projectionTransform"); _uniformCache.color = _programObject->uniformLocation("color"); - _uniformCache.useLineFade = _programObject->uniformLocation("useLineFade"); - _uniformCache.lineFade = _programObject->uniformLocation("lineFade"); + //_uniformCache.useLineFade = _programObject->uniformLocation("useLineFade"); + //_uniformCache.lineFade = _programObject->uniformLocation("lineFade"); setRenderBin(Renderable::RenderBin::Overlay); @@ -654,10 +654,10 @@ void RenderableSatellites::render(const RenderData& data, RendererTasks&) { _programObject->setUniform(_uniformCache.projection, data.camera.projectionMatrix()); _programObject->setUniform(_uniformCache.color, _appearance.lineColor); - _programObject->setUniform(_uniformCache.useLineFade, _appearance.useLineFade); - if (_appearance.useLineFade) { - _programObject->setUniform(_uniformCache.lineFade, _appearance.lineFade); - } + //_programObject->setUniform(_uniformCache.useLineFade, _appearance.useLineFade); + //if (_appearance.useLineFade) { + // _programObject->setUniform(_uniformCache.lineFade, _appearance.lineFade); + //} glDepthMask(false); @@ -665,13 +665,22 @@ void RenderableSatellites::render(const RenderData& data, RendererTasks&) { // Crashes in here glBindVertexArray(_vertexArray); - //glDrawElements(GL_LINES, - //static_cast(_indexBufferData.size()), - //GL_UNSIGNED_INT, - //0); - glDrawArrays(GL_LINES, - 0, - 20); //static_cast(_indexBufferData.size())); + glDrawElements(GL_LINES, + //static_cast(_indexBufferData.size()), + 20, + GL_UNSIGNED_INT, + &_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 (); + */ glBindVertexArray(0); _programObject->deactivate(); @@ -725,7 +734,6 @@ void RenderableSatellites::updateBuffers() { _vertexBufferData.data(), GL_STATIC_DRAW ); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _indexBuffer); glBufferData(GL_ELEMENT_ARRAY_BUFFER, @@ -733,9 +741,10 @@ void RenderableSatellites::updateBuffers() { _indexBufferData.data(), GL_STATIC_DRAW ); - glBindVertexArray(0); + + } } diff --git a/modules/space/shaders/renderablekeplerorbits_fs.glsl b/modules/space/shaders/renderablekeplerorbits_fs.glsl index fac0d3daa1..02bd63357f 100644 --- a/modules/space/shaders/renderablekeplerorbits_fs.glsl +++ b/modules/space/shaders/renderablekeplerorbits_fs.glsl @@ -27,14 +27,15 @@ uniform vec3 color; uniform float opacity = 1.0; -uniform bool useLineFade; -uniform float lineFade; +//uniform bool useLineFade; +//uniform float lineFade; in vec4 viewSpacePosition; Fragment getFragment() { Fragment frag; - frag.color = vec4(0.0, 0.0, 0.5, opacity); + frag.color = vec4(color, opacity); + // frag.color = vec4(0.0, 0.0, 1.0, 1.0); frag.depth = safeLength(viewSpacePosition); frag.blend = BLEND_MODE_ADDITIVE; frag.gPosition = viewSpacePosition; diff --git a/modules/space/shaders/renderablekeplerorbits_vs.glsl b/modules/space/shaders/renderablekeplerorbits_vs.glsl index 29c3ff6897..1f602337cb 100644 --- a/modules/space/shaders/renderablekeplerorbits_vs.glsl +++ b/modules/space/shaders/renderablekeplerorbits_vs.glsl @@ -28,10 +28,10 @@ layout(location = 0) in vec4 vertexData; uniform dmat4 modelViewTransform; uniform mat4 projectionTransform; -uniform bool useLineFade; -uniform float lineFade; -uniform int vertexSortingMethod; -uniform int pointSize; +//uniform bool useLineFade; +//uniform float lineFade; +//uniform int vertexSortingMethod; +//uniform int pointSize; out vec4 viewSpacePosition;