Skip to content

Commit

Permalink
Gloom: Cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Sep 1, 2019
1 parent b9cee10 commit 49cf73f
Show file tree
Hide file tree
Showing 17 changed files with 51 additions and 40 deletions.
22 changes: 18 additions & 4 deletions doomsday/tests/test_gloom/gloom/render/context.cpp
Expand Up @@ -17,16 +17,30 @@
*/

#include "gloom/render/context.h"
#include "gloom/render/gbuffer.h"
#include "gloom/render/maprender.h"

using namespace de;

namespace gloom {

void Context::bindTo(GLProgram &program) const
Context &Context::bindCamera(GLProgram &program)
{
program << uCurrentTime << uDiffuseAtlas << uEmissiveAtlas << uSpecGlossAtlas
<< uNormalDisplAtlas << uEnvMap << uEnvIntensity << view.uMvpMatrix
<< view.uWorldToViewRotate;
program << uCurrentTime << view.uCameraMvpMatrix << view.uWorldToViewRotate;
return *this;
}

Context &Context::bindGBuffer(GLProgram &program)
{
program << gbuffer->uGBufferMaterial() << gbuffer->uGBufferNormal() << gbuffer->uGBufferDepth();
return *this;
}

Context &Context::bindMaterials(GLProgram &program)
{
program << uDiffuseAtlas << uEmissiveAtlas << uSpecGlossAtlas << uNormalDisplAtlas << uEnvMap
<< uEnvIntensity << mapRender->uTextureMetrics();
return *this;
}

} // namespace gloom
4 changes: 3 additions & 1 deletion doomsday/tests/test_gloom/gloom/render/context.h
Expand Up @@ -64,7 +64,9 @@ struct Context {
de::GLUniform uDebugTex {"uDebugTex", de::GLUniform::Sampler2D};
de::GLUniform uDebugMode {"uDebugMode", de::GLUniform::Int};

void bindTo(de::GLProgram &) const;
Context &bindCamera(de::GLProgram &);
Context &bindGBuffer(de::GLProgram &);
Context &bindMaterials(de::GLProgram &);
};

} // namespace gloom
Expand Down
5 changes: 3 additions & 2 deletions doomsday/tests/test_gloom/gloom/render/entityrender.cpp
Expand Up @@ -74,7 +74,7 @@ DENG2_PIMPL(EntityRender)

void loadModels()
{
const auto &context = self().context();
auto &context = self().context();
auto const &pkg = PackageLoader::get().package("net.dengine.gloom");

const char *filenames[] = {
Expand All @@ -96,7 +96,8 @@ DENG2_PIMPL(EntityRender)
}

GloomApp::shaders().build(program, "gloom.entity.material");
context.bindTo(program);
context.bindCamera(program)
.bindMaterials(program);

GloomApp::shaders().build(dirShadowProgram, "gloom.entity.shadow.dir")
<< context.uLightMatrix
Expand Down
4 changes: 2 additions & 2 deletions doomsday/tests/test_gloom/gloom/render/lightrender.cpp
Expand Up @@ -118,12 +118,12 @@ DENG2_PIMPL(LightRender)
auto &ctx = self().context();

ctx.shaders->build(stencilPassProgram, "gloom.light.stencil")
<< ctx.view.uMvpMatrix
<< ctx.view.uCameraMvpMatrix
<< ctx.view.uModelViewMatrix
<< ctx.view.uWorldToViewRotate;

ctx.shaders->build(shadingProgram, "gloom.light.sources")
<< ctx.view.uMvpMatrix
<< ctx.view.uCameraMvpMatrix
<< ctx.view.uModelViewMatrix
<< ctx.view.uWorldToViewRotate
<< ctx.view.uInverseProjMatrix
Expand Down
9 changes: 5 additions & 4 deletions doomsday/tests/test_gloom/gloom/render/maprender.cpp
Expand Up @@ -130,7 +130,7 @@ DENG2_PIMPL(MapRender)

void buildMap()
{
const auto &context = self().context();
auto &context = self().context();
const auto *map = context.map;

surfaces.clear();
Expand Down Expand Up @@ -174,9 +174,10 @@ DENG2_PIMPL(MapRender)
<< context.uLightFarPlane
<< context.uLightCubeMatrices;

context.bindTo(surfaces.program());
context.bindTo(dirShadowProgram);
context.bindTo(omniShadowProgram);
context.bindCamera(surfaces.program())
.bindMaterials(surfaces.program());
context.bindCamera(dirShadowProgram);
context.bindCamera(omniShadowProgram);
}

void glInit()
Expand Down
8 changes: 2 additions & 6 deletions doomsday/tests/test_gloom/gloom/render/screenquad.cpp
Expand Up @@ -28,7 +28,6 @@ DENG2_PIMPL_NOREF(ScreenQuad)
{
Drawable drawable;
GLState state;
//GLUniform uMvpMatrix{"uScreenQuadMatrix", GLUniform::Mat4};

Impl()
{
Expand All @@ -55,9 +54,6 @@ void ScreenQuad::glInit(Context &context)
gl::Static);
d->drawable.addBuffer(BUF_ID, vbuf);
d->drawable.setState(BUF_ID, d->state);

//d->uMvpMatrix = Mat4f::ortho(0, 1, 1, 0);
//d->drawable.program() << d->uMvpMatrix;
}

void ScreenQuad::glDeinit()
Expand All @@ -74,8 +70,8 @@ void ScreenQuad::render()

GLProgram &ScreenQuad::addProgram(Drawable::Id programId)
{
d->drawable.addProgram(programId);// << d->uMvpMatrix;
return d->drawable.program(programId);
auto &prog = d->drawable.addProgram(programId);
return prog;
}

Drawable &ScreenQuad::drawable()
Expand Down
6 changes: 3 additions & 3 deletions doomsday/tests/test_gloom/gloom/render/skybox.cpp
Expand Up @@ -32,7 +32,7 @@ DENG2_PIMPL_NOREF(SkyBox)

GLTexture envTex;
Drawable skyBox;
GLUniform uMvpMatrix{"uMvpMatrix", GLUniform::Mat4};
GLUniform uSkyMvpMatrix{"uSkyMvpMatrix", GLUniform::Mat4};
float scale = 1.f;
};

Expand Down Expand Up @@ -92,7 +92,7 @@ void SkyBox::glInit(Context &context)
d->skyBox.addBuffer(buf);

context.shaders->build(d->skyBox.program(), "gloom.sky")
<< d->uMvpMatrix
<< d->uSkyMvpMatrix
<< context.uEnvIntensity
<< context.uEnvMap;

Expand All @@ -112,7 +112,7 @@ void SkyBox::render()

DENG2_ASSERT(d->skyBox.program().isReady());

d->uMvpMatrix = context().view.uMvpMatrix.toMat4f() *
d->uSkyMvpMatrix = context().view.uCameraMvpMatrix.toMat4f() *
Mat4f::translate(context().view.camera->cameraPosition()) *
Mat4f::scale(d->scale);
d->skyBox.draw();
Expand Down
2 changes: 1 addition & 1 deletion doomsday/tests/test_gloom/gloom/render/view.cpp
Expand Up @@ -24,7 +24,7 @@ void View::setCamera(const ICamera &camera)
{
this->camera = &camera;

uMvpMatrix = camera.cameraModelViewProjection();
uCameraMvpMatrix = camera.cameraModelViewProjection();
uModelViewMatrix = camera.cameraModelView();
uWorldToViewRotate = camera.cameraModelView().submatrix(0, 0);
uViewToWorldRotate = uWorldToViewRotate.toMat3f().inverse();
Expand Down
2 changes: 1 addition & 1 deletion doomsday/tests/test_gloom/gloom/render/view.h
Expand Up @@ -28,7 +28,7 @@ struct View
{
const ICamera *camera;

de::GLUniform uMvpMatrix {"uMvpMatrix", de::GLUniform::Mat4};
de::GLUniform uCameraMvpMatrix {"uCameraMvpMatrix", de::GLUniform::Mat4};
de::GLUniform uModelViewMatrix {"uModelViewMatrix", de::GLUniform::Mat4};
de::GLUniform uProjMatrix {"uProjMatrix", de::GLUniform::Mat4};
de::GLUniform uInverseProjMatrix {"uInverseProjMatrix", de::GLUniform::Mat4};
Expand Down
@@ -1,11 +1,9 @@
//uniform mat4 uMvpMatrix;

DENG_ATTRIB vec4 aVertex;
DENG_ATTRIB vec2 aUV;

DENG_VAR vec2 vUV;

void main(void) {
gl_Position = /*uMvpMatrix * */aVertex;
gl_Position = aVertex;
vUV = aUV;
}
Expand Up @@ -2,7 +2,7 @@

#include "common/bones.glsl"

uniform mat4 uMvpMatrix;
uniform mat4 uCameraMvpMatrix;

DENG_ATTRIB mat4 aInstanceMatrix;
DENG_ATTRIB vec4 aInstanceColor;
Expand All @@ -19,7 +19,7 @@ DENG_VAR vec3 vNormal;
void main(void) {
vNormal = aNormal;
vec4 modelPos = Gloom_BoneTransform(aVertex, vNormal);
gl_Position = uMvpMatrix * (aInstanceMatrix * modelPos);
gl_Position = uCameraMvpMatrix * (aInstanceMatrix * modelPos);
vNormal = (aInstanceMatrix * vec4(vNormal, 0.0)).xyz;
vUV = aBounds0.xy + aUV * aBounds0.zw;
vInstanceColor = aInstanceColor;
Expand Down
Expand Up @@ -9,7 +9,7 @@

group gloom {
shader debug {
path.vertex = "common/mvp_vertex_uv.vsh"
path.vertex = "common/vertex_uv.vsh"
path.fragment = "debug.fsh"
}

Expand Down Expand Up @@ -70,7 +70,7 @@ group gloom {

group tonemap {
shader exposure {
path.vertex = "common/mvp_vertex_uv.vsh"
path.vertex = "common/vertex_uv.vsh"
path.fragment = "tonemap_exposure.fsh"
}
shader sample inherits exposure {
Expand Down
@@ -1,3 +1,3 @@
#version 330 core

#include "common/mvp_vertex_uv.vsh"
#include "common/vertex_uv.vsh"
@@ -1,6 +1,6 @@
#version 330 core

uniform mat4 uMvpMatrix;
uniform mat4 uCameraMvpMatrix;
uniform mat4 uModelViewMatrix;
uniform mat3 uWorldToViewRotate;

Expand All @@ -22,7 +22,7 @@ void main(void) {
vShadowIndex = floatBitsToInt(aIndex);

// Position each instance at its origin.
gl_Position = uMvpMatrix * vec4(aOrigin + vRadius * aVertex.xyz, 1.0);
gl_Position = uCameraMvpMatrix * vec4(aOrigin + vRadius * aVertex.xyz, 1.0);

vec4 origin = uModelViewMatrix * vec4(aOrigin, 1.0);
vOrigin = origin.xyz / origin.w;
Expand Down
@@ -1,10 +1,10 @@
#version 330 core

uniform mat4 uMvpMatrix;
uniform mat4 uSkyMvpMatrix;
DENG_ATTRIB vec4 aVertex;
DENG_VAR vec3 vModelPos;

void main(void) {
gl_Position = uMvpMatrix * aVertex;
gl_Position = uSkyMvpMatrix * aVertex;
vModelPos = aVertex.xyz;
}
@@ -1,8 +1,7 @@
#version 330 core

//uniform mat4 uMvpMatrix;
DENG_ATTRIB vec4 aVertex;

void main(void) {
gl_Position = /*uMvpMatrix * */ aVertex;
gl_Position = aVertex;
}
Expand Up @@ -3,7 +3,7 @@
#include "common/defs.glsl"
#include "common/surface.glsl"

uniform mat4 uMvpMatrix;
uniform mat4 uCameraMvpMatrix;
uniform sampler2D uTexOffsets;
uniform float uCurrentTime;

Expand All @@ -24,7 +24,7 @@ vec4 fetchTexOffset(uint offsetIndex) {
void main(void) {
Surface surface = Gloom_LoadVertexSurface();

gl_Position = uMvpMatrix * surface.vertex;
gl_Position = uCameraMvpMatrix * surface.vertex;
vUV = aUV.xy;
vFlags = surface.flags;
vNormal = surface.normal;
Expand Down

0 comments on commit 49cf73f

Please sign in to comment.