This commit is contained in:
Mikulas Florek 2018-10-28 18:41:35 +01:00
parent 3c2d3c6fd6
commit e9fafe4847
3 changed files with 26 additions and 9 deletions

View file

@ -50,7 +50,7 @@ function geomPass(default_set, decal_set)
setRenderTargets(gbuffer0, gbuffer1, gbuffer2, dsbuffer)
clear(CLEAR_ALL, 0, 0, 0, 1, 0)
local view_params = getCameraParams()
renderTerrains("DEFERRED", view_params, {}, default_state)
renderTerrains(view_params, {}, default_state)
renderBucket(default_set, default_state)
endBlock()

View file

@ -13,8 +13,8 @@ vertex_shader [[
fragment_shader [[
uniform sampler2D u_splatmap;
uniform sampler2DArray u_detail_textures;
layout(binding = 0) uniform sampler2D u_splatmap;
layout(binding = 1) uniform sampler2DArray u_albedo;
uniform vec3 u_rel_camera_pos;
uniform int u_lod;
in vec2 v_uv;
@ -29,7 +29,7 @@ fragment_shader [[
vec2 splat_uv = (ij / 2048.0 + v_uv / 1024.0 * 64 * s);
splat_uv.y = 1 - splat_uv.y;
vec4 splat = texture(u_splatmap, splat_uv);
vec4 c2 = texture(u_detail_textures, vec3(splat_uv * 128, 0.5 + splat.x * 256));
vec4 c2 = texture(u_albedo, vec3(splat_uv * 128, 0.5 + splat.x * 256));
o_color = vec4(c2.rgb, 1);
//o_color = vec4(splat.rgb, 1);
}

View file

@ -1,5 +1,23 @@
include "pipelines/common.glsl"
texture_slot {
name = "Heightmap",
uniform = "u_hm",
default_texture = "textures/common/white.tga"
}
texture_slot {
name = "Albedo",
uniform = "u_albedo",
default_texture = "textures/common/white.tga"
}
texture_slot {
name = "Splatmap",
uniform = "u_splatmap",
default_texture = "textures/common/white.tga"
}
vertex_shader [[
#ifdef EDGE
out int vertex_id;
@ -50,7 +68,7 @@ geometry_shader [[
out vec2 v_uv_sub;
uniform vec3 u_position;
uniform int u_lod;
uniform sampler2D u_hm;
layout(binding = 0) uniform sampler2D u_hm;
uniform vec3 u_rel_camera_pos;
const float hscale = 64;
@ -209,15 +227,14 @@ fragment_shader [[
in vec2 v_uv;
in vec2 v_uv_sub;
uniform sampler2D u_hm;
uniform sampler2DArray u_satellite;
layout(binding = 0) uniform sampler2D u_hm;
layout(binding = 1) uniform sampler2DArray u_slices;
uniform int u_lod;
void getData()
{
data.normal = vec3(0, 1, 0);
data.albedo = pow(texture(u_satellite, vec3(v_uv_sub, u_lod)), vec4(2.2));
//data.albedo = vec4(v_uv_sub, 0, 1);
data.albedo = pow(texture(u_slices, vec3(v_uv_sub, u_lod)), vec4(2.2));
#ifdef ALPHA_CUTOUT
if(data.albedo.a < 0.5) discard;
#endif