refactor abuffer and add msaa support. volumes temporarily disabled.

This commit is contained in:
Emil Axelsson
2016-02-02 11:30:27 +01:00
parent 4f7ab5321f
commit d4ff8119d1
79 changed files with 2354 additions and 3106 deletions
+15 -18
View File
@@ -25,6 +25,8 @@
#include <modules/base/rendering/renderablestars.h>
#include <openspace/util/updatestructures.h>
#include <openspace/engine/openspaceengine.h>
#include <openspace/rendering/renderengine.h>
#include <ghoul/filesystem/filesystem>
#include <ghoul/misc/templatefactory.h>
@@ -90,8 +92,8 @@ RenderableStars::RenderableStars(const ghoul::Dictionary& dictionary)
, _colorTextureIsDirty(true)
, _colorOption("colorOption", "Color Option")
, _dataIsDirty(true)
, _scaleFactor("scaleFactor", "Scale Factor", 5.f, 0.f, 10.f)
, _minBillboardSize("minBillboardSize", "Min Billboard Size", 15.f, 1.f, 100.f)
, _scaleFactor("scaleFactor", "Scale Factor", 1.f, 0.f, 10.f)
, _minBillboardSize("minBillboardSize", "Min Billboard Size", 1.f, 1.f, 100.f)
, _program(nullptr)
, _speckFile("")
, _nValuesPerStar(0)
@@ -147,10 +149,12 @@ bool RenderableStars::isReady() const {
bool RenderableStars::initialize() {
bool completeSuccess = true;
_program = ghoul::opengl::ProgramObject::Build("Star",
RenderEngine* renderEngine = OsEng.renderEngine();
_program = renderEngine->buildRenderProgram("Star",
"${MODULE_BASE}/shaders/star_vs.glsl",
"${MODULE_BASE}/shaders/star_fs.glsl",
"${MODULE_BASE}/shaders/star_ge.glsl");
if (!_program)
return false;
completeSuccess &= loadData();
@@ -168,17 +172,16 @@ bool RenderableStars::deinitialize() {
delete _pointSpreadFunctionTexture;
_pointSpreadFunctionTexture = nullptr;
if(_program)
delete _program;
_program = nullptr;
return true;
RenderEngine* renderEngine = OsEng.renderEngine();
if (_program) {
renderEngine->removeRenderProgram(_program);
_program = nullptr;
}
return true;
}
void RenderableStars::render(const RenderData& data) {
//glEnable(GL_BLEND);
//glBlendFunc(GL_SRC_ALPHA, GL_DST_ALPHA);
glDisable(GL_DEPTH_TEST);
glDepthMask(false);
_program->activate();
// @Check overwriting the scaling from the camera; error as parsec->meter conversion
@@ -223,16 +226,10 @@ void RenderableStars::render(const RenderData& data) {
_program->setIgnoreUniformLocationError(false);
_program->deactivate();
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_DEPTH_TEST);
glDepthMask(true);
}
void RenderableStars::update(const UpdateData& data) {
if (_program->isDirty()) {
_program->rebuildFromFile();
_dataIsDirty = true;
}
if (_dataIsDirty) {
const int value = _colorOption;
LDEBUG("Regenerating data");