948 lines
25 KiB
Plaintext
948 lines
25 KiB
Plaintext
= Math Test
|
|
|
|
This file (vkmath.txt) contains all the latexmath blocks and inlines in the
|
|
Vulkan spec and style guide, so we can see how they're rendered with
|
|
different methods and output formats.
|
|
|
|
== File chapters/fundamentals.txt
|
|
|
|
=== latexmath block 1
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
f = { c \over { 2^b - 1 } }
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 2
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
f = \max\left( {c \over {2^{b-1} - 1}}, -1.0 \right)
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
== File chapters/interfaces.txt
|
|
|
|
=== latexmath inline 1
|
|
|
|
latexmath:[(x,y,z,\frac{1}{w})]
|
|
|
|
=== latexmath inline 2
|
|
|
|
latexmath:[\frac{1}{w}]
|
|
|
|
== File chapters/primsrast.txt
|
|
|
|
=== latexmath block 3
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
s = {1 \over 2} + { \left( x_p - x_f \right) \over \text{size} }
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
t = {1 \over 2} + { \left( y_p - y_f \right) \over \text{size} }
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 4
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
t = {{( \mathbf{p}_r - \mathbf{p}_a ) \cdot ( \mathbf{p}_b - \mathbf{p}_a )}
|
|
\over {\| \mathbf{p}_b - \mathbf{p}_a \|^2 }}
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 5
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
f = {{ (1-t) {f_a / w_a} + t { f_b / w_b} } \over
|
|
{(1-t) / w_a + t / w_b }}
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 6
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
a = -{1 \over 2}\sum_{i=0}^{n-1}
|
|
x_f^i y_f^{i \oplus 1} -
|
|
x_f^{i \oplus 1} y_f^i
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath inline 3
|
|
|
|
latexmath:[x_f^i] and latexmath:[y_f^i]
|
|
|
|
=== latexmath block 7
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
a = {{\mathrm{A}(p p_b p_c)} \over {\mathrm{A}(p_a p_b p_c)}}, \quad
|
|
b = {{\mathrm{A}(p p_a p_c)} \over {\mathrm{A}(p_a p_b p_c)}}, \quad
|
|
c = {{\mathrm{A}(p p_a p_b)} \over {\mathrm{A}(p_a p_b p_c)}},
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 8
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
f = { a {f_a / w_a} + b {f_b / w_b} + c {f_c / w_c} } \over
|
|
{ {a / w_a} + {b / w_b} + {c / w_c} }
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
== File chapters/fundamentals.txt
|
|
|
|
=== latexmath block 9
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
f = { c \over { 2^b - 1 } }
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 10
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
f = \max\left( {c \over {2^{b-1} - 1}}, -1.0 \right)
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
== File chapters/interfaces.txt
|
|
|
|
=== latexmath inline 4
|
|
|
|
latexmath:[(x,y,z,\frac{1}{w})]
|
|
|
|
=== latexmath inline 5
|
|
|
|
latexmath:[\frac{1}{w}].
|
|
|
|
== File chapters/primsrast.txt
|
|
|
|
=== latexmath block 11
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
s = {1 \over 2} + { \left( x_p - x_f \right) \over \text{size} }
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
t = {1 \over 2} + { \left( y_p - y_f \right) \over \text{size} }
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 12
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
t = {{( \mathbf{p}_r - \mathbf{p}_a ) \cdot ( \mathbf{p}_b - \mathbf{p}_a )}
|
|
\over {\| \mathbf{p}_b - \mathbf{p}_a \|^2 }}
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 13
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
f = {{ (1-t) {f_a / w_a} + t { f_b / w_b} } \over
|
|
{(1-t) / w_a + t / w_b }}
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 14
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
a = -{1 \over 2}\sum_{i=0}^{n-1}
|
|
x_f^i y_f^{i \oplus 1} -
|
|
x_f^{i \oplus 1} y_f^i
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath inline 6
|
|
|
|
latexmath:[x_f^i] and latexmath:[y_f^i]
|
|
|
|
=== latexmath block 15
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
a = {{\mathrm{A}(p p_b p_c)} \over {\mathrm{A}(p_a p_b p_c)}}, \quad
|
|
b = {{\mathrm{A}(p p_a p_c)} \over {\mathrm{A}(p_a p_b p_c)}}, \quad
|
|
c = {{\mathrm{A}(p p_a p_b)} \over {\mathrm{A}(p_a p_b p_c)}},
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 16
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
f = { a {f_a / w_a} + b {f_b / w_b} + c {f_c / w_c} } \over
|
|
{ {a / w_a} + {b / w_b} + {c / w_c} }
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 17
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
f = \sum_{i=1}^{n} a_i f_i
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath inline 7
|
|
|
|
latexmath:[\sum_{i=1}^{n}a_i = 1].
|
|
|
|
=== latexmath block 18
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
m = \sqrt{ \left({{\partial z_f} \over {\partial x_f}}\right)^2
|
|
+ \left({{\partial z_f} \over {\partial y_f}}\right)^2}
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 19
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
m = \max\left( \left| {{\partial z_f} \over {\partial x_f}} \right|,
|
|
\left| {{\partial z_f} \over {\partial y_f}} \right| \right)
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 20
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
o =
|
|
\begin{cases}
|
|
m \times depthBiasSlopeFactor +
|
|
r \times depthBiasConstantFactor & depthBiasClamp = 0\ or\ NaN \\
|
|
\min(m \times depthBiasSlopeFactor +
|
|
r \times depthBiasConstantFactor,
|
|
depthBiasClamp) & depthBiasClamp > 0 \\
|
|
\max(m \times depthBiasSlopeFactor +
|
|
r \times depthBiasConstantFactor,
|
|
depthBiasClamp) & depthBiasClamp < 0 \\
|
|
\end{cases}
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
== File chapters/tessellation.txt
|
|
|
|
=== latexmath inline 8
|
|
|
|
latexmath:[\frac{1}{n}, \frac{2}{n}, \ldots, \frac{n-1}{n}]
|
|
|
|
== File chapters/textures.txt
|
|
|
|
=== latexmath block 21
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
N & = 9 & \text{number of mantissa bits per component} \\
|
|
B & = 15 & \text{exponent bias} \\
|
|
E_{max} & = 31 & \text{maximum possible biased exponent value} \\
|
|
sharedexp_{max} & = \frac{(2^N-1)}{2^N} \times 2^{(E_{max}-B)}
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
=== latexmath block 22
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
exp' =
|
|
\begin{cases}
|
|
\left \lfloor \log_2(max_{clamped}) \right \rfloor + (B+1)
|
|
& \text{for}\ max_{clamped} > 2^{-(B+1)} \\
|
|
0
|
|
& \text{for}\ max_{clamped} \leq 2^{-(B+1)}
|
|
\end{cases}
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
=== latexmath block 23
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
max_{shared} =
|
|
\left \lfloor
|
|
\frac{max_{clamped}}{2^{(exp'-B-N)}}+\frac{1}{2}
|
|
\right \rfloor
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
=== latexmath block 24
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
exp_{shared} =
|
|
\begin{cases}
|
|
exp' & \text{for}\ 0 \leq max_{shared} < 2^N \\
|
|
exp'+1 & \text{for}\ max_{shared} = 2^N
|
|
\end{cases}
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
=== latexmath block 25
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
red_{shared} & =
|
|
\left \lfloor
|
|
\frac{red_{clamped}}{2^{(exp_{shared}-B-N)}}+ \frac{1}{2}
|
|
\right \rfloor \\
|
|
green_{shared} & =
|
|
\left \lfloor
|
|
\frac{green_{clamped}}{2^{(exp_{shared}-B-N)}}+ \frac{1}{2}
|
|
\right \rfloor \\
|
|
blue_{shared} & =
|
|
\left \lfloor
|
|
\frac{blue_{clamped}}{2^{(exp_{shared}-B-N)}}+ \frac{1}{2}
|
|
\right \rfloor
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
=== latexmath block 26
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
D & = 1.0 &
|
|
\begin{cases}
|
|
D_{ref} \leq D & \text{for LEQUAL} \\
|
|
D_{ref} \geq D & \text{for GEQUAL} \\
|
|
D_{ref} < D & \text{for LESS} \\
|
|
D_{ref} > D & \text{for GREATER} \\
|
|
D_{ref} = D & \text{for EQUAL} \\
|
|
D_{ref} \neq D & \text{for NOTEQUAL} \\
|
|
true & \text{for ALWAYS} \\
|
|
false & \text{for NEVER}
|
|
\end{cases} \\
|
|
D & = 0.0 & \text{otherwise}
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
=== latexmath block 27
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
C'_{rgba}[R] & =
|
|
\begin{cases}
|
|
C_{rgba}[R] & \text{for RED swizzle} \\
|
|
C_{rgba}[G] & \text{for GREEN swizzle} \\
|
|
C_{rgba}[B] & \text{for BLUE swizzle} \\
|
|
C_{rgba}[A] & \text{for ALPHA swizzle} \\
|
|
0 & \text{for ZERO swizzle} \\
|
|
one & \text{for ONE swizzle} \\
|
|
C_{rgba}[R] & \text{for IDENTITY swizzle}
|
|
\end{cases}
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
=== latexmath block 28
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
C_{rgba}[R] & \text{is the RED component} \\
|
|
C_{rgba}[G] & \text{is the GREEN component} \\
|
|
C_{rgba}[B] & \text{is the BLUE component} \\
|
|
C_{rgba}[A] & \text{is the ALPHA component} \\
|
|
one & = 1.0\text{f} & \text{for floating point components} \\
|
|
one & = 1 & \text{for integer components}
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
=== latexmath block 29
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
dPdx_{i_1,j_0} & = dPdx_{i_0,j_0} & = P_{i_1,j_0} - P_{i_0,j_0} \\
|
|
dPdx_{i_1,j_1} & = dPdx_{i_0,j_1} & = P_{i_1,j_1} - P_{i_0,j_1} \\
|
|
\\
|
|
dPdy_{i_0,j_1} & = dPdy_{i_0,j_0} & = P_{i_0,j_1} - P_{i_0,j_0} \\
|
|
dPdy_{i_1,j_1} & = dPdy_{i_1,j_0} & = P_{i_1,j_1} - P_{i_1,j_0}
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
=== latexmath block 30
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
dPdx & =
|
|
\begin{cases}
|
|
dPdx_{i_0,j_0} & \text{preferred}\\
|
|
dPdx_{i_0,j_1}
|
|
\end{cases} \\
|
|
dPdy & =
|
|
\begin{cases}
|
|
dPdy_{i_0,j_0} & \text{preferred}\\
|
|
dPdy_{i_1,j_0}
|
|
\end{cases}
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
=== latexmath block 31
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
s & = \frac{s}{q}, & \text{for 1D, 2D, or 3D image} \\
|
|
\\
|
|
t & = \frac{t}{q}, & \text{for 2D or 3D image} \\
|
|
\\
|
|
r & = \frac{r}{q}, & \text{for 3D image} \\
|
|
\\
|
|
D_{ref} & = \frac{D_{ref}}{q}, & \text{if provided}
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
|
|
=== latexmath block 32
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
\partial{s}/\partial{x} & = dPdx(s), & \partial{s}/\partial{y} & = dPdy(s), & \text{for 1D, 2D, Cube, or 3D image} \\
|
|
\partial{t}/\partial{x} & = dPdx(t), & \partial{t}/\partial{y} & = dPdy(t), & \text{for 2D, Cube, or 3D image} \\
|
|
\partial{u}/\partial{x} & = dPdx(u), & \partial{u}/\partial{y} & = dPdy(u), & \text{for Cube or 3D image}
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
=== latexmath block 33
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
s_{face} & =
|
|
\frac{1}{2} \times \frac{s_c}{|r_c|} + \frac{1}{2} \\
|
|
t_{face} & =
|
|
\frac{1}{2} \times \frac{t_c}{|r_c|} + \frac{1}{2} \\
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 34
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\frac{\partial{s_{face}}}{\partial{x}} &=
|
|
\frac{\partial}{\partial{x}} \left ( \frac{1}{2} \times \frac{s_{c}}{|r_{c}|}
|
|
+ \frac{1}{2}\right ) \\
|
|
\frac{\partial{s_{face}}}{\partial{x}} &=
|
|
\frac{1}{2} \times \frac{\partial}{\partial{x}}
|
|
\left ( \frac{s_{c}}{|r_{c}|} \right ) \\
|
|
\frac{\partial{s_{face}}}{\partial{x}} &=
|
|
\frac{1}{2} \times
|
|
\left (
|
|
\frac{
|
|
|r_{c}| \times \partial{s_c}/\partial{x}
|
|
-s_c \times {\partial{r_{c}}}/{\partial{x}}}
|
|
{\left ( r_{c} \right )^2}
|
|
\right )
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 35
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\frac{\partial{s_{face}}}{\partial{y}} &=
|
|
\frac{1}{2} \times
|
|
\left (
|
|
\frac{
|
|
|r_{c}| \times \partial{s_c}/\partial{y}
|
|
-s_c \times {\partial{r_{c}}}/{\partial{y}}}
|
|
{\left ( r_{c} \right )^2}
|
|
\right )\\
|
|
\frac{\partial{t_{face}}}{\partial{x}} &=
|
|
\frac{1}{2} \times
|
|
\left (
|
|
\frac{
|
|
|r_{c}| \times \partial{t_c}/\partial{x}
|
|
-t_c \times {\partial{r_{c}}}/{\partial{x}}}
|
|
{\left ( r_{c} \right )^2}
|
|
\right ) \\
|
|
\frac{\partial{t_{face}}}{\partial{y}} &=
|
|
\frac{1}{2} \times
|
|
\left (
|
|
\frac{
|
|
|r_{c}| \times \partial{t_c}/\partial{y}
|
|
-t_c \times {\partial{r_{c}}}/{\partial{y}}}
|
|
{\left ( r_{c} \right )^2}
|
|
\right )
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 36
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\rho_{x} & = \sqrt{ m_{ux} ^{2} + m_{vx} ^{2} + m_{wx} ^{2} } \\
|
|
\rho_{y} & = \sqrt{ m_{uy} ^{2} + m_{vy} ^{2} + m_{wy} ^{2} }
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 37
|
|
|
|
:: [eq]#f~x~# is continuous and monotonically increasing in each of
|
|
[eq]#m~ux~#, [eq]#m~vx~#, and [eq]#m~wx~#
|
|
:: [eq]#f~y~# is continuous and monotonically increasing in each of
|
|
[eq]#m~uy~#, [eq]#m~vy~#, and [eq]#m~wy~#
|
|
:: [eq]#max({vert}m~ux~{vert}, {vert}m~vx~{vert}, {vert}m~wx~{vert}) {leq}
|
|
f~x~ {leq} {vert}m~ux~{vert} + {vert}m~vx~{vert} + {vert}m~wx~{vert}#
|
|
:: [eq]#max({vert}m~uy~{vert}, {vert}m~vy~{vert}, {vert}m~wy~{vert}) {leq}
|
|
f~y~ {leq} {vert}m~uy~{vert} + {vert}m~vy~{vert} + {vert}m~wy~{vert}#
|
|
|
|
=== latexmath block 38
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
N & = \min \left (\left \lceil \frac{\rho_{max}}{\rho_{min}} \right \rceil ,max_{Aniso} \right )
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 39
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\lambda_{base}(x,y) & =
|
|
\begin{cases}
|
|
shaderOp.Lod & \text{(from optional SPIR-V operand)} \\
|
|
\log_2 \left ( \frac{\rho_{max}}{N} \right ) & \text{otherwise}
|
|
\end{cases} \\
|
|
\lambda'(x,y) & = \lambda_{base} + \mathbin{clamp}(sampler.bias + shaderOp.bias,-maxSamplerLodBias,maxSamplerLodBias) \\
|
|
\lambda & =
|
|
\begin{cases}
|
|
lod_{max}, & \lambda' > lod_{max} \\
|
|
\lambda', & lod_{min} \leq \lambda' \leq lod_{max} \\
|
|
lod_{min}, & \lambda' < lod_{min} \\
|
|
undefined, & lod_{min} > lod_{max} \\
|
|
\end{cases}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 40
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
sampler.bias & = mipLodBias & \text{(from sampler descriptor)} \\
|
|
shaderOp.bias & =
|
|
\begin{cases}
|
|
Bias & \text{(from optional SPIR-V operand)} \\
|
|
0 & \text{otherwise}
|
|
\end{cases} \\
|
|
sampler.lod_{min} & = minLod & \text{(from sampler descriptor)} \\
|
|
shaderOp.lod_{min} & =
|
|
\begin{cases}
|
|
MinLod & \text{(from optional SPIR-V operand)} \\
|
|
0 & \text{otherwise}
|
|
\end{cases} \\
|
|
\\
|
|
lod_{min} & = \max(sampler.lod_{min}, shaderOp.lod_{min}) \\
|
|
lod_{max} & = maxLod & \text{(from sampler descriptor)}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 41
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
d =
|
|
\begin{cases}
|
|
level_{base}, & \lambda \leq \frac{1}{2} \\[.5em]
|
|
nearest(\lambda), & \lambda > \frac{1}{2},
|
|
level_{base} + \lambda \leq
|
|
q + \frac{1}{2} \\[.5em]
|
|
q, & \lambda > \frac{1}{2},
|
|
level_{base} + \lambda > q + \frac{1}{2}
|
|
\end{cases}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 42
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
nearest(\lambda) & =
|
|
\begin{cases}
|
|
\left \lceil level_{base}+\lambda + \frac{1}{2}\right \rceil - 1, &
|
|
\text{preferred} \\
|
|
\left \lfloor level_{base}+\lambda + \frac{1}{2}\right \rfloor, &
|
|
\text{alternative}
|
|
\end{cases}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 43
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
d_{hi} & =
|
|
\begin{cases}
|
|
q, & level_{base} + \lambda \geq q \\
|
|
\left \lfloor level_{base}+\lambda \right \rfloor, & \text{otherwise}
|
|
\end{cases} \\
|
|
d_{lo} & =
|
|
\begin{cases}
|
|
q, & level_{base} + \lambda \geq q \\
|
|
d_{hi}+1, & \text{otherwise}
|
|
\end{cases}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 44
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
u(x,y) & = s(x,y) \times width_{level} \\
|
|
v(x,y) & =
|
|
\begin{cases}
|
|
0 & \text{for 1D images} \\
|
|
t(x,y) \times height_{level} & \text{otherwise}
|
|
\end{cases} \\
|
|
w(x,y) & =
|
|
\begin{cases}
|
|
0 & \text{for 2D or Cube images} \\
|
|
r(x,y) \times depth_{level} & \text{otherwise}
|
|
\end{cases} \\
|
|
\\
|
|
a(x,y) & =
|
|
\begin{cases}
|
|
a(x,y) & \text{for array images} \\
|
|
0 & \text{otherwise}
|
|
\end{cases}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 45
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\mathbin{RNE}(a) & =
|
|
\begin{cases}
|
|
\mathbin{roundTiesToEven}(a) & \text{preferred, from IEEE Std 754-2008 Floating-Point Arithmetic} \\
|
|
\left \lfloor a + \frac{1}{2} \right \rfloor & \text{alternative}
|
|
\end{cases}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 46
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
i &=
|
|
\begin{cases}
|
|
i \bmod size & \text{for repeat} \\
|
|
(size-1) - \mathbin{mirror}
|
|
((i \bmod (2 \times size)) - size) & \text{for mirrored repeat} \\
|
|
\mathbin{clamp}(i,0,size-1) & \text{for clamp to edge} \\
|
|
\mathbin{clamp}(i,-1,size) & \text{for clamp to border} \\
|
|
\mathbin{clamp}(\mathbin{mirror}(i),0,size-1) & \text{for mirror clamp to edge}
|
|
\end{cases}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
|
|
=== latexmath block 47
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
& \mathbin{mirror}(n) =
|
|
\begin{cases}
|
|
n & \text{for}\ n \geq 0 \\
|
|
-(1+n) & \text{otherwise}
|
|
\end{cases}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 48
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\tau[R] &= \tau_{i0j1}[level_{base}][comp] \\
|
|
\tau[G] &= \tau_{i1j1}[level_{base}][comp] \\
|
|
\tau[B] &= \tau_{i1j0}[level_{base}][comp] \\
|
|
\tau[A] &= \tau_{i0j0}[level_{base}][comp]
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 49
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\tau[level_{base}][comp] &=
|
|
\begin{cases}
|
|
\tau[level_{base}][R], & \text{for}\ comp = 0 \\
|
|
\tau[level_{base}][G], & \text{for}\ comp = 1 \\
|
|
\tau[level_{base}][B], & \text{for}\ comp = 2 \\
|
|
\tau[level_{base}][A], & \text{for}\ comp = 3
|
|
\end{cases}\\
|
|
comp & \,\text{from SPIR-V operand Component}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 50
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\tau[level] &=
|
|
\begin{cases}
|
|
\tau_{ijk}[level], & \text{for 3D image} \\
|
|
\tau_{ij}[level], & \text{for 2D or Cube image} \\
|
|
\tau_{i}[level], & \text{for 1D image}
|
|
\end{cases}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 51
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\tau_{3D}[level] & = (1-\alpha)(1-\beta)(1-\gamma)\tau_{i0j0k0}[level] \\
|
|
& \, + (\alpha)(1-\beta)(1-\gamma)\tau_{i1j0k0}[level] \\
|
|
& \, + (1-\alpha)(\beta)(1-\gamma)\tau_{i0j1k0}[level] \\
|
|
& \, + (\alpha)(\beta)(1-\gamma)\tau_{i1j1k0}[level] \\
|
|
& \, + (1-\alpha)(1-\beta)(\gamma)\tau_{i0j0k1}[level] \\
|
|
& \, + (\alpha)(1-\beta)(\gamma)\tau_{i1j0k1}[level] \\
|
|
& \, + (1-\alpha)(\beta)(\gamma)\tau_{i0j1k1}[level] \\
|
|
& \, + (\alpha)(\beta)(\gamma)\tau_{i1j1k1}[level]
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 52
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\tau_{2D}[level] & = (1-\alpha)(1-\beta)\tau_{i0j0}[level] \\
|
|
& \, + (\alpha)(1-\beta)\tau_{i1j0}[level] \\
|
|
& \, + (1-\alpha)(\beta)\tau_{i0j1}[level] \\
|
|
& \, + (\alpha)(\beta)\tau_{i1j1}[level]
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 53
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\tau_{1D}[level] & = (1-\alpha)\tau_{i0}[level] \\
|
|
& \, + (\alpha)\tau_{i1}[level]
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 54
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\tau[level] &=
|
|
\begin{cases}
|
|
\tau_{3D}[level], & \text{for 3D image} \\
|
|
\tau_{2D}[level], & \text{for 2D or Cube image} \\
|
|
\tau_{1D}[level], & \text{for 1D image}
|
|
\end{cases}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 55
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\tau &=
|
|
\begin{cases}
|
|
\tau[d], & \text{for mip mode BASE or NEAREST} \\
|
|
(1-\delta)\tau[d_{hi}]+\delta\tau[d_{lo}], & \text{for mip mode LINEAR}
|
|
\end{cases}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 56
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\tau_{2Daniso} & =
|
|
\frac{1}{N}\sum_{i=1}^{N}
|
|
{\tau_{2D}\left (
|
|
u \left ( x - \frac{1}{2} + \frac{i}{N+1} , y \right ),
|
|
\left ( v \left (x-\frac{1}{2}+\frac{i}{N+1} \right ), y
|
|
\right )
|
|
\right )},
|
|
& \text{when}\ \rho_{x} > \rho_{y} \\
|
|
\tau_{2Daniso} &=
|
|
\frac{1}{N}\sum_{i=1}^{N}
|
|
{\tau_{2D}\left (
|
|
u \left ( x, y - \frac{1}{2} + \frac{i}{N+1} \right ),
|
|
\left ( v \left (x,y-\frac{1}{2}+\frac{i}{N+1} \right )
|
|
\right )
|
|
\right )},
|
|
& \text{when}\ \rho_{y} \geq \rho_{x}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
== File chapters/vertexpostproc.txt
|
|
|
|
=== latexmath block 57
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
\begin{array}{c}
|
|
-w_c \leq x_c \leq w_c \\
|
|
-w_c \leq y_c \leq w_c \\
|
|
0 \leq z_c \leq w_c
|
|
\end{array}
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 58
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
\left(\begin{array}{c}
|
|
x_c \\
|
|
y_c \\
|
|
z_c \\
|
|
w_c
|
|
\end{array}\right)
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath block 59
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
\left(
|
|
\begin{array}{c}
|
|
x_d \\
|
|
y_d \\
|
|
z_d
|
|
\end{array}
|
|
\right) =
|
|
\left(
|
|
\begin{array}{c}
|
|
\frac{x_c}{w_c} \\
|
|
\frac{y_c}{w_c} \\
|
|
\frac{z_c}{w_c}
|
|
\end{array}
|
|
\right)
|
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
=== latexmath inline 12
|
|
|
|
latexmath:[\frac{k}{2^m - 1}]
|
|
|
|
== File chapters/VK_IMG_filter_cubic/filter_cubic_texel_filtering.txt
|
|
|
|
=== latexmath block 60
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
cinterp(\tau_0, \tau_1, \tau_2, \tau_3, \omega) =
|
|
\frac{1}{2}
|
|
\begin{bmatrix}1 & \omega & \omega^2 & \omega^3 \end{bmatrix}
|
|
\times
|
|
\begin{bmatrix}
|
|
0 & 2 & 0 & 0 \\
|
|
-1 & 0 & 1 & 0 \\
|
|
2 & -5 & 4 & 1 \\
|
|
-1 & 3 & -3 & 1
|
|
\end{bmatrix}
|
|
\times
|
|
\begin{bmatrix}
|
|
\tau_0 \\
|
|
\tau_1 \\
|
|
\tau_2 \\
|
|
\tau_3
|
|
\end{bmatrix}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
=== latexmath block 61
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
\tau[level] &=
|
|
\begin{cases}
|
|
\tau_{2D}[level], & \text{for 2D image} \\
|
|
\tau_{1D}[level], & \text{for 1D image}
|
|
\end{cases}
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
== File chapters/VK_IMG_filter_cubic/filter_cubic_texel_selection.txt
|
|
|
|
=== latexmath block 62
|
|
|
|
[latexmath]
|
|
++++++++++++++++++++++++
|
|
\begin{aligned}
|
|
i_{0} & = \left \lfloor u - \frac{3}{2} \right \rfloor & i_{1} & = i_{0} + 1 & i_{2} & = i_{1} + 1 & i_{3} & = i_{2} + 1 \\[1em]
|
|
j_{0} & = \left \lfloor u - \frac{3}{2} \right \rfloor & j_{1} & = j_{0} + 1 & j_{2} & = j_{1} + 1 & j_{3} & = j_{2} + 1 \\
|
|
\\
|
|
\alpha & = \mathbin{frac} \left ( u - \frac{1}{2} \right ) \\[1em]
|
|
\beta & = \mathbin{frac} \left ( v - \frac{1}{2} \right )
|
|
\end{aligned}
|
|
++++++++++++++++++++++++
|
|
|
|
== File style/writing.txt
|
|
|
|
=== latexmath inline 13
|
|
|
|
latexmath:[[0,1\]]
|
|
|
|
=== latexmath inline 14
|
|
|
|
latexmath:[\frac{1 - \frac{x}{2}}{x - 1}]
|
|
|
|
=== latexmath inline 15
|
|
|
|
latexmath:[\mathbf{c} = t \mathbf{c}_1 + (1-t) \mathbf{c}_2.]
|
|
|
|
=== latexmath block 63
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
\begin{aligned}
|
|
c_{RGB} & =
|
|
\begin{cases}
|
|
\frac{c_{sRGB}}{12.92} & \text{for}\ c_{sRGB} \leq 0.04045 \\
|
|
\left ( \frac{c_{sRGB}+0.055}{1.055} \right )^{2.4} & \text{for}\ c_{sRGB} > 0.04045
|
|
\end{cases}
|
|
\end{aligned}
|
|
+++++++++++++++++++
|
|
|
|
=== latexmath block 64
|
|
|
|
[latexmath]
|
|
+++++++++++++++++++
|
|
V =
|
|
\begin{cases}
|
|
(-1)^S \times 0.0, & E = 0, M = 0 \\
|
|
(-1)^S \times 2^{-14} \times { M \over 2^{10} },
|
|
& E = 0, M \neq 0 \\
|
|
(-1)^S \times 2^{E-15} \times { \left( 1 + { M \over 2^{10} } \right) },
|
|
& 0 < E < 31 \\
|
|
(-1)^S \times Inf, & E = 31, M = 0 \\
|
|
NaN, & E = 31, M \neq 0
|
|
\end{cases}
|
|
+++++++++++++++++++
|