From 09707e008d9fcd667614e6ddeaf7b034b7db7c92 Mon Sep 17 00:00:00 2001 From: luboslenco Date: Thu, 2 Jan 2020 23:45:57 +0100 Subject: [PATCH] Update basis calc --- Shaders/raytrace/raytrace_brute.cso | Bin 15352 -> 15268 bytes Shaders/raytrace/src/std/math.hlsl | 12 ++++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Shaders/raytrace/raytrace_brute.cso b/Shaders/raytrace/raytrace_brute.cso index 3026816ed352378f83602de2c793b175ab92d535..6f146e02d808f560255865a89c55648c410e7dc2 100644 GIT binary patch delta 4721 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 delta 4805 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 v6?4Kh9EJ@+IB?kzt8b7R abs(normal.y) ? - normalize(float3(0., normal.z, -normal.y)) : - normalize(float3(-normal.z, 0., normal.x)); - binormal = cross(normal, tangent); + // tangent = abs(normal.x) > abs(normal.y) ? + // normalize(float3(0.0, normal.z, -normal.y)) : + // normalize(float3(-normal.z, 0.0, normal.x)); + // binormal = cross(normal, tangent); + float3 c1 = cross(normal, float3(0.0, 0.0, 1.0)); + float3 c2 = cross(normal, float3(0.0, 1.0, 0.0)); + tangent = length(c1) > length(c2) ? c1 : c2; + binormal = cross(tangent, normal); } float schlick_weight(float cosTheta) {