Skip to content

Commit 53efe2e

Browse files
committedJun 20, 2015
Remove textures vertical offset. Fix for area enabling parallax.
1 parent a31d08b commit 53efe2e

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed
 

‎client/shaders/nodes_shader/opengl_fragment.glsl

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ uniform vec3 eyePosition;
88

99
varying vec3 vPosition;
1010
varying vec3 worldPosition;
11-
varying float generate_heightmaps;
11+
varying float area_enable_parallax;
1212

1313
varying vec3 eyeVec;
1414
varying vec3 tsEyeVec;
@@ -95,7 +95,7 @@ void main (void)
9595
vec3 eyeRay = normalize(tsEyeVec);
9696
#if PARALLAX_OCCLUSION_MODE == 0
9797
// Parallax occlusion with slope information
98-
if (normalTexturePresent) {
98+
if (normalTexturePresent && area_enable_parallax > 0.0) {
9999
const float scale = PARALLAX_OCCLUSION_SCALE / PARALLAX_OCCLUSION_ITERATIONS;
100100
const float bias = PARALLAX_OCCLUSION_BIAS / PARALLAX_OCCLUSION_ITERATIONS;
101101
for(int i = 0; i < PARALLAX_OCCLUSION_ITERATIONS; i++) {
@@ -106,12 +106,12 @@ void main (void)
106106
#endif
107107
#if PARALLAX_OCCLUSION_MODE == 1
108108
// Relief mapping
109-
if (normalTexturePresent) {
109+
if (normalTexturePresent && area_enable_parallax > 0.0) {
110110
vec2 ds = eyeRay.xy * PARALLAX_OCCLUSION_SCALE;
111111
float dist = find_intersection(uv, ds);
112112
uv += dist * ds;
113113
#endif
114-
} else if (generate_heightmaps > 0.0) {
114+
} else if (area_enable_parallax > 0.0) {
115115
vec2 ds = eyeRay.xy * PARALLAX_OCCLUSION_SCALE;
116116
float dist = find_intersectionRGB(uv, ds);
117117
uv += dist * ds;

‎client/shaders/nodes_shader/opengl_vertex.glsl

+12-8
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ varying vec3 eyeVec;
1414
varying vec3 lightVec;
1515
varying vec3 tsEyeVec;
1616
varying vec3 tsLightVec;
17-
varying float generate_heightmaps;
17+
varying float area_enable_parallax;
1818

1919
const float e = 2.718281828459;
2020
const float BS = 10.0;
@@ -35,12 +35,16 @@ float smoothTriangleWave(float x)
3535
void main(void)
3636
{
3737
gl_TexCoord[0] = gl_MultiTexCoord0;
38-
gl_TexCoord[0].y += 0.008;
39-
38+
//TODO: make offset depending on view angle and parallax uv displacement
39+
//thats for textures that doesnt align vertically, like dirt with grass
40+
//gl_TexCoord[0].y += 0.008;
41+
42+
//Allow parallax/relief mapping only for certain kind of nodes
43+
//Variable is also used to control area of the effect
4044
#if ((DRAW_TYPE == NDT_NORMAL || DRAW_TYPE == NDT_LIQUID || DRAW_TYPE == NDT_FLOWINGLIQUID) && GENERATE_NORMALMAPS)
41-
generate_heightmaps = 1.0;
45+
area_enable_parallax = 1.0;
4246
#else
43-
generate_heightmaps = 0.0;
47+
area_enable_parallax = 0.0;
4448
#endif
4549

4650
#if ((MATERIAL_TYPE == TILE_MATERIAL_LIQUID_TRANSPARENT || MATERIAL_TYPE == TILE_MATERIAL_LIQUID_OPAQUE) && ENABLE_WAVING_WATER)
@@ -89,9 +93,9 @@ void main(void)
8993
worldPosition = (mWorld * gl_Vertex).xyz;
9094

9195
// Don't generate heightmaps when too far from the eye
92-
float dist = distance (worldPosition, eyePosition);
93-
if (dist > 100.00) {
94-
generate_heightmaps = 0.0;
96+
float dist = distance (vec3(0.0, 0.0 ,0.0), vPosition);
97+
if (dist > 100.0) {
98+
area_enable_parallax = 0.0;
9599
}
96100

97101
vec3 sunPosition = vec3 (0.0, eyePosition.y * BS + 900.0, 0.0);

0 commit comments

Comments
 (0)
Please sign in to comment.