diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-04-27 23:27:09 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-05-01 19:11:21 +0300 |
commit | e868b459bb8efc35012b2364762f3d25d96b8b0d (patch) | |
tree | eb2c0e9909a3a4ea5225f6b537f8b7fbdf51d832 /source/blender/draw/engines/eevee/shaders | |
parent | 2f100c13ee14cc6876423d1ac39ef9c565fb8987 (diff) |
Eevee: World nodetree gpumaterial compatibility.
- Unify GPUMaterial creation (world/mesh).
- Support for multiple shader variations (not used for now).
- Convert GPUInputs to DRWUniforms to be used with the draw manager.
- Nodetree Update is not supported. The only way to refresh the shaders is to change render engine.
- Cleanup in GPUPass.
- Add new temporary Node Compatibility type. Compatibility types should be removed in the future.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders')
4 files changed, 5 insertions, 7 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl b/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl index fddc9c54cb2..ef8af646ec1 100644 --- a/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl +++ b/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl @@ -54,7 +54,7 @@ struct ShadowMapData { #define sh_map_bias near_far_bias.z #ifndef MAX_CASCADE_NUM -#define MAX_CASCADE_NUM 1 +#define MAX_CASCADE_NUM 4 #endif struct ShadowCascadeData { @@ -94,8 +94,6 @@ vec4 saturate(vec4 a) { return vec4(saturate(a.x), saturate(a.y), saturate(a.z), float distance_squared(vec2 a, vec2 b) { a -= b; return dot(a, a); } float distance_squared(vec3 a, vec3 b) { a -= b; return dot(a, a); } -float hypot(float x, float y) { return sqrt(x*x + y*y); } - float inverse_distance(vec3 V) { return max( 1 / length(V), 1e-8); } float line_plane_intersect_dist(vec3 lineorigin, vec3 linedirection, vec3 planeorigin, vec3 planenormal) diff --git a/source/blender/draw/engines/eevee/shaders/default_frag.glsl b/source/blender/draw/engines/eevee/shaders/default_frag.glsl index 4cb229e392b..8d4a1e6d523 100644 --- a/source/blender/draw/engines/eevee/shaders/default_frag.glsl +++ b/source/blender/draw/engines/eevee/shaders/default_frag.glsl @@ -3,9 +3,11 @@ uniform vec3 diffuse_col; uniform vec3 specular_col; uniform int hardness; +out vec4 FragColor; + void main() { float roughness = 1.0 - float(hardness) / 511.0; roughness *= roughness; - fragColor = vec4(eevee_surface_lit(worldNormal, diffuse_col, specular_col, roughness), 1.0); + FragColor = vec4(eevee_surface_lit(worldNormal, diffuse_col, specular_col, roughness), 1.0); } diff --git a/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl b/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl index 7a0a7b8da91..10d9ce7c4c0 100644 --- a/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl +++ b/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl @@ -28,8 +28,6 @@ layout(std140) uniform shadow_block { in vec3 worldPosition; in vec3 worldNormal; -out vec4 fragColor; - /* type */ #define POINT 0.0 #define SUN 1.0 diff --git a/source/blender/draw/engines/eevee/shaders/probe_geom.glsl b/source/blender/draw/engines/eevee/shaders/probe_geom.glsl index ad112977e9f..5f79e1c6eb8 100644 --- a/source/blender/draw/engines/eevee/shaders/probe_geom.glsl +++ b/source/blender/draw/engines/eevee/shaders/probe_geom.glsl @@ -8,7 +8,7 @@ in vec4 vPos[]; in int face[]; out vec3 worldPosition; -out vec3 worldNormal; +out vec3 worldNormal; /* Required. otherwise generate linking error on AMD. */ const vec3 maj_axes[6] = vec3[6](vec3(1.0, 0.0, 0.0), vec3(-1.0, 0.0, 0.0), vec3(0.0, 1.0, 0.0), vec3(0.0, -1.0, 0.0), vec3( 0.0, 0.0, 1.0), vec3( 0.0, 0.0, -1.0)); const vec3 x_axis[6] = vec3[6](vec3(0.0, 0.0, -1.0), vec3( 0.0, 0.0, 1.0), vec3(1.0, 0.0, 0.0), vec3(1.0, 0.0, 0.0), vec3( 1.0, 0.0, 0.0), vec3(-1.0, 0.0, 0.0)); |