diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7BillboardPasses.hlsl b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7BillboardPasses.hlsl index a350919db68..82a5db75c95 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7BillboardPasses.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7BillboardPasses.hlsl @@ -1,9 +1,8 @@ #ifndef UNIVERSAL_SPEEDTREE7BILLBOARD_PASSES_INCLUDED #define UNIVERSAL_SPEEDTREE7BILLBOARD_PASSES_INCLUDED -#include "SpeedTree7CommonPasses.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl" - +#include "SpeedTree7CommonPasses.hlsl" void InitializeData(inout SpeedTreeVertexInput input, out half2 outUV, out half outHueVariation) { @@ -14,7 +13,7 @@ void InitializeData(inout SpeedTreeVertexInput input, out half2 outUV, out half float3 eyeVec = normalize(unity_BillboardCameraPosition - worldPos); float3 billboardTangent = normalize(float3(-eyeVec.z, 0, eyeVec.x)); // cross(eyeVec, {0,1,0}) float3 billboardNormal = float3(billboardTangent.z, 0, -billboardTangent.x); // cross({0,1,0},billboardTangent) - float3 angle = atan2(billboardNormal.z, billboardNormal.x); // signed angle between billboardNormal to {0,0,1} + float angle = atan2(billboardNormal.z, billboardNormal.x); // signed angle between billboardNormal to {0,0,1} angle += angle < 0 ? 2 * SPEEDTREE_PI : 0; #else float3 billboardTangent = unity_BillboardTangent; @@ -32,7 +31,12 @@ void InitializeData(inout SpeedTreeVertexInput input, out half2 outUV, out half #ifdef ENABLE_WIND if (_WindQuality * _WindEnabled > 0) + { + // Disabling "pow(f,e) will not work for negative f"; warnings. + #pragma warning (disable : 3571) billboardPos = GlobalWind(billboardPos, worldPos, true, _ST_WindVector.xyz, input.texcoord1.w); + #pragma warning (enable : 3571) + } #endif input.vertex.xyz += billboardPos; diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7CommonPasses.hlsl b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7CommonPasses.hlsl index 6642e934711..df726443d7a 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7CommonPasses.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7CommonPasses.hlsl @@ -1,10 +1,6 @@ #ifndef UNIVERSAL_SPEEDTREE7COMMON_PASSES_INCLUDED #define UNIVERSAL_SPEEDTREE7COMMON_PASSES_INCLUDED -// Disable warnings we aren't interested in -#pragma warning (disable : 3571) // "pow(f,e) will not work for negative f"; however in majority of our calls to pow we know f is not negative -#pragma warning (disable : 3206) // implicit truncation of vector type - #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl" struct SpeedTreeVertexInput diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7Passes.hlsl b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7Passes.hlsl index efb4adf9523..199cde43ab6 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7Passes.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7Passes.hlsl @@ -1,8 +1,8 @@ #ifndef UNIVERSAL_SPEEDTREE7_PASSES_INCLUDED #define UNIVERSAL_SPEEDTREE7_PASSES_INCLUDED -#include "SpeedTree7CommonPasses.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl" +#include "SpeedTree7CommonPasses.hlsl" void InitializeData(inout SpeedTreeVertexInput input, float lodValue) { @@ -87,10 +87,13 @@ void InitializeData(inout SpeedTreeVertexInput input, float lodValue) } #endif + // global wind if (windQuality > WIND_QUALITY_NONE) { - // global wind + // Disabling "pow(f,e) will not work for negative f"; warnings. + #pragma warning (disable : 3571) finalPosition = GlobalWind(finalPosition, treePos, true, rotatedWindVector, _ST_WindGlobal.x); + #pragma warning (enable : 3571) } #endif diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8Passes.hlsl b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8Passes.hlsl index e0e85b26236..05a4ebb8c9c 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8Passes.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8Passes.hlsl @@ -146,7 +146,12 @@ void InitializeData(inout SpeedTreeVertexInput input, float lodValue) #if defined(EFFECT_BILLBOARD) && defined(UNITY_INSTANCING_ENABLED) globalWindTime += UNITY_ACCESS_INSTANCED_PROP(STWind, _GlobalWindTime); #endif + + // Disabling "pow(f,e) will not work for negative f"; warnings. + #pragma warning (disable : 3571) windyPosition = GlobalWind(windyPosition, treePos, true, rotatedWindVector, globalWindTime); + #pragma warning (enable : 3571) + input.vertex.xyz = windyPosition; } #endif