Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/closure/bsdf_util.h
| Show All 24 Lines | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||||
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||||
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
| */ | */ | ||||
| #ifndef __BSDF_UTIL_H__ | #pragma once | ||||
| #define __BSDF_UTIL_H__ | |||||
| CCL_NAMESPACE_BEGIN | CCL_NAMESPACE_BEGIN | ||||
| ccl_device float fresnel_dielectric(float eta, | ccl_device float fresnel_dielectric(float eta, | ||||
| const float3 N, | const float3 N, | ||||
| const float3 I, | const float3 I, | ||||
| float3 *R, | float3 *R, | ||||
| float3 *T, | float3 *T, | ||||
| ▲ Show 20 Lines • Show All 102 Lines • ▼ Show 20 Lines | interpolate_fresnel_color(float3 L, float3 H, float ior, float F0, float3 cspec0) | ||||
| float F0_norm = 1.0f / (1.0f - F0); | float F0_norm = 1.0f / (1.0f - F0); | ||||
| float FH = (fresnel_dielectric_cos(dot(L, H), ior) - F0) * F0_norm; | float FH = (fresnel_dielectric_cos(dot(L, H), ior) - F0) * F0_norm; | ||||
| /* Blend between white and a specular color with respect to the fresnel */ | /* Blend between white and a specular color with respect to the fresnel */ | ||||
| return cspec0 * (1.0f - FH) + make_float3(1.0f, 1.0f, 1.0f) * FH; | return cspec0 * (1.0f - FH) + make_float3(1.0f, 1.0f, 1.0f) * FH; | ||||
| } | } | ||||
| CCL_NAMESPACE_END | CCL_NAMESPACE_END | ||||
| #endif /* __BSDF_UTIL_H__ */ | |||||