for SH-3352: Create pixel shader to accumulate frame-to-frame absolute pixel differences
parent
c2859e4663
commit
ed3d96069a
|
|
@ -0,0 +1,42 @@
|
|||
/**
|
||||
* @file twotexturecompareF.glsl
|
||||
*
|
||||
* $LicenseInfo:firstyear=2007&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2007, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
#define frag_color gl_FragColor
|
||||
#endif
|
||||
|
||||
uniform sampler2D tex0;
|
||||
uniform sampler2D tex1;
|
||||
|
||||
VARYING vec2 vary_texcoord0;
|
||||
VARYING vec2 vary_texcoord1;
|
||||
|
||||
void main()
|
||||
{
|
||||
frag_color = texture2D(tex0, vary_texcoord0.xy) - texture2D(tex1, vary_texcoord0.xy);
|
||||
frag_color[3] = 1.f;
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
/**
|
||||
* @file twotexturecompareV.glsl
|
||||
*
|
||||
* $LicenseInfo:firstyear=2007&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2007, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
uniform mat4 modelview_projection_matrix;
|
||||
|
||||
ATTRIBUTE vec3 position;
|
||||
ATTRIBUTE vec2 texcoord0;
|
||||
ATTRIBUTE vec2 texcoord1;
|
||||
|
||||
VARYING vec2 vary_texcoord0;
|
||||
VARYING vec2 vary_texcoord1;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = modelview_projection_matrix * vec4(position.xyz, 1.0);
|
||||
vary_texcoord0 = texcoord0;
|
||||
vary_texcoord1 = texcoord1;
|
||||
}
|
||||
|
||||
|
|
@ -78,6 +78,7 @@ LLGLSLShader gGlowCombineProgram;
|
|||
LLGLSLShader gSplatTextureRectProgram;
|
||||
LLGLSLShader gGlowCombineFXAAProgram;
|
||||
LLGLSLShader gTwoTextureAddProgram;
|
||||
LLGLSLShader gTwoTextureCompareProgram;
|
||||
LLGLSLShader gOneTextureNoColorProgram;
|
||||
LLGLSLShader gDebugProgram;
|
||||
LLGLSLShader gClipProgram;
|
||||
|
|
@ -672,6 +673,7 @@ void LLViewerShaderMgr::unloadShaders()
|
|||
gSplatTextureRectProgram.unload();
|
||||
gGlowCombineFXAAProgram.unload();
|
||||
gTwoTextureAddProgram.unload();
|
||||
gTwoTextureCompareProgram.unload();
|
||||
gOneTextureNoColorProgram.unload();
|
||||
gSolidColorProgram.unload();
|
||||
|
||||
|
|
@ -2706,6 +2708,22 @@ BOOL LLViewerShaderMgr::loadShadersInterface()
|
|||
}
|
||||
}
|
||||
|
||||
if (success)
|
||||
{
|
||||
gTwoTextureCompareProgram.mName = "Two Texture Compare Shader";
|
||||
gTwoTextureCompareProgram.mShaderFiles.clear();
|
||||
gTwoTextureCompareProgram.mShaderFiles.push_back(make_pair("interface/twotexturecompareV.glsl", GL_VERTEX_SHADER_ARB));
|
||||
gTwoTextureCompareProgram.mShaderFiles.push_back(make_pair("interface/twotexturecompareF.glsl", GL_FRAGMENT_SHADER_ARB));
|
||||
gTwoTextureCompareProgram.mShaderLevel = mVertexShaderLevel[SHADER_INTERFACE];
|
||||
success = gTwoTextureCompareProgram.createShader(NULL, NULL);
|
||||
if (success)
|
||||
{
|
||||
gTwoTextureCompareProgram.bind();
|
||||
gTwoTextureCompareProgram.uniform1i("tex0", 0);
|
||||
gTwoTextureCompareProgram.uniform1i("tex1", 1);
|
||||
}
|
||||
}
|
||||
|
||||
if (success)
|
||||
{
|
||||
gOneTextureNoColorProgram.mName = "One Texture No Color Shader";
|
||||
|
|
|
|||
|
|
@ -233,6 +233,8 @@ extern LLGLSLShader gAlphaMaskProgram;
|
|||
|
||||
//output tex0[tc0] + tex1[tc1]
|
||||
extern LLGLSLShader gTwoTextureAddProgram;
|
||||
//output tex0[tc0] - tex1[tc1]
|
||||
extern LLGLSLShader gTwoTextureCompareProgram;
|
||||
|
||||
extern LLGLSLShader gOneTextureNoColorProgram;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue