Changing texture units use in ATM.

This commit is contained in:
Jonathas Costa
2017-05-17 10:08:49 -04:00
parent c2e4a94825
commit 08fa7a9e7e
6 changed files with 29 additions and 23 deletions
@@ -248,20 +248,17 @@ void AtmosphereDeferredcaster::preRaycast(const RenderData & renderData, const D
program.setUniform("sunDirectionObj", glm::normalize(glm::dvec3(sunPosObj)));
//program.setUniform("_performShading", _performShading);
ghoul::opengl::TextureUnit transmittanceTableTextureUnit;
transmittanceTableTextureUnit.activate();
_transmittanceTableTextureUnit.activate();
glBindTexture(GL_TEXTURE_2D, _transmittanceTableTexture);
program.setUniform("transmittanceTexture", transmittanceTableTextureUnit);
program.setUniform("transmittanceTexture", _transmittanceTableTextureUnit);
ghoul::opengl::TextureUnit irradianceTableTextureUnit;
irradianceTableTextureUnit.activate();
_irradianceTableTextureUnit.activate();
glBindTexture(GL_TEXTURE_2D, _irradianceTableTexture);
program.setUniform("irradianceTexture", irradianceTableTextureUnit);
program.setUniform("irradianceTexture", _irradianceTableTextureUnit);
ghoul::opengl::TextureUnit inScatteringTableTextureUnit;
inScatteringTableTextureUnit.activate();
_inScatteringTableTextureUnit.activate();
glBindTexture(GL_TEXTURE_3D, _inScatteringTableTexture);
program.setUniform("inscatterTexture", inScatteringTableTextureUnit);
program.setUniform("inscatterTexture", _inScatteringTableTextureUnit);
// DEBUG:
if (_renderableClass == RenderablePlanet) {
@@ -378,7 +375,12 @@ void AtmosphereDeferredcaster::preRaycast(const RenderData & renderData, const D
void AtmosphereDeferredcaster::postRaycast(const RenderData & renderData, const DeferredcastData& deferredData,
ghoul::opengl::ProgramObject& program)
{}
{
// Deactivate the texture units
/*_transmittanceTableTextureUnit.activate();
_irradianceTableTextureUnit.activate();
_inScatteringTableTextureUnit.activate();*/
}
std::string AtmosphereDeferredcaster::getDeferredcastPath() const {
return GlslDeferredcastPath;
@@ -159,6 +159,10 @@ private:
GLuint _atmosphereTexture;
GLuint _atmosphereDepthTexture;
ghoul::opengl::TextureUnit _transmittanceTableTextureUnit;
ghoul::opengl::TextureUnit _irradianceTableTextureUnit;
ghoul::opengl::TextureUnit _inScatteringTableTextureUnit;
// Atmosphere Data
bool _atmosphereCalculated;
bool _atmosphereEnabled;
@@ -962,10 +962,10 @@ void main() {
//vec4 finalRadiance = vec4(HDR(sunColor), 1.0);
//vec4 finalRadiance = vec4(sunColor, 1.0);
//vec4 finalRadiance = vec4(HDR(inscatterColor + groundColor + sunColor), 1.0);
vec4 finalRadiance = vec4(HDR(inscatterColor + groundColor + sunColor + meanColor.xyz), 1.0);
//if ( finalRadiance.xyz == vec3(0.0))
// finalRadiance.w = 0.0;
// The meanColor is temporary here
vec4 finalRadiance = vec4(HDR(inscatterColor + groundColor + sunColor + meanColor.xyz), 1.0);
//renderTarget = finalRadiance + meanColor;
renderTarget = finalRadiance;
//renderTarget = vec4(normalize(meanNormal.xyz), 1.0);