diff options
author | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2022-05-04 15:33:13 +0300 |
---|---|---|
committer | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2022-05-04 15:33:13 +0300 |
commit | dc1793e85b2cfcff4b6cb073ee5f56cca3f38eeb (patch) | |
tree | cfd613d7a722588fd4d90cd52f7554e97f584655 /source/blender/gpu | |
parent | 5162135e147074e034449c484eac59e568ef8051 (diff) | |
parent | d86d7c935ef3d44890fa71256c9045688fb3044a (diff) |
Merge remote-tracking branch 'origin/blender-v3.2-release'
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/shaders/material/gpu_shader_material_bump.glsl | 7 | ||||
-rw-r--r-- | source/blender/gpu/shaders/material/gpu_shader_material_texture_coordinates.glsl | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_bump.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_bump.glsl index e0931128485..d7c50e213e5 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_bump.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_bump.glsl @@ -5,6 +5,13 @@ void differentiate_texco(vec3 v, out vec3 df) df = v + dF_impl(v); } +/* Overload for UVs which are loaded as generic attributes. */ +void differentiate_texco(vec4 v, out vec3 df) +{ + /* Implementation defined. */ + df = v.xyz + dF_impl(v.xyz); +} + void node_bump( float strength, float dist, float height, vec3 N, vec2 dHd, float invert, out vec3 result) { diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_texture_coordinates.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_texture_coordinates.glsl index a3666164cf7..204f134dfa6 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_texture_coordinates.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_texture_coordinates.glsl @@ -1,7 +1,7 @@ void node_tex_coord(mat4 obmatinv, vec3 attr_orco, - vec3 attr_uv, + vec4 attr_uv, out vec3 generated, out vec3 normal, out vec3 uv, @@ -12,7 +12,7 @@ void node_tex_coord(mat4 obmatinv, { generated = attr_orco; normal = normal_world_to_object(g_data.N); - uv = attr_uv; + uv = attr_uv.xyz; object = transform_point((obmatinv[3][3] == 0.0) ? ModelMatrixInverse : obmatinv, g_data.P); camera = coordinate_camera(g_data.P); window = coordinate_screen(g_data.P); |