a to z argumenów d3d_set_projection robisz macierz projekcji, z transformacji zaś macierz widoku modelu, mnożysz je przez siebie i otrzymaną macierz odwracasz i mnożysz przez znormalizowane koordynaty w przestrzeni okna. jako wynik masz macierz [X,Y,Z,W] z której pobierasz sobie poszczególne wartości. jest jeden haczyk. koordynaty okna składają się z X, Y i Z a więc Z jako głębi, czyli musisz wyliczyć to 2 razy. raz dla najbliższej wartości Z okna a drugi raz dla najdalszej i na tym obrębie operować dalej :)
ogółem to CI w GMie zmuli totalnie samymi operacjami na macierzach - wiem z doświadczenia :D