mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Added no terrain pop experimental shader
This commit is contained in:
parent
596ae73117
commit
2d7aa1aaa3
@ -56,8 +56,10 @@ void main() {
|
|||||||
|
|
||||||
// Terrain 'pop-in' effect
|
// Terrain 'pop-in' effect
|
||||||
#ifndef EXPERIMENTAL_BAREMINIMUM
|
#ifndef EXPERIMENTAL_BAREMINIMUM
|
||||||
f_pos.z -= 250.0 * (1.0 - min(1.0001 - 0.02 / pow(tick.x - load_time, 10.0), 1.0));
|
#ifndef EXPERIMENTAL_NOTERRAINPOP
|
||||||
// f_pos.z -= min(32.0, 25.0 * pow(distance(focus_pos.xy, f_pos.xy) / view_distance.x, 20.0));
|
f_pos.z -= 250.0 * (1.0 - min(1.0001 - 0.02 / pow(tick.x - load_time, 10.0), 1.0));
|
||||||
|
// f_pos.z -= min(32.0, 25.0 * pow(distance(focus_pos.xy, f_pos.xy) / view_distance.x, 20.0));
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
float pull_down = pow(distance(focus_pos.xy, f_pos.xy) / (view_distance.x * 0.95), 20.0) * 0.7;
|
float pull_down = pow(distance(focus_pos.xy, f_pos.xy) / (view_distance.x * 0.95), 20.0) * 0.7;
|
||||||
|
@ -37,7 +37,11 @@ void main() {
|
|||||||
model_pos = v_pos;
|
model_pos = v_pos;
|
||||||
|
|
||||||
float pull_down = 1.0 / pow(distance(focus_pos.xy, tree_pos.xy) / (view_distance.x * 0.95), 150.0);
|
float pull_down = 1.0 / pow(distance(focus_pos.xy, tree_pos.xy) / (view_distance.x * 0.95), 150.0);
|
||||||
f_pos.z -= pull_down;
|
#ifndef EXPERIMENTAL_NOTERRAINPOP
|
||||||
|
f_pos.z -= pull_down;
|
||||||
|
#else
|
||||||
|
f_pos.z -= step(0.1, pull_down) * 10000.0;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Hacky, very bad, 50 is ~ tree height
|
// Hacky, very bad, 50 is ~ tree height
|
||||||
f_norm = mix(v_norm, vec3(0, 0, 1), clamp(model_pos.z / 50, 0, 1));
|
f_norm = mix(v_norm, vec3(0, 0, 1), clamp(model_pos.z / 50, 0, 1));
|
||||||
|
@ -356,7 +356,7 @@ void main() {
|
|||||||
|
|
||||||
#ifdef EXPERIMENTAL_NOLODVOXELS
|
#ifdef EXPERIMENTAL_NOLODVOXELS
|
||||||
f_ao = 1.0;
|
f_ao = 1.0;
|
||||||
voxel_norm = normalize(mix(side_norm, top_norm, cam_dir.z));
|
voxel_norm = normalize(mix(side_norm, top_norm, max(cam_dir.z, 0.0)));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// vec3 f_ao_view = max(vec3(dot(f_orig_view_dir.yz, sides.yz), dot(f_orig_view_dir.xz, sides.xz), dot(f_orig_view_dir.xy, sides.xy)), 0.0);
|
// vec3 f_ao_view = max(vec3(dot(f_orig_view_dir.yz, sides.yz), dot(f_orig_view_dir.xz, sides.xz), dot(f_orig_view_dir.xy, sides.xy)), 0.0);
|
||||||
|
@ -81,8 +81,10 @@ void main() {
|
|||||||
|
|
||||||
// Terrain 'pop-in' effect
|
// Terrain 'pop-in' effect
|
||||||
#ifndef EXPERIMENTAL_BAREMINIMUM
|
#ifndef EXPERIMENTAL_BAREMINIMUM
|
||||||
v_pos.z -= 250.0 * (1.0 - min(1.0001 - 0.02 / pow(tick.x - load_time, 10.0), 1.0));
|
#ifndef EXPERIMENTAL_NOTERRAINPOP
|
||||||
// f_pos.z -= min(32.0, 25.0 * pow(distance(focus_pos.xy, f_pos.xy) / view_distance.x, 20.0));
|
v_pos.z -= 250.0 * (1.0 - min(1.0001 - 0.02 / pow(tick.x - load_time, 10.0), 1.0));
|
||||||
|
// f_pos.z -= min(32.0, 25.0 * pow(distance(focus_pos.xy, f_pos.xy) / view_distance.x, 20.0));
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef EXPERIMENTAL_CURVEDWORLD
|
#ifdef EXPERIMENTAL_CURVEDWORLD
|
||||||
|
@ -465,4 +465,6 @@ pub enum ExperimentalShader {
|
|||||||
LowGlowNearCamera,
|
LowGlowNearCamera,
|
||||||
/// Disable the fake voxel effect on LoD features.
|
/// Disable the fake voxel effect on LoD features.
|
||||||
NoLodVoxels,
|
NoLodVoxels,
|
||||||
|
// Disable the 'pop-in' effect when loading terrain.
|
||||||
|
NoTerrainPop,
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user