mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-25 06:19:02 -06:00
refactor abuffer and add msaa support. volumes temporarily disabled.
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
|
||||
#include <openspace/engine/configurationmanager.h>
|
||||
#include <openspace/engine/openspaceengine.h>
|
||||
#include <openspace/rendering/renderengine.h>
|
||||
#include <modules/base/rendering/planetgeometry.h>
|
||||
#include <openspace/util/constants.h>
|
||||
#include <openspace/util/time.h>
|
||||
@@ -122,10 +123,26 @@ RenderablePlanet::~RenderablePlanet() {
|
||||
}
|
||||
|
||||
bool RenderablePlanet::initialize() {
|
||||
if (_programObject == nullptr && _hasNightTexture)
|
||||
OsEng.ref().configurationManager()->getValue("nightTextureProgram", _programObject);
|
||||
else if (_programObject == nullptr)
|
||||
OsEng.ref().configurationManager()->getValue("pscShader", _programObject);
|
||||
RenderEngine* renderEngine = OsEng.renderEngine();
|
||||
if (_programObject == nullptr && _hasNightTexture) {
|
||||
// Night texture program
|
||||
_programObject = renderEngine->buildRenderProgram(
|
||||
"nightTextureProgram",
|
||||
"${SHADERS}/nighttexture_vs.glsl",
|
||||
"${SHADERS}/nighttexture_fs.glsl");
|
||||
if (!_programObject) return false;
|
||||
}
|
||||
else if (_programObject == nullptr) {
|
||||
// pscstandard
|
||||
_programObject = renderEngine->buildRenderProgram(
|
||||
"pscstandard",
|
||||
"${SHADERS}/pscstandard_vs.glsl",
|
||||
"${SHADERS}/pscstandard_fs.glsl");
|
||||
if (!_programObject) return false;
|
||||
|
||||
}
|
||||
_programObject->setIgnoreSubroutineUniformLocationError(true);
|
||||
|
||||
|
||||
loadTexture();
|
||||
_geometry->initialize(this);
|
||||
@@ -143,6 +160,12 @@ bool RenderablePlanet::deinitialize() {
|
||||
if (_nightTexture)
|
||||
delete _nightTexture;
|
||||
|
||||
RenderEngine* renderEngine = OsEng.renderEngine();
|
||||
if (_programObject) {
|
||||
renderEngine->removeRenderProgram(_programObject);
|
||||
_programObject = nullptr;
|
||||
}
|
||||
|
||||
_geometry = nullptr;
|
||||
_texture = nullptr;
|
||||
_nightTexture = nullptr;
|
||||
@@ -206,6 +229,10 @@ void RenderablePlanet::render(const RenderData& data)
|
||||
_nightTexture->bind();
|
||||
_programObject->setUniform("nightTex", nightUnit);
|
||||
}
|
||||
|
||||
glEnable(GL_CULL_FACE);
|
||||
glCullFace(GL_BACK);
|
||||
|
||||
// render
|
||||
_geometry->render();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user