Files
test2/intern/cycles/kernel/osl/shaders/node_hair_bsdf.osl
Lukas Stockner 5939810b3c Cycles: Remove unused Normal input on Hair BSDF
This was causing a warning when using OSL, since the OSL implementation
didn't implement the input.
Since the socket isn't really implemented on the Blender side anyways,
just get rid of it.

Also, the SVM code uses the shading normal while OSL used the geometric normal.
2023-09-16 03:29:46 +02:00

44 lines
1.1 KiB
Plaintext

/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
*
* SPDX-License-Identifier: Apache-2.0 */
#include "stdcycles.h"
shader node_hair_bsdf(color Color = 0.8,
string component = "reflection",
float Offset = 0.0,
float RoughnessU = 0.1,
float RoughnessV = 1.0,
normal Tangent = normal(0, 0, 0),
output closure color BSDF = 0)
{
float roughnessh = clamp(RoughnessU, 0.001, 1.0);
float roughnessv = clamp(RoughnessV, 0.001, 1.0);
float offset = -Offset;
normal T;
float IsCurve = 0;
getattribute("geom:is_curve", IsCurve);
if (isconnected(Tangent)) {
T = Tangent;
}
else if (!IsCurve) {
T = normalize(dPdv);
offset = 0.0;
}
else {
T = normalize(dPdu);
}
if (backfacing() && IsCurve) {
BSDF = transparent();
}
else {
if (component == "reflection")
BSDF = Color * hair_reflection(N, roughnessh, roughnessv, T, offset);
else
BSDF = Color * hair_transmission(N, roughnessh, roughnessv, T, offset);
}
}