beautypg.com

Motorola DSP96002 User Manual

Page 636

background image

MOTOROLA

DSP96002 USER’S MANUAL

B-117

B.1.48

Vector Cross Product

The cross product of two vectors is always perpendicular to both of the vectors making this vector useful

for 3D graphics, shading, and illumination. The three dimensional cross product a X b where a and b are

{1 x 3} vectors can be written as the determinant:

i j k

ax ay az

bx by bz

where i, j and k are the unit vectors in the x, y and z directions respectively. Expanding this determinant

yields:

cx = ay bz - az by

cy = az bx - ax bz

cz = ax by - ay bx

where vector c is the cross product of a and b.

Memory Map: X Y

r0

ax .

m0=2 ay .

(mod 3) az .

. bx

r4

. by m0=2

. bz (mod 3)

r1

cx .

cy .

cz .

move #aaddr,r0 ; set up pointers

move #2,m0

move #baddr,r4

move #2,m4

move #caddr,r1

Program ICycles

Words

move x:(r0)+,d6.s y:(r4)-,d7.s ;ax bx 1 1

move x:(r0)+,d6.s y:(r4)-,d7.s ;ay bz 1 1

fmpy.s d6,d7,d3 x:(r0)+,d6.s y:(r4)-,d7.s ;az by 1 1

fmpy.s d6,d7,d2 y:(r4)-,d7.s ; bx 1 1

fmpy d6,d7,d1 fsub.s d2,d3 x:(r0)+,d6.s y:(r4)-,d7.s ;ax bz 1 1

fmpy.s d6,d7,d0 d3.s,x:(r1)+ y:(r4)-,d7.s ;cx by 1 1

fmpy d6,d7,d3 fsub.s d0,d1 x:(r0)+,d6.s y:(r4)-,d7.s ;ay bx 1 1

fmpy.s d6,d7,d2 d1.s,x:(r1)+ ;cy 1 1