Cleanup.
This commit is contained in:
Родитель
ddf0959d35
Коммит
9ebcfab447
|
@ -15,7 +15,7 @@ uniform vec4 u_specular_shininess;
|
||||||
uniform vec4 u_fog;
|
uniform vec4 u_fog;
|
||||||
uniform vec4 u_lightPosRadius;
|
uniform vec4 u_lightPosRadius;
|
||||||
uniform vec4 u_lightRgbInnerR;
|
uniform vec4 u_lightRgbInnerR;
|
||||||
SAMPLER2D(u_texStencil, 7);
|
SAMPLER2D(s_texStencil, 1);
|
||||||
|
|
||||||
#define u_ambientPass u_params.x
|
#define u_ambientPass u_params.x
|
||||||
#define u_lightningPass u_params.y
|
#define u_lightningPass u_params.y
|
||||||
|
@ -68,7 +68,7 @@ void main()
|
||||||
vec3 lightColor = calcLight(v_view, normal, viewDir) * u_lightningPass;
|
vec3 lightColor = calcLight(v_view, normal, viewDir) * u_lightningPass;
|
||||||
|
|
||||||
vec2 ndc = gl_FragCoord.xy * u_viewTexel.xy + u_viewTexel.xy * u_texelHalf;
|
vec2 ndc = gl_FragCoord.xy * u_viewTexel.xy + u_viewTexel.xy * u_texelHalf;
|
||||||
vec4 texcolor = texture2D(u_texStencil, ndc);
|
vec4 texcolor = texture2D(s_texStencil, ndc);
|
||||||
float s = (texcolor.x - texcolor.y) + 2.0 * (texcolor.z - texcolor.w);
|
float s = (texcolor.x - texcolor.y) + 2.0 * (texcolor.z - texcolor.w);
|
||||||
s *= u_useStencilTex;
|
s *= u_useStencilTex;
|
||||||
|
|
||||||
|
|
|
@ -7,11 +7,11 @@ $input v_texcoord0
|
||||||
|
|
||||||
#include "../common/common.sh"
|
#include "../common/common.sh"
|
||||||
uniform vec4 u_color;
|
uniform vec4 u_color;
|
||||||
SAMPLER2D(u_texColor, 0);
|
SAMPLER2D(s_texColor, 0);
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec4 tcolor = toLinear(texture2D(u_texColor, v_texcoord0));
|
vec4 tcolor = toLinear(texture2D(s_texColor, v_texcoord0));
|
||||||
|
|
||||||
if (tcolor.x < 0.1) //OK for now.
|
if (tcolor.x < 0.1) //OK for now.
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,14 +11,16 @@ vec4 stencilColor(float _k)
|
||||||
, float(abs(_k + 1.0) < 0.0001)/255.0
|
, float(abs(_k + 1.0) < 0.0001)/255.0
|
||||||
, float(abs(_k - 2.0) < 0.0001)/255.0
|
, float(abs(_k - 2.0) < 0.0001)/255.0
|
||||||
, float(abs(_k + 2.0) < 0.0001)/255.0
|
, float(abs(_k + 2.0) < 0.0001)/255.0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
float k = 1.0;
|
float k = 1.0;
|
||||||
if (!gl_FrontFacing)
|
if (!gl_FrontFacing)
|
||||||
|
{
|
||||||
k = -k;
|
k = -k;
|
||||||
|
}
|
||||||
|
|
||||||
gl_FragColor = stencilColor(k);
|
gl_FragColor = stencilColor(k);
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,14 +11,16 @@ vec4 stencilColor(float _k)
|
||||||
, float(abs(_k + 1.0) < 0.0001)/255.0
|
, float(abs(_k + 1.0) < 0.0001)/255.0
|
||||||
, float(abs(_k - 2.0) < 0.0001)/255.0
|
, float(abs(_k - 2.0) < 0.0001)/255.0
|
||||||
, float(abs(_k + 2.0) < 0.0001)/255.0
|
, float(abs(_k + 2.0) < 0.0001)/255.0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
float k = 2.0;
|
float k = 2.0;
|
||||||
if (!gl_FrontFacing)
|
if (!gl_FrontFacing)
|
||||||
|
{
|
||||||
k = -k;
|
k = -k;
|
||||||
|
}
|
||||||
|
|
||||||
gl_FragColor = stencilColor(k);
|
gl_FragColor = stencilColor(k);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,24 +1,26 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2013-2014 Dario Manesku. All rights reserved.
|
* Copyright 2013-2014 Dario Manesku. All rights reserved.
|
||||||
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../common/common.sh"
|
#include "../common/common.sh"
|
||||||
|
|
||||||
vec4 stencilColor(float _k)
|
vec4 stencilColor(float _k)
|
||||||
{
|
{
|
||||||
return vec4(float(abs(_k - 1.0) < 0.0001)/255.0
|
return vec4(float(abs(_k - 1.0) < 0.0001)/255.0
|
||||||
, float(abs(_k + 1.0) < 0.0001)/255.0
|
, float(abs(_k + 1.0) < 0.0001)/255.0
|
||||||
, float(abs(_k - 2.0) < 0.0001)/255.0
|
, float(abs(_k - 2.0) < 0.0001)/255.0
|
||||||
, float(abs(_k + 2.0) < 0.0001)/255.0
|
, float(abs(_k + 2.0) < 0.0001)/255.0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
float k = -1.0;
|
float k = -1.0;
|
||||||
if (gl_FrontFacing)
|
if (gl_FrontFacing)
|
||||||
k = -k;
|
{
|
||||||
|
k = -k;
|
||||||
|
}
|
||||||
|
|
||||||
gl_FragColor = stencilColor(k);
|
gl_FragColor = stencilColor(k);
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,9 @@ void main()
|
||||||
{
|
{
|
||||||
float k = v_k;
|
float k = v_k;
|
||||||
if (!gl_FrontFacing)
|
if (!gl_FrontFacing)
|
||||||
|
{
|
||||||
k = -k;
|
k = -k;
|
||||||
|
}
|
||||||
|
|
||||||
gl_FragColor.xyzw =
|
gl_FragColor.xyzw =
|
||||||
vec4( float(abs(k - 1.0) < 0.0001)/255.0
|
vec4( float(abs(k - 1.0) < 0.0001)/255.0
|
||||||
|
|
|
@ -6,9 +6,9 @@ $input v_texcoord0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../common/common.sh"
|
#include "../common/common.sh"
|
||||||
SAMPLER2D(u_texColor, 0);
|
SAMPLER2D(s_texColor, 0);
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
gl_FragColor = texture2D(u_texColor, v_texcoord0);
|
gl_FragColor = texture2D(s_texColor, v_texcoord0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,8 +14,8 @@ uniform vec4 u_specular_shininess;
|
||||||
uniform vec4 u_fog;
|
uniform vec4 u_fog;
|
||||||
uniform vec4 u_lightPosRadius;
|
uniform vec4 u_lightPosRadius;
|
||||||
uniform vec4 u_lightRgbInnerR;
|
uniform vec4 u_lightRgbInnerR;
|
||||||
SAMPLER2D(u_texColor, 0);
|
SAMPLER2D(s_texColor, 0);
|
||||||
SAMPLER2D(u_texStencil, 7);
|
SAMPLER2D(s_texStencil, 1);
|
||||||
|
|
||||||
#define u_ambientPass u_params.x
|
#define u_ambientPass u_params.x
|
||||||
#define u_lightningPass u_params.y
|
#define u_lightningPass u_params.y
|
||||||
|
@ -68,7 +68,7 @@ void main()
|
||||||
vec3 lightColor = calcLight(v_view, normal, viewDir) * u_lightningPass;
|
vec3 lightColor = calcLight(v_view, normal, viewDir) * u_lightningPass;
|
||||||
|
|
||||||
vec2 ndc = gl_FragCoord.xy * u_viewTexel.xy + u_viewTexel.xy * u_texelHalf;
|
vec2 ndc = gl_FragCoord.xy * u_viewTexel.xy + u_viewTexel.xy * u_texelHalf;
|
||||||
vec4 texcolor = texture2D(u_texStencil, ndc);
|
vec4 texcolor = texture2D(s_texStencil, ndc);
|
||||||
float s = (texcolor.x - texcolor.y) + 2.0 * (texcolor.z - texcolor.w);
|
float s = (texcolor.x - texcolor.y) + 2.0 * (texcolor.z - texcolor.w);
|
||||||
s *= u_useStencilTex;
|
s *= u_useStencilTex;
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ void main()
|
||||||
float fogFactor = 1.0/exp2(u_fogDensity*u_fogDensity*z*z*LOG2);
|
float fogFactor = 1.0/exp2(u_fogDensity*u_fogDensity*z*z*LOG2);
|
||||||
fogFactor = clamp(fogFactor, 0.0, 1.0);
|
fogFactor = clamp(fogFactor, 0.0, 1.0);
|
||||||
|
|
||||||
vec3 color = toLinear(texture2D(u_texColor, v_texcoord0)).xyz;
|
vec3 color = toLinear(texture2D(s_texColor, v_texcoord0)).xyz;
|
||||||
|
|
||||||
vec3 ambient = toGamma(ambientColor * color);
|
vec3 ambient = toGamma(ambientColor * color);
|
||||||
vec3 diffuse = toGamma(lightColor * color);
|
vec3 diffuse = toGamma(lightColor * color);
|
||||||
|
|
|
@ -116,8 +116,8 @@ static float s_texelHalf = 0.0f;
|
||||||
|
|
||||||
static uint32_t s_viewMask = 0;
|
static uint32_t s_viewMask = 0;
|
||||||
|
|
||||||
static bgfx::UniformHandle u_texColor;
|
static bgfx::UniformHandle s_texColor;
|
||||||
static bgfx::UniformHandle u_texStencil;
|
static bgfx::UniformHandle s_texStencil;
|
||||||
static bgfx::FrameBufferHandle s_stencilFb;
|
static bgfx::FrameBufferHandle s_stencilFb;
|
||||||
|
|
||||||
void setViewClearMask(uint32_t _viewMask, uint8_t _flags, uint32_t _rgba, float _depth, uint8_t _stencil)
|
void setViewClearMask(uint32_t _viewMask, uint8_t _flags, uint32_t _rgba, float _depth, uint8_t _stencil)
|
||||||
|
@ -1175,9 +1175,9 @@ struct Model
|
||||||
// Set textures
|
// Set textures
|
||||||
if (bgfx::invalidHandle != m_texture.idx)
|
if (bgfx::invalidHandle != m_texture.idx)
|
||||||
{
|
{
|
||||||
bgfx::setTexture(0, u_texColor, m_texture);
|
bgfx::setTexture(0, s_texColor, m_texture);
|
||||||
}
|
}
|
||||||
bgfx::setTexture(7, u_texStencil, s_stencilFb);
|
bgfx::setTexture(1, s_texStencil, s_stencilFb);
|
||||||
|
|
||||||
// Apply render state
|
// Apply render state
|
||||||
::setRenderState(_renderState);
|
::setRenderState(_renderState);
|
||||||
|
@ -1897,8 +1897,8 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
||||||
};
|
};
|
||||||
s_stencilFb = bgfx::createFrameBuffer(BX_COUNTOF(fbtextures), fbtextures, true);
|
s_stencilFb = bgfx::createFrameBuffer(BX_COUNTOF(fbtextures), fbtextures, true);
|
||||||
|
|
||||||
u_texColor = bgfx::createUniform("u_texColor", bgfx::UniformType::Int1);
|
s_texColor = bgfx::createUniform("s_texColor", bgfx::UniformType::Int1);
|
||||||
u_texStencil = bgfx::createUniform("u_texStencil", bgfx::UniformType::Int1);
|
s_texStencil = bgfx::createUniform("s_texStencil", bgfx::UniformType::Int1);
|
||||||
|
|
||||||
bgfx::ProgramHandle programTextureLightning = loadProgram("vs_shadowvolume_texture_lightning", "fs_shadowvolume_texture_lightning");
|
bgfx::ProgramHandle programTextureLightning = loadProgram("vs_shadowvolume_texture_lightning", "fs_shadowvolume_texture_lightning");
|
||||||
bgfx::ProgramHandle programColorLightning = loadProgram("vs_shadowvolume_color_lightning", "fs_shadowvolume_color_lightning" );
|
bgfx::ProgramHandle programColorLightning = loadProgram("vs_shadowvolume_color_lightning", "fs_shadowvolume_color_lightning" );
|
||||||
|
@ -2843,8 +2843,8 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
||||||
|
|
||||||
s_uniforms.destroy();
|
s_uniforms.destroy();
|
||||||
|
|
||||||
bgfx::destroyUniform(u_texColor);
|
bgfx::destroyUniform(s_texColor);
|
||||||
bgfx::destroyUniform(u_texStencil);
|
bgfx::destroyUniform(s_texStencil);
|
||||||
bgfx::destroyFrameBuffer(s_stencilFb);
|
bgfx::destroyFrameBuffer(s_stencilFb);
|
||||||
|
|
||||||
bgfx::destroyTexture(figureTex);
|
bgfx::destroyTexture(figureTex);
|
||||||
|
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичные данные
examples/runtime/shaders/dx9/fs_shadowvolume_color_lightning.bin
Двоичные данные
examples/runtime/shaders/dx9/fs_shadowvolume_color_lightning.bin
Двоичный файл не отображается.
Двоичные данные
examples/runtime/shaders/dx9/fs_shadowvolume_color_texture.bin
Двоичные данные
examples/runtime/shaders/dx9/fs_shadowvolume_color_texture.bin
Двоичный файл не отображается.
Двоичные данные
examples/runtime/shaders/dx9/fs_shadowvolume_texture.bin
Двоичные данные
examples/runtime/shaders/dx9/fs_shadowvolume_texture.bin
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичные данные
examples/runtime/shaders/gles/fs_shadowvolume_color_texture.bin
Двоичные данные
examples/runtime/shaders/gles/fs_shadowvolume_color_texture.bin
Двоичный файл не отображается.
Двоичные данные
examples/runtime/shaders/gles/fs_shadowvolume_texture.bin
Двоичные данные
examples/runtime/shaders/gles/fs_shadowvolume_texture.bin
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичные данные
examples/runtime/shaders/glsl/fs_shadowvolume_color_texture.bin
Двоичные данные
examples/runtime/shaders/glsl/fs_shadowvolume_color_texture.bin
Двоичный файл не отображается.
Двоичные данные
examples/runtime/shaders/glsl/fs_shadowvolume_texture.bin
Двоичные данные
examples/runtime/shaders/glsl/fs_shadowvolume_texture.bin
Двоичный файл не отображается.
Двоичный файл не отображается.
Загрузка…
Ссылка в новой задаче