Shader UV's

Support for both Houdini (Flipped) and normal UVs.
This commit is contained in:
max
2021-01-13 19:31:54 +01:00
parent 6c9a52c1a6
commit 322b50b2bd
4 changed files with 8 additions and 842 deletions

View File

@ -58,10 +58,10 @@ void Float3ToFloat2_float(float3 f3, out float2 f2)
//float3 rotation = normalize(float3(f3.x, 0, f3.y));
float3 rotation = normalize(float3(f3.x, 0, f3.z));
f2.x = acos (dot(rotation, float3(1, 0, 0))) * sign(f3.z);
f2.x = ((f2.x / V_PI) + 1) * 0.5f;
f2.y = acos(f3.y) / V_PI;
f2.x = acos (dot(rotation, float3(1, 0, 0))) * sign(f3.z);
f2.x = ((f2.x / V_PI) + 1) * 0.5f;
f2.y = acos(f3.y) / V_PI;
f2 *= 15;
f2.x = round(f2.x);

View File

@ -8,29 +8,18 @@
float2 VA_UV_float(float2 uv, int maxFrames, float time)
{
float2 uvPosition;
float timeInFrames = frac(time);
timeInFrames = ceil(timeInFrames * maxFrames);
timeInFrames /= maxFrames;
timeInFrames += round(1.0f / maxFrames);
uvPosition.x = uv.x;
#ifdef VA_FLIP_UVS_ON
uvPosition.y = (1.0f - (timeInFrames)) + (1.0f - (1.0f - uv.y));
return uvPosition;
}
float2 VA1_UV_float(float2 uv, int maxFrames, float time)
{
float2 uvPosition;
float timeInFrames = frac(time);
timeInFrames = ceil(timeInFrames * maxFrames);
timeInFrames /= maxFrames;
timeInFrames += round(1.0f / maxFrames);
uvPosition.x = uv.x;
#else
uvPosition.y = (1.0f - (1.0f - uv.y) - (1.0f - (timeInFrames)));
#endif
return uvPosition;
}
@ -49,20 +38,6 @@ void VA_float(float2 uv, SamplerState texSampler, Texture2D positionMap, float t
alpha = texturePos.w;
}
void VA1_float(float2 uv, SamplerState texSampler, Texture2D positionMap, float time, int maxFrames,
out float3 position, out float alpha)
{
float2 uvPosition = VA1_UV_float(uv, maxFrames, time);
// Position.
float4 texturePos = positionMap.SampleLevel(texSampler, uvPosition, 0);
position = texturePos.xyz;
// Normal.
//FloatToFloat3_float(texturePos.w, outNormal);
alpha = texturePos.w;
}
void VA_ARRAY_float(float2 uv, SamplerState texSampler, Texture2DArray positionMap, float positionMapIndex, float time, int maxFrames,
out float3 position, out float3 alpha)
{