
AMD FidelityFX™ Parallel Sort
AMD FidelityFX Parallel Sort makes sorting data on the GPU quicker, and easier. Use our SM6.0 compute shaders to get your data in order.
Fixed function pipeline of DirectX® 9 and previous versions use a pre-multiplication left-handed coordinate system.
Quaternion defined Q:a+bi+cj+dk=(r,v)=(Qw,Qx,Qy,Qz)
1−2(Qy2+Qz2)2(QxQy−QzQw)2(QxQz+QyQw)02(QxQy+QzQw)1−2(Qx2+Qz2)2(QyQz−QxQw)02(QxQz−QyQw)2(QyQz+QxQw)1−2(Qx2+Qy2)00001Axis angle defined U:cos(θ)+sin(θ)(u^x,u^y,u^z)
where :∣∣u^∣∣=1
(1−c)u^x2+c(1−c)u^xu^y−su^z(1−c)u^xu^z+su^y0(1−c)u^xu^y+su^z(1−c)u^y2+c(1−c)u^yu^z−su^x0(1−c)u^xu^z−su^y(1−c)u^yu^z+su^x(1−c)u^z2+c00001Plane defined P:ax+by+cz+d=0
1−2a2−2ab−2ac−2ad−2ab1−2b2−2bc−2bd−2ac−2bc1−2c2−2cd0001l - left coordinate of the orthographic frustum
r - right coordinate of the orthographic frustum
b - bottom coordinate of the orthographic frustum
t - top coordinate of the orthographic frustum
n - distance to the near plane of the orthographic frustum
f - distance to the far plane of the orthographic frustum
w - width of the near plane of the orthographic frustum
h - height of the near plane of the orthographic frustum
View Space | Left-handed NDC Space | Right-handed NDC Space | |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
View Space | Left-handed NDC Space | Right-handed NDC Space | |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
l - left coordinate of the perspective frustum
r - right coordinate of the perspective frustum
b - bottom coordinate of the perspective frustum
t - top coordinate of the perspective frustum
n - distance to the near plane of the perspective frustum
f - distance to the far plane of the perspective frustum
w - width of the near plane of the perspective frustum
h - height of the near plane of the perspective frustum
α - angle between of left and right frustum planes of the perspective frustum
β - angle between of top and bottom frustum planes of the perspective frustum
View Space | Left-handed NDC Space | Right-handed NDC Space | |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
View Space | Left-handed NDC Space | Right-handed NDC Space | |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
View Space | Left-handed NDC Space | Right-handed NDC Space | |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
View Space | Left-handed NDC Space | Right-handed NDC Space | |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
View Space | Left-handed NDC Space | Right-handed NDC Space | |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
View Space | Left-handed NDC Space | Right-handed NDC Space | |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
View Space | Left-handed NDC Space | Right-handed NDC Space | |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
View Space | Left-handed NDC Space | Right-handed NDC Space | |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
l - left coordinate of the orthographic frustum
r - right coordinate of the orthographic frustum
b - bottom coordinate of the orthographic frustum
t - top coordinate of the orthographic frustum
n - distance to the near plane of the orthographic frustum
f - distance to the far plane of the orthographic frustum
w - width of the near plane of the orthographic frustum
h - height of the near plane of the orthographic frustum
jx - jitter in NDC space in the x-direction
jy - jitter in NDC space in the y-direction
l - left coordinate of the perspective frustum
r - right coordinate of the perspective frustum
b - bottom coordinate of the perspective frustum
t - top coordinate of the perspective frustum
n - distance to the near plane of the perspective frustum
f - distance to the far plane of the perspective frustum
w - width of the near plane of the perspective frustum
h - height of the near plane of the perspective frustum
jx - jitter in NDC space in the x-direction
jy - jitter in NDC space in the y-direction
α - angle between of left and right frustum planes of the perspective frustum
β - angle between of top and bottom frustum planes of the perspective frustum
at - position of the point at which the camera will be pointing at
eye - position of the camera
up - “Up” direction of the camera
C - “Forward” vector
A - “Right” vector
B - “Up” vector
C=∥at−eye∥at−eye A=up×C B=C×A
AxAyAz−(A⋅eye)BxByBz−(B⋅eye)CxCyCz−(C⋅eye)0001dir - desired direction of the camera
up - “Up” direction of the camera
C - “Forward” vector
A - “Right” vector
B - “Up” vector
C=dir A=up×C B=C×A
AxAyAz−(A⋅eye)BxByBz−(B⋅eye)CxCyCz−(C⋅eye)0001Plane defined P:Ax+By+Cz+D=0
Light position L:(Lx,Ly,Lz)
where w=0 for direction light
w=1 for point light
L=(Lx,Ly,Lx,w) P=(A,B,C,D) k=P⋅L
k−PxLx−PxLy−PxLz−PxLw−PyLxk−PyLy−PyLz−PyLw−PzLx−PzLyk−PzLz−PzLw−PdLx−PdLy−PdLzk−PdLw