mirror of
https://github.com/overte-org/overte.git
synced 2025-04-22 06:44:17 +02:00
Lighten the shadows, remove some debug code.
This commit is contained in:
parent
cb64103e05
commit
f0e5872b89
4 changed files with 28 additions and 31 deletions
interface
16
interface/resources/shaders/shadow_map.frag
Normal file
16
interface/resources/shaders/shadow_map.frag
Normal file
|
@ -0,0 +1,16 @@
|
|||
#version 120
|
||||
|
||||
//
|
||||
// shadow_map.frag
|
||||
// fragment shader
|
||||
//
|
||||
// Created by Andrzej Kapolka on 11/21/13.
|
||||
// Copyright (c) 2013 High Fidelity, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
uniform sampler2DShadow shadowMap;
|
||||
|
||||
void main(void) {
|
||||
gl_FragColor = gl_Color * mix(vec4(0.8, 0.8, 0.8, 1.0), vec4(1.0, 1.0, 1.0, 1.0),
|
||||
shadow2D(shadowMap, gl_TexCoord[0].stp));
|
||||
}
|
|
@ -2782,7 +2782,7 @@ void Application::updateShadowMap() {
|
|||
glm::vec3 lightDirection = -getSunDirection();
|
||||
glm::quat rotation = glm::inverse(rotationBetween(IDENTITY_FRONT, lightDirection));
|
||||
glm::vec3 translation = glm::vec3();
|
||||
float nearScale = 0.0f; // (1.0f - _viewFrustum.getNearClip()) / (_viewFrustum.getFarClip() - _viewFrustum.getNearClip());
|
||||
float nearScale = 0.0f;
|
||||
float farScale = (2.0f - _viewFrustum.getNearClip()) / (_viewFrustum.getFarClip() - _viewFrustum.getNearClip());
|
||||
loadViewFrustum(_myCamera, _viewFrustum);
|
||||
glm::vec3 points[] = {
|
||||
|
@ -2794,13 +2794,6 @@ void Application::updateShadowMap() {
|
|||
rotation * (glm::mix(_viewFrustum.getNearTopRight(), _viewFrustum.getFarTopRight(), farScale) + translation),
|
||||
rotation * (glm::mix(_viewFrustum.getNearBottomLeft(), _viewFrustum.getFarBottomLeft(), farScale) + translation),
|
||||
rotation * (glm::mix(_viewFrustum.getNearBottomRight(), _viewFrustum.getFarBottomRight(), farScale) + translation) };
|
||||
/* glm::vec3 points[] = {
|
||||
rotation * (_myAvatar.getPosition() + glm::vec3(-1, 0, 0) + translation),
|
||||
rotation * (_myAvatar.getPosition() + glm::vec3(1, 0, 0) + translation),
|
||||
rotation * (_myAvatar.getPosition() + glm::vec3(0, -1, 0) + translation),
|
||||
rotation * (_myAvatar.getPosition() + glm::vec3(0, 1, 0) + translation),
|
||||
rotation * (_myAvatar.getPosition() + glm::vec3(0, 0, -1) + translation),
|
||||
rotation * (_myAvatar.getPosition() + glm::vec3(0, 0, 1) + translation) }; */
|
||||
glm::vec3 minima(FLT_MAX, FLT_MAX, FLT_MAX), maxima(-FLT_MAX, -FLT_MAX, -FLT_MAX);
|
||||
for (int i = 0; i < sizeof(points) / sizeof(points[0]); i++) {
|
||||
minima = glm::min(minima, points[i]);
|
||||
|
@ -3391,29 +3384,6 @@ void Application::displayOverlay() {
|
|||
// render the webcam input frame
|
||||
_webcam.renderPreview(_glWidget->width(), _glWidget->height());
|
||||
|
||||
if (Menu::getInstance()->isOptionChecked(MenuOption::Shadows) && false) {
|
||||
glBindTexture(GL_TEXTURE_2D, _textureCache.getShadowFramebufferObject()->texture());
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glColor3f(1.0f, 1.0f, 1.0f);
|
||||
|
||||
glBegin(GL_QUADS);
|
||||
glTexCoord2f(0.0f, 0.0f);
|
||||
glVertex2f(500, 500);
|
||||
|
||||
glTexCoord2f(1.0f, 0.0f);
|
||||
glVertex2f(1000, 500);
|
||||
|
||||
glTexCoord2f(1.0f, 1.0f);
|
||||
glVertex2f(1000, 0);
|
||||
|
||||
glTexCoord2f(0.0f, 1.0f);
|
||||
glVertex2f(500, 0);
|
||||
glEnd();
|
||||
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glBindTexture(GL_TEXTURE_2D, 0);
|
||||
}
|
||||
|
||||
_palette.render(_glWidget->width(), _glWidget->height());
|
||||
|
||||
QAction* paintColorAction = NULL;
|
||||
|
|
|
@ -519,6 +519,13 @@ void VoxelSystem::initVoxelMemory() {
|
|||
_perlinModulateProgram.bind();
|
||||
_perlinModulateProgram.setUniformValue("permutationNormalTexture", 0);
|
||||
_perlinModulateProgram.release();
|
||||
|
||||
_shadowMapProgram.addShaderFromSourceFile(QGLShader::Fragment, "resources/shaders/shadow_map.frag");
|
||||
_shadowMapProgram.link();
|
||||
|
||||
_shadowMapProgram.bind();
|
||||
_shadowMapProgram.setUniformValue("shadowMap", 0);
|
||||
_shadowMapProgram.release();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1080,6 +1087,7 @@ glm::vec3 VoxelSystem::computeVoxelVertex(const glm::vec3& startVertex, float vo
|
|||
}
|
||||
|
||||
ProgramObject VoxelSystem::_perlinModulateProgram;
|
||||
ProgramObject VoxelSystem::_shadowMapProgram;
|
||||
|
||||
void VoxelSystem::init() {
|
||||
if (_initialized) {
|
||||
|
@ -1388,6 +1396,7 @@ void VoxelSystem::render(bool texture) {
|
|||
void VoxelSystem::applyScaleAndBindProgram(bool texture) {
|
||||
|
||||
if (Menu::getInstance()->isOptionChecked(MenuOption::Shadows)) {
|
||||
_shadowMapProgram.bind();
|
||||
glBindTexture(GL_TEXTURE_2D, Application::getInstance()->getTextureCache()->getShadowDepthTextureID());
|
||||
glEnable(GL_TEXTURE_GEN_S);
|
||||
glEnable(GL_TEXTURE_GEN_T);
|
||||
|
@ -1412,6 +1421,7 @@ void VoxelSystem::removeScaleAndReleaseProgram(bool texture) {
|
|||
glPopMatrix();
|
||||
|
||||
if (Menu::getInstance()->isOptionChecked(MenuOption::Shadows)) {
|
||||
_shadowMapProgram.release();
|
||||
glBindTexture(GL_TEXTURE_2D, 0);
|
||||
glDisable(GL_TEXTURE_GEN_S);
|
||||
glDisable(GL_TEXTURE_GEN_T);
|
||||
|
|
|
@ -282,6 +282,7 @@ private:
|
|||
bool _voxelsDirty;
|
||||
|
||||
static ProgramObject _perlinModulateProgram;
|
||||
static ProgramObject _shadowMapProgram;
|
||||
|
||||
int _hookID;
|
||||
std::vector<glBufferIndex> _freeIndexes;
|
||||
|
|
Loading…
Reference in a new issue