forked from organicmaps/organicmaps
Passing zScale as uniform.
This commit is contained in:
parent
29a96cdd6f
commit
6c75501fec
6 changed files with 9 additions and 8 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue