Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/shaders/gpu_shader_material.glsl
| Context not available. | |||||
| node_bsdf_diffuse(color, 0.0, N, result); | node_bsdf_diffuse(color, 0.0, N, result); | ||||
| } | } | ||||
| void node_bsdf_glass(vec4 color, float roughness, float ior, vec3 N, out vec4 result) | void node_bsdf_toon(vec4 color, float size, float tsmooth, vec3 N, out vec4 result) | ||||
| { | { | ||||
| node_bsdf_diffuse(color, 0.0, N, result); | node_bsdf_diffuse(color, 0.0, N, result); | ||||
| } | } | ||||
| void node_bsdf_toon(vec4 color, float size, float tsmooth, vec3 N, out vec4 result) | void node_bsdf_translucent(vec4 color, vec3 N, out vec4 result) | ||||
| { | { | ||||
| node_bsdf_diffuse(color, 0.0, N, result); | node_bsdf_diffuse(color, 0.0, N, result); | ||||
| } | } | ||||
| void node_bsdf_translucent(vec4 color, vec3 N, out vec4 result) | void node_bsdf_transparent(vec4 color, out vec4 result) | ||||
| { | |||||
| vec4 hsv; | |||||
| rgb_to_hsv(color, hsv); | |||||
| hsv.a = 1 - mix(1.0, 0.25, hsv.y) * hsv.z; | |||||
| hsv.z = hsv.y * pow(hsv.z, 2.2); | |||||
| hsv.y = 1.0; | |||||
| hsv_to_rgb(hsv, result); | |||||
| } | |||||
| void node_bsdf_glass(vec4 color, float roughness, float ior, vec3 N, out vec4 result) | |||||
| { | { | ||||
| node_bsdf_diffuse(color, 0.0, N, result); | node_bsdf_diffuse(color, 0.0, N, result); | ||||
| node_bsdf_transparent(result, result); | |||||
| } | } | ||||
| void node_bsdf_transparent(vec4 color, out vec4 result) | void node_bsdf_refraction(vec4 color, float roughness, float ior, vec3 N, out vec4 result) | ||||
| { | { | ||||
| /* this isn't right */ | node_bsdf_diffuse(color, 0.0, N, result); | ||||
| result.r = color.r; | node_bsdf_transparent(result, result); | ||||
| result.g = color.g; | |||||
| result.b = color.b; | |||||
| result.a = 0.0; | |||||
| } | } | ||||
| void node_bsdf_velvet(vec4 color, float sigma, vec3 N, out vec4 result) | void node_bsdf_velvet(vec4 color, float sigma, vec3 N, out vec4 result) | ||||
| Context not available. | |||||
| result = color; | result = color; | ||||
| } | } | ||||
| void node_bsdf_refraction(vec4 color, float roughness, float ior, vec3 N, out vec4 result) | |||||
| { | |||||
| node_bsdf_diffuse(color, 0.0, N, result); | |||||
| } | |||||
| void node_ambient_occlusion(vec4 color, out vec4 result) | void node_ambient_occlusion(vec4 color, out vec4 result) | ||||
| { | { | ||||
| result = color; | result = color; | ||||
| Context not available. | |||||