2010-05-31 3 views
0

누구든지 ddx 및 ddy 값이 AABB 광선 교차 알고리즘에서 무엇을하는지 알고 있습니까? 다음 사이트 http://www.blitzbasic.com/codearcs/codearcs.php?code=1029 (아래 표시)에서 가져 왔습니다.이 AABB 레이 교차 알고리즘에서 ddx 및 ddy 값은 무엇을합니까?

Local txmin#,txmax#,tymin#,tymax# 

// rox, rdx are the ray origin on the x axis, and ray delta on the x axis ... y-axis is roy and rdy 

Local ddx# =1.0/(rox-rdx) 
Local ddy# =1.0/(roy-rdy) 

If ddx >= 0 
    txmin = (bminx - rox) * ddx 
    txmax = (bmaxx - rox) * ddx 
Else 
    txmin = (bmaxx - rox) * ddx 
    txmax = (bminx - rox) * ddx 
EndIf 

If ddy >= 0 
    tymin = (bminy - roy) * ddy 
    tymax = (bmaxy - roy) * ddy 
Else 
    tymin = (bmaxy - roy) * ddy 
    tymax = (bminy - roy) * ddy 
EndIf 

If ((txmin > tymax) Or (tymin > txmax)) Return 0 

If (tymin > txmin) txmin = tymin 
If (tymax < txmax) txmax = tymax 

Local tzmin#,tzmax# 
Local ddz# =1.0/(roz-rdz) 

If ddz >= 0 
    tzmin = (bminz - roz) * ddz 
    tzmax = (bmaxz - roz) * ddz 
Else 
    tzmin = (bmaxz - roz) * ddz 
    tzmax = (bminz - roz) * ddz 
EndIf 

If (txmin > tzmax) Or (tzmin > txmax) Return 0 

Return 1 
+0

URL이 불완전합니다. 그것을 수정하십시오 – kikito

+0

고정 URL; Google 검색으로 찾기가 그렇게 어렵지 않았습니다. – Ricket

답변

0

(rox-rdx, roy-rdy)은 대상 지점에서부터 광선의 원점까지의 벡터입니다. ddx와 ddy는이 두 좌표의 역입니다.

반전은 함수의 나머지 부분에서 나눗셈 대신에 곱셈 (그 반전에 의한)을 사용해야 만 사전 계산으로 사용되었습니다. 컴퓨터는 나누기보다 빠르게 곱셈을 계산합니다.