mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2024-12-01 03:47:07 -05:00
Cleanup.
This commit is contained in:
parent
ddf0959d35
commit
9ebcfab447
23 changed files with 40 additions and 32 deletions
|
@ -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);
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue