26 lines
529 B
HLSL
26 lines
529 B
HLSL
#pragma once
|
|
|
|
// PowX uses the same amount of instructions as generic pow(), but has 2 advantages:
|
|
// 1) better instruction pipelining
|
|
// 2) no need to worry about NaNs
|
|
|
|
half SafePow3(half val)
|
|
{
|
|
return val * val * val;;
|
|
}
|
|
|
|
half SafePow4(half val)
|
|
{
|
|
half val2 = val * val;
|
|
return val2 * val2;
|
|
}
|
|
|
|
half SafePow5(half val)
|
|
{
|
|
half val2 = val * val;
|
|
return val2 * val2 * val;
|
|
}
|
|
|
|
half LumByMax(half3 col) { return max(max(col.x, col.y), col.z); }
|
|
half LumByDot(half3 col) { return dot(col, half3(0.3, 0.6, 0.1)); }
|