From 1d206dd9c09005f6367deec813b9f7ad3dc479a3 Mon Sep 17 00:00:00 2001 From: Elon Date: Mon, 15 Apr 2019 16:30:50 -0600 Subject: [PATCH 1/2] getting min perigee and max apogee --- .../space/rendering/renderablesatellites.cpp | 23 +++++++++++++++++++ openspace.cfg | 4 ++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/modules/space/rendering/renderablesatellites.cpp b/modules/space/rendering/renderablesatellites.cpp index 4d12d7b8a9..867d664f31 100644 --- a/modules/space/rendering/renderablesatellites.cpp +++ b/modules/space/rendering/renderablesatellites.cpp @@ -147,6 +147,25 @@ namespace openspace { 2044, 2048, 2052, 2056 }; + void calculateMaxApoAndMinPeri(std::vector fileVector){ + //int n = fileVector.size(); + double maxApogee = 0; + double minPerigee = 5000; + for (const auto& dataElement : fileVector){ //(int i=0 ; i < n ; ++i ) { + double ph = dataElement.semiMajorAxis * (1 - dataElement.eccentricity); + double ah = dataElement.semiMajorAxis *(1 + dataElement.eccentricity); + + if (ph < minPerigee) + minPerigee = ph; + + if (ah > maxApogee) + maxApogee = ah; + } + LINFO(fmt::format("Min Perigee: {} ", minPerigee)); + LINFO(fmt::format("Max Apogee: {} ", maxApogee)); + + } + // Count the number of full days since the beginning of 2000 to the beginning of // the parameter 'year' int countDays(int year) { @@ -572,6 +591,10 @@ void RenderableSatellites::readTLEFile(const std::string& filename) { } // !for loop file.close(); + + // get max apergee and min perigee + calculateMaxApoAndMinPeri(_TLEData); + } /* RenderableSatellites::~RenderableSatellites() { diff --git a/openspace.cfg b/openspace.cfg index 2f8a59042c..914dd47b9c 100644 --- a/openspace.cfg +++ b/openspace.cfg @@ -6,13 +6,13 @@ -- occurs in a single window, a fisheye projection, or a dome cluster system -- A regular 1280x720 window -SGCTConfig = sgct.config.single{} +-- SGCTConfig = sgct.config.single{} -- A regular 1920x1080 window -- SGCTConfig = sgct.config.single{1920, 1080} -- A windowed 1920x1080 fullscreen --- SGCTConfig = sgct.config.single{1920, 1080, border=false, windowPos={0,0}, shared=true, name="WV_OBS_SPOUT1"} +SGCTConfig = sgct.config.single{1920, 1080, border=false, windowPos={0,0}, shared=true, name="WV_OBS_SPOUT1"} -- A 1k fisheye rendering -- SGCTConfig = sgct.config.fisheye{1024, 1024} From 20fdc005276a199ef23db61c4074067563963632 Mon Sep 17 00:00:00 2001 From: Elon Date: Tue, 16 Apr 2019 17:48:50 -0600 Subject: [PATCH 2/2] orbits rendered proporly --- .../space/rendering/renderablesatellites.cpp | 52 +++++++++++-------- modules/space/shaders/debrisViz_fs.glsl | 9 ++-- modules/space/shaders/debrisViz_vs.glsl | 13 +++-- .../space/translation/keplertranslation.cpp | 2 +- openspace.cfg | 4 +- 5 files changed, 45 insertions(+), 35 deletions(-) diff --git a/modules/space/rendering/renderablesatellites.cpp b/modules/space/rendering/renderablesatellites.cpp index e623f8b102..ea7a33ff20 100644 --- a/modules/space/rendering/renderablesatellites.cpp +++ b/modules/space/rendering/renderablesatellites.cpp @@ -465,6 +465,9 @@ RenderableSatellites::RenderableSatellites(const ghoul::Dictionary& dictionary) dictionary.value(MeanAnomalyAtEpochColumnInfo.identifier); _epochColumnName = dictionary.value(EpochColumnInfo.identifier); + + // fungerar inte + //_appearance.lineColor = glm::vec3(1.f), glm::vec3(0.f), glm::vec3(0.f); addPropertySubOwner(_appearance); addProperty(_path); @@ -626,6 +629,9 @@ void RenderableSatellites::deinitialize() { } void RenderableSatellites::initializeGL() { + glGenVertexArrays(1, &_vertexArray); + glGenBuffers(1, &_vertexBuffer); + _programObject = SpaceModule::ProgramObjectManager.request( ProgramName, []() -> std::unique_ptr { @@ -644,25 +650,9 @@ void RenderableSatellites::initializeGL() { _uniformCache.useLineFade = _programObject->uniformLocation("useLineFade"); _uniformCache.lineFade = _programObject->uniformLocation("lineFade"); - glGenVertexArrays(1, &_vertexArray); - glBindVertexArray(_vertexArray); - - glGenBuffers(1, &_vertexBuffer); - glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer); - glBufferData( - GL_ARRAY_BUFFER, - _vertexBufferData.size() * sizeof(TrailVBOLayout), - _vertexBufferData.data(), - GL_STATIC_DRAW - ); - - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(TrailVBOLayout), nullptr); - - glBindVertexArray(0); + updateBuffers(); setRenderBin(Renderable::RenderBin::Overlay); - glBindVertexArray(0); } void RenderableSatellites::deinitializeGL() { @@ -684,8 +674,8 @@ bool RenderableSatellites::isReady() const { void RenderableSatellites::update(const UpdateData&) {} void RenderableSatellites::render(const RenderData& data, RendererTasks&) { - //if (_TLEData.empty()) - // return; + if (_TLEData.empty()) + return; _programObject->activate(); _programObject->setUniform(_uniformCache.opacity, _opacity); @@ -702,10 +692,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); + } glLineWidth(_appearance.lineWidth); @@ -766,6 +756,22 @@ void RenderableSatellites::updateBuffers() { } ++orbitindex; } + + glBindVertexArray(_vertexArray); + + glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer); + glBufferData( + GL_ARRAY_BUFFER, + _vertexBufferData.size() * sizeof(TrailVBOLayout), + _vertexBufferData.data(), + GL_STATIC_DRAW + ); + + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(TrailVBOLayout), nullptr); + + glBindVertexArray(0); + } } diff --git a/modules/space/shaders/debrisViz_fs.glsl b/modules/space/shaders/debrisViz_fs.glsl index d72fcf5b1e..c709eaa1d6 100644 --- a/modules/space/shaders/debrisViz_fs.glsl +++ b/modules/space/shaders/debrisViz_fs.glsl @@ -29,15 +29,16 @@ uniform vec3 color; uniform float opacity = 1.0; in vec4 viewSpacePosition; - -in vec3 vs_position; -in vec3 vs_color; -in vec2 vs_texcoord; +in vec4 vs_position; +//in vec3 vs_color; +//in vec2 vs_texcoord; Fragment getFragment() { Fragment frag; frag.color = vec4(color, opacity); + frag.depth = vs_position.w; frag.gPosition = viewSpacePosition; + frag.gNormal = vec4(1, 1, 1 , 0); return frag; } diff --git a/modules/space/shaders/debrisViz_vs.glsl b/modules/space/shaders/debrisViz_vs.glsl index 9ad3d8d4d0..423e944e5f 100644 --- a/modules/space/shaders/debrisViz_vs.glsl +++ b/modules/space/shaders/debrisViz_vs.glsl @@ -24,19 +24,22 @@ #version __CONTEXT__ +#include "D:\OpenSpace\shaders\PowerScaling\powerScalingMath.hglsl" + layout (location = 0) in vec4 vertex_data; uniform dmat4 modelViewTransform; uniform mat4 projectionTransform; out vec4 viewSpacePosition; +out vec4 vs_position; -void main() { - dvec4 position = dvec4(vertex_data.xyz, 1.0); - float timeOffset = vertex_data.w; +void main() { + + viewSpacePosition = vec4(modelViewTransform * dvec4(vertex_data.xyz, 1)); + vs_position = z_normalization( projectionTransform * viewSpacePosition); + gl_Position = vs_position; - viewSpacePosition = vec4(modelViewTransform * position); - gl_Position = projectionTransform * viewSpacePosition; } diff --git a/modules/space/translation/keplertranslation.cpp b/modules/space/translation/keplertranslation.cpp index 5acadc818a..d15967fef8 100644 --- a/modules/space/translation/keplertranslation.cpp +++ b/modules/space/translation/keplertranslation.cpp @@ -303,7 +303,7 @@ glm::dvec3 KeplerTranslation::position(const UpdateData& data) const { }; return _orbitPlaneRotation * p; } - +// !!! is only used in module/space/rendering/renderablesatellites glm::dvec3 KeplerTranslation::debrisPos(const Time& time) const { if (_orbitPlaneDirty) { computeOrbitPlane(); diff --git a/openspace.cfg b/openspace.cfg index 914dd47b9c..2f8a59042c 100644 --- a/openspace.cfg +++ b/openspace.cfg @@ -6,13 +6,13 @@ -- occurs in a single window, a fisheye projection, or a dome cluster system -- A regular 1280x720 window --- SGCTConfig = sgct.config.single{} +SGCTConfig = sgct.config.single{} -- A regular 1920x1080 window -- SGCTConfig = sgct.config.single{1920, 1080} -- A windowed 1920x1080 fullscreen -SGCTConfig = sgct.config.single{1920, 1080, border=false, windowPos={0,0}, shared=true, name="WV_OBS_SPOUT1"} +-- SGCTConfig = sgct.config.single{1920, 1080, border=false, windowPos={0,0}, shared=true, name="WV_OBS_SPOUT1"} -- A 1k fisheye rendering -- SGCTConfig = sgct.config.fisheye{1024, 1024}