TransformSprite() Z-Depth Basics
Posted: Thu Aug 25, 2016 10:11 pm
This is just a simple explanation of the Z-Depth parameter for the TransformSprite() function. Hopefully this shall give someone basic understanding of this parameter. If you have more than two sides with different lengths or continuously moving XY values, it will take a higher mathematical skill than explained here.
The Z-Depth values fix irregular displayed sprites from looking distorted. If you remove the optional Z-Depth values from the TransformSprite() examples below, you will understand their purpose.
As you can see. The shortest side is divided by the longer/opposing side. The divided value is then used as the Z-Depth for the short side. The remaining two sides are of the same length and we need not worry about.
Currently Z-Depth only works in DirectX and not in OpenGL. So Windows only for now.
The Z-Depth values fix irregular displayed sprites from looking distorted. If you remove the optional Z-Depth values from the TransformSprite() examples below, you will understand their purpose.
As you can see. The shortest side is divided by the longer/opposing side. The divided value is then used as the Z-Depth for the short side. The remaining two sides are of the same length and we need not worry about.
Currently Z-Depth only works in DirectX and not in OpenGL. So Windows only for now.
Code: Select all
TransformSprite(0,0,0, 128,32,2, 128,96,2, 0,128,0)
; X = 0, Y = 0, Z = 0 ____
; | ____
; | ____ X = 128, Y = 32, Z = 2
; 1 | /|
; 2 | / | 6 ; 128 / 64 = 2
; 8 | / | 4
; | / |
; | / ____ X = 128, Y = 96, Z = 2
; |/ ____
; ____
; X = 0, Y = 128, Z = 0
TransformSprite(0,0,0, 128,16,1.6, 128,96,1.6, 0,128,0)
; X = 0, Y = 0, Z = 0 ______
; | ______ X = 128, Y = 16, Z = 1.6
; | |
; 1 | / |
; 2 | / | 8 ; 128 / 80 = 1.6
; 8 | / | 0
; | / |
; | / ____ X = 128, Y = 96, Z = 1.6
; | ____
; ____
; X = 0, Y = 128, Z = 0
TransformSprite(224,0,8, 288,0,8, 512,512,0, 0,512,0)
; 64
; X = 224, Y = 0, Z = 8 ____ X = 288, Y = 0, Z = 8
; / /\
; / \
; / / \
; / \ ; 512 / 64 = 8
; / / \
; / \
; __________________
; X = 0, Y = 512, Z = 0 512 X = 512, Y = 512, Z = 0