2014-02-12 7 views
0

안녕하세요 여러분!AGAL - Optcode NRM - 크기 1로 벡터 정규화 - 왜 사용됩니까?

내가 이해하려고 노력하고 코드의 샘플이 : 나는 대부분의 작업을 상상할 수는 없지만

// fragment 
tex ft0, v0, fs0 <2d,repeat,linear,miplinear> 
nrm ft1.xyz, v1 
nrm ft2.xyz, v2 
nrm ft3.xyz, v3 
dp3 ft5.x, ft1.xyz, ft2.xyz 
max ft5.x, ft5.x, fc0.x 
add ft5, fc1, ft5.x 
mul ft0, ft0, ft5 
mov oc, ft0 

(나는이 프로그램의 의미를 understanf하기 위해 종이에 모든 계산을하려고를 - 나는 추측 가능)하지만 NRM 옵 코드는 대부분 나를 혼란스럽게합니다. 나는 왜 우리가 그것을하는지 이해할 수 없다. 모든 벡터가 0,0,0에서부터 좌표까지의 길이를 가졌음을 발견했습니다. 정규화 된 벡터의 길이는 1입니다. 어떻게 계산에 도움이됩니까? 미리 감사드립니다.

답변

1

정규화 된 벡터는 두 벡터 사이의 내적을 계산하는 데 유용합니다. 예를 들어, 모형의 얼굴 (얼굴에 90도를 가리키는 벡터)의 '정상'이 정규화되지 않은 경우, 다른 벡터로 제품에 점을 찍으면 매우 이상한 결과를 얻게됩니다.

+0

정말 고마워요! 그것은 나를 도와 준다! 나는 점 제품이 무엇인지 명확히 이해하지 못한다. 미안 해요 내 바보 같은 질문이라면 ... – user3261305

+1

두 벡터 사이의 내적은 어떻게 평행인지를 측정합니다. 단일 숫자이며 결과는 -1에서 1 사이의 범위에 있습니다. 두 벡터가 같은 방향을 가리키는 경우 해당 벡터의 내적은 1입니다. 두 벡터가 서로 90도 (수직) 인 경우 점 제품이 0이고 반대 방향을 가리키는 경우 결과는 -1입니다. 그래서 효과적으로 두 벡터의 내적은 그것들 사이의 각의 코사인입니다. 그것은 반사를 플로팅하고 (AS에서) 물리학을 계산하는 데 매우 유용 할 수 있습니다. – moosefetcher

+0

감사합니다. 도트 연산은 다음과 같이 나타날 수 있습니다. nrm ft1.xyz, v1 nrm ft2.xyz, v2 nrm ft3.xyz, v3 dp3 ft5.x, ft1.xyz, ft2.xyz 첫 번째 두 줄은 벡터를 정규화하고 마지막 하나는 내적을 계산합니까? – user3261305