Passing zScale as uniform.

This commit is contained in:
Daria Volvenkova 2015-12-15 15:45:43 +03:00
parent 29a96cdd6f
commit 6c75501fec
6 changed files with 9 additions and 8 deletions

View file

@ -5,6 +5,7 @@ attribute vec2 a_colorTexCoords;
uniform mat4 modelView;
uniform mat4 projection;
uniform mat4 pivotTransform;
uniform float zScale;
varying vec2 v_colorTexCoords;
varying float v_intensity;
@ -14,10 +15,6 @@ const vec4 lightDir = vec4(1.0, 0.0, 3.0, 0.0);
void main(void)
{
vec4 pos = vec4(a_position, 1.0) * modelView;
vec4 pos_dx = vec4(a_position.x + 1.0, a_position.y, 0.0, 1.0) * modelView;
vec2 dx = pos_dx.xy / pos_dx.w - pos.xy / pos.w;
float zScale = projection[0][0] * length(dx);
vec4 normal = vec4(a_position + a_normal, 1.0) * modelView;
normal.xyw = (normal * projection).xyw;

View file

@ -7,6 +7,7 @@ uniform float u_accuracy;
uniform mat4 modelView;
uniform mat4 projection;
uniform mat4 pivotTransform;
uniform float zScale;
varying vec2 v_colorTexCoords;
@ -15,7 +16,7 @@ void main(void)
vec4 position = vec4(u_position.xy, 0.0, 1.0) * modelView;
vec4 normal = vec4(normalize(a_normal) * u_accuracy, 0.0, 0.0);
position = (position + normal) * projection;
float zScale = projection[0][0] * length(vec4(1.0, 0.0, 0.0, 0.0) * modelView);
float w = position.w;
position.xyw = (pivotTransform * vec4(position.xy, u_position.z * zScale, w)).xyw;
position.z *= position.w / w;

View file

@ -7,6 +7,7 @@ uniform mat4 modelView;
uniform mat4 projection;
uniform mat4 pivotTransform;
uniform float u_isOutlinePass;
uniform float zScale;
#ifdef ENABLE_VTF
uniform sampler2D u_colorTex;
@ -25,7 +26,6 @@ void main()
vec4 offset = vec4(a_normal, 0.0, 0.0) * projection;
float pivotZ = a_position.w;
float zScale = projection[0][0] * length(vec4(1.0, 0.0, 0.0, 0.0) * modelView);
vec4 projectedPivot = pivot * projection;
float logicZ = projectedPivot.z / projectedPivot.w;

View file

@ -8,6 +8,7 @@ uniform mat4 modelView;
uniform mat4 projection;
uniform mat4 pivotTransform;
uniform float u_isOutlinePass;
uniform float zScale;
#ifdef ENABLE_VTF
uniform sampler2D u_colorTex;
@ -32,7 +33,6 @@ void main()
vec4 offset = vec4(a_normal, 0.0, 0.0) * projection;
float pivotZ = a_position.w;
float zScale = projection[0][0] * length(vec4(1.0, 0.0, 0.0, 0.0) * modelView);
vec4 projectedPivot = pivot * projection;
float logicZ = projectedPivot.z / projectedPivot.w;

View file

@ -5,6 +5,7 @@ attribute vec2 a_colorTexCoords;
uniform mat4 modelView;
uniform mat4 projection;
uniform mat4 pivotTransform;
uniform float zScale;
varying vec2 v_colorTexCoords;
@ -16,7 +17,6 @@ void main(void)
vec4 offset = vec4(a_normal, 0.0, 0.0) * projection;
float pivotZ = a_position.w;
float zScale = projection[0][0] * length(vec4(1.0, 0.0, 0.0, 0.0) * modelView);
vec4 projectedPivot = pivot * projection;
float logicZ = projectedPivot.z / projectedPivot.w;

View file

@ -912,6 +912,9 @@ void FrontendRenderer::RefreshModelView(ScreenBase const & screen)
mv(3, 0) = m(0, 2); mv(3, 1) = m(1, 2); mv(3, 2) = 0; mv(3, 3) = m(2, 2);
m_generalUniforms.SetMatrix4x4Value("modelView", mv.m_data);
float const zScale = 2.0f / (screen.GetWidth() * screen.GetScale());
m_generalUniforms.SetFloatValue("zScale", zScale);
}
void FrontendRenderer::RefreshPivotTransform(ScreenBase const & screen)