Changed to additive blending.

This commit is contained in:
Jonathas Costa
2017-10-07 00:19:27 -04:00
parent 2e57a75fcc
commit 2999dcb96e

View File

@@ -430,8 +430,9 @@ namespace openspace {
glGetIntegerv(GL_BLEND_SRC_RGB, &blendSrcRGB);
glEnable(GL_BLEND);
//glBlendFunc(GL_SRC_ALPHA, GL_ONE);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDepthMask(false);
_program->activate();
@@ -443,21 +444,21 @@ namespace openspace {
_program->setUniform("scaleFactor", _scaleFactor);
//_program->setUniform("minPlaneSize", 1.f); // in pixels
bool usingFramebufferRenderer =
OsEng.renderEngine().rendererImplementation() == RenderEngine::RendererImplementation::Framebuffer;
//bool usingFramebufferRenderer =
// OsEng.renderEngine().rendererImplementation() == RenderEngine::RendererImplementation::Framebuffer;
bool usingABufferRenderer =
OsEng.renderEngine().rendererImplementation() == RenderEngine::RendererImplementation::ABuffer;
//bool usingABufferRenderer =
// OsEng.renderEngine().rendererImplementation() == RenderEngine::RendererImplementation::ABuffer;
if (usingABufferRenderer) {
_program->setUniform("additiveBlending", _blendMode == BlendModeAdditive);
}
//if (usingABufferRenderer) {
// _program->setUniform("additiveBlending", _blendMode == BlendModeAdditive);
//}
bool additiveBlending = _blendMode == BlendModeAdditive && usingFramebufferRenderer;
if (additiveBlending) {
//glDepthMask(false);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
}
//bool additiveBlending = _blendMode == BlendModeAdditive && usingFramebufferRenderer;
//if (additiveBlending) {
// //glDepthMask(false);
// glBlendFunc(GL_SRC_ALPHA, GL_ONE);
//}
for (auto pair : _renderingPlanesMap) {
ghoul::opengl::TextureUnit unit;
@@ -469,10 +470,10 @@ namespace openspace {
glDrawArrays(GL_TRIANGLES, 0, 6);
}
if (additiveBlending) {
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
//glDepthMask(true);
}
//if (additiveBlending) {
// glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
// //glDepthMask(true);
//}
glBindVertexArray(0);
@@ -484,6 +485,8 @@ namespace openspace {
glBlendEquationSeparate(blendEquationRGB, blendEquationAlpha);
glBlendFuncSeparate(blendSrcRGB, blendDestRGB, blendSrcAlpha, blendDestAlpha);
glDepthMask(true);
if (!blendEnabled) {
glDisable(GL_BLEND);
}
@@ -969,6 +972,13 @@ dummy.clear();
RenderingPlane plane;
plane.planeIndex = _fullData[p + _textureVariableIndex];
// JCC: Ask Abbott about these points refeering to a non-existing texture.
if (plane.planeIndex == 30) {
//std::cout << "--- Creating planes - index: " << plane.planeIndex << std::endl;
plane.planeIndex = 0;
}
glGenVertexArrays(1, &plane.vao);
glGenBuffers(1, &plane.vbo);