pub enum Operation {
Show 60 variants
Unk,
Mix,
Mul,
Div,
Add,
Sub,
Fma,
MulRatio,
AddNormalX,
AddNormalY,
Overlay,
Overlay2,
OverlayRatio,
Power,
Min,
Max,
Clamp,
Abs,
Fresnel,
Sqrt,
TexMatrix,
TexParallaxX,
TexParallaxY,
ReflectX,
ReflectY,
ReflectZ,
Floor,
Select,
Equal,
NotEqual,
Less,
Greater,
LessEqual,
GreaterEqual,
Dot4,
NormalMapX,
NormalMapY,
NormalMapZ,
MonochromeX,
MonochromeY,
MonochromeZ,
Negate,
FurInstanceAlpha,
Float,
Int,
Uint,
Truncate,
FloatBitsToInt,
IntBitsToFloat,
UintBitsToFloat,
InverseSqrt,
Not,
LeftShift,
RightShift,
PartialDerivativeX,
PartialDerivativeY,
Exp2,
Log2,
Sin,
Cos,
}Expand description
A function or operation applied to one or more OutputExpr.
Variants§
Unk
An unsupported operation or function call.
Mix
mix(arg0, arg1, arg2)
Mul
arg0 * arg1
Div
arg0 / arg1
Add
arg0 + arg1
Sub
arg0 - arg1
Fma
fma(arg0, arg1, arg2) or arg0 * arg1 + arg2
MulRatio
mix(arg0, arg0 * arg1, arg2)
AddNormalX
Blend mode add_normal(n1_x, n1_y, n2_x, n2_y, ratio).x similar to “Reoriented Normal Mapping” (RNM).
AddNormalY
Blend mode add_normal(n1_x, n1_y, n2_x, n2_y, ratio).y similar to “Reoriented Normal Mapping” (RNM).
Overlay
overlay(arg0, arg1).
Overlay2
overlay2(arg0, arg1).
OverlayRatio
mix(arg0, overlay(arg0, arg1), arg2).
Power
pow(arg0, arg1)
Min
min(arg0, arg1)
Max
max(arg0, arg1)
Clamp
clamp(arg0, arg1, arg2)
Abs
abs(arg0)
Fresnel
pow(1.0 - n_dot_v, arg0 * 5.0)
Sqrt
sqrt(arg0)
TexMatrix
dot(vec4(arg0, arg1, 0.0, 1.0), (arg2, arg3, arg4, arg5))
TexParallaxX
arg0 + arg1 * 0.7 * (normal.x * tangent.x - normal.x * bitangent.x)
TexParallaxY
arg0 + arg1 * 0.7 * (normal.x * tangent.y - normal.x * bitangent.y)
ReflectX
reflect(vec3(arg0, arg1, arg2), vec3(arg3, arg4, arg5)).x
ReflectY
reflect(vec3(arg0, arg1, arg2), vec3(arg3, arg4, arg5)).y
ReflectZ
reflect(vec3(arg0, arg1, arg2), vec3(arg3, arg4, arg5)).z
Floor
floor(arg0)
Select
if arg0 { arg1 } else { arg2 } or mix(arg2, arg1, arg0)
Equal
arg0 == arg1
NotEqual
arg0 != arg1
Less
arg0 < arg1
Greater
arg0 > arg1
LessEqual
arg0 <= arg1
GreaterEqual
arg0 >= arg1
Dot4
dot(vec4(arg0, arg1, arg2, arg3), vec4(arg4, arg5, arg6, arg7))
NormalMapX
apply_normal_map(create_normal_map(arg0, arg1), tangent.xyz, bitangent.xyz, normal.xyz).x
NormalMapY
apply_normal_map(create_normal_map(arg0, arg1), tangent.xyz, bitangent.xyz, normal.xyz).y
NormalMapZ
apply_normal_map(create_normal_map(arg0, arg1), tangent.xyz, bitangent.xyz, normal.xyz).z
MonochromeX
monochrome(arg0, arg1, arg2, arg3).x
MonochromeY
monochrome(arg0, arg1, arg2, arg3).y
MonochromeZ
monochrome(arg0, arg1, arg2, arg3).z
Negate
-arg0
FurInstanceAlpha
fur_instance_alpha(instance_index, arg0)
Float
float(arg0)
Int
int(arg0)
Uint
uint(arg0)
Truncate
trunc(arg0)
FloatBitsToInt
floatBitsToInt(arg0)
IntBitsToFloat
intBitsToFloat(arg0)
UintBitsToFloat
uintBitsToFloat(arg0)
InverseSqrt
inversesqrt(arg0)
Not
!arg0
LeftShift
arg0 << arg1
RightShift
arg0 >> arg1
PartialDerivativeX
dFdx(arg0) or dpdx(arg0)
PartialDerivativeY
dFdy(arg0) or dpdy(arg0)
Exp2
exp2(arg0)
Log2
log2(arg0)
Sin
sin(arg0)
Cos
cos(arg0)
Implementations§
Trait Implementations§
impl Copy for Operation
impl Eq for Operation
impl StructuralPartialEq for Operation
Auto Trait Implementations§
impl Freeze for Operation
impl RefUnwindSafe for Operation
impl Send for Operation
impl Sync for Operation
impl Unpin for Operation
impl UnsafeUnpin for Operation
impl UnwindSafe for Operation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CustomError for T
impl<T> CustomError for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().