This repository has been archived on 2023-10-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
blender-archive/source/blender/gpu/shaders/material/gpu_shader_material_hair.glsl
Clément Foucault bfa1c077cb Fix T97983 EEVEE: Tangent Normal of Curves info behaves differently in Eevee
Curve tangent was correctly mistaken with curve normal.

This patch fixes the name of the output in the glsl function and make curve
attributes more explicit (with `curve_` prefix).

This also improve the normal computation by making it per pixel to match
cycles.

Also ports the changes to eevee-next.
2022-05-09 20:06:27 +02:00

47 lines
1.5 KiB
GLSL

void node_bsdf_hair(vec4 color,
float offset,
float roughness_u,
float roughness_v,
vec3 T,
float weight,
out Closure result)
{
ClosureHair hair_data;
hair_data.weight = weight;
hair_data.color = color.rgb;
hair_data.offset = offset;
hair_data.roughness = vec2(roughness_u, roughness_v);
hair_data.T = T;
result = closure_eval(hair_data);
}
void node_bsdf_hair_principled(vec4 color,
float melanin,
float melanin_redness,
vec4 tint,
vec3 absorption_coefficient,
float roughness,
float radial_roughness,
float coat,
float ior,
float offset,
float random_color,
float random_roughness,
float random,
float weight,
out Closure result)
{
/* Placeholder closure.
* Some computation will have to happen here just like the Principled BSDF. */
ClosureHair hair_data;
hair_data.weight = weight;
hair_data.color = color.rgb;
hair_data.offset = offset;
hair_data.roughness = vec2(0.0);
hair_data.T = g_data.curve_B;
result = closure_eval(hair_data);
}