1. 두 벡터의 내적한 결과를 곰곰히 생각해 보시기 바랍니다. 어떨때 1이 되고, 어떨때 0이 되어 재질에 영향을 미치는지를...
2. 쉐이딩 기법(고라드 쉐이딩)에서 쓰입니다. 폴리곤을 구성하는 각 꼭지점들의 법선을 보간한 결과치로 대략적인 픽셀단위의 디퓨즈 컬러를 계산해냅니다. 한마디로 그럴듯한 사기입니다.
3. Directx 예제의 Declaration 부분을 참고해보세요.
그냥 예제를 보며 따라하시기보다는 그래픽스 이론이 겸해있는 책을 보시며 공부하시는 것을 권합니다. 이론을 알면 Dx 나 Ogl 은 그냥 쓰기편하게 해주는 도구에 불과해집니다..
2005.07.23 21:45:44 (*.254.16.208)
suma
3D 그래픽스에서 법선이란 것은 면이 바라보는 방향을 가리키는 벡터를 의미합니다.
정점법선의 경우 그 정점이 면은 아니지만 면이라고 가정할 경우 바라보게 되는 방향을 표시한것 이죠. 이런 법선이 왜 필요한가 하면,
면이 바라보는 방향과, 광원에서 면으로 빛을 쏘는 방향의 각 차이에 따라 빛의 강도를 계산해야하기 때문입니다. 각차이가 작으면 밝게, 크면 어둡게 되겠죠..
그리고 정점마다 법선을 가지는 이유는 윗분 말씀처럼 정점사이의 픽셀이 정점들의 법선을 보간한 결과의 법선으로 계산되기 때문입니다.
그리고 법선은 일반적으로 정점 포맷에 들어가죠. 인덱스버퍼는 정점을 가리키는 색인배열일뿐이라 생각합니다.
법선만을 저장한 정점버퍼를 따로 만드는 것이 아니라면 특별히 따로 지정하지 않아도 되겠죠.
2005.07.23 22:32:59 (*.106.93.80)
subhill
혹 있으실지 모르지만 책 하나 소개 시켜 드릴께요..
Real-Time Rendering 2nd
원리중심으로 잘 설명 되어 있습니다..
2005.07.25 01:46:12 (*.162.96.35)
nice102
1. 평면의 밝기가 변합니다.
2. 안해줘도 됩니다. 지정해주면 평면의 밝기를 조절할 수 있습니다.
3. 인덱스 버퍼를 사용할 때 법선은 지정할 필요도 없고 할 수도 없습니다. 해당 인덱스의 버텍스에 법선이 지정되어 있는가 안되어 있는가에 달려있습니다.
그리고 광원(이라고 쓰고 light라고 읽겠습니다)과 관련하여 꼭 법선을 지정해줄 필요는 없습니다. 라이트맵, 노멀맵 같은 멀티텍스쳐링하는 경우도 있고 그냥 ambient같은 것도 있으니까요. 물론 직사광의 경우에는 반드시 필요합니다. 아마도... ㅡ.,ㅡ;;;
2005.07.25 09:21:53 (*.183.177.145)
suma
정점에 법선정보를 넣지않고 노멀맵 등을 써서 픽셀당 법선으로 계산할 수 도 있겠지만,
법선없이 조명을 계산한다는 것은 불가능합니다.
라이트 맵이나 평면의 밝기를 지정해두는 방법은 정적 조명에 국한한 이야기라고 생각합니다.
그리고 그건 실시간 조명 계산이 아니죠. 광원이 있는 것처럼 꾸민 것일 뿐...속도 문제로 많이 쓰입니다만,
조명에 관한 공부를 하시는 거라면 계산해서 출력해보시는게 맞을듯 합니다.
2005.07.25 11:58:18 (*.51.69.68)
게임 초보
//흐흐님 2번에서 실수 하셨네요. 법선을 보간하는 것은 고러드 쉐이딩이 아니라 퐁쉐이딩이네요. 초보자를 바른 길로 이끕시다~
//nice102님 2번에서 적절한 답변은 아니라고 생각하는 데요.
라이트맵을 사용하는 것은 조명을 사용하지 않아도 되지만 노말맵은 그 자체가 수많은 법선으로 구성되어 있으니 그것이 폴리곤 표면에 지정되어 있다고 봐야겠고
라이트가 연산에 사용됩니다. 오해가 있을 수 있는 답변입니다. 초보자를 바른 길로 이끕시다~
2005.07.26 00:14:37 (*.254.16.208)
suma
퐁세이딩은 반영반사 모델을 말하는거 아닌가요?
아 그러고보니 윗 답변에서 제가 법선을 보간했다고 했는데(헛 실수 ㅡ,.ㅡ) 그게 아니고,
정점에서의 법선을 가지고 계산한 결과 값(색)을 보간한 것이 고라우드 세이딩이라고 알고 있습니다.
2. 쉐이딩 기법(고라드 쉐이딩)에서 쓰입니다. 폴리곤을 구성하는 각 꼭지점들의 법선을 보간한 결과치로 대략적인 픽셀단위의 디퓨즈 컬러를 계산해냅니다. 한마디로 그럴듯한 사기입니다.
3. Directx 예제의 Declaration 부분을 참고해보세요.
그냥 예제를 보며 따라하시기보다는 그래픽스 이론이 겸해있는 책을 보시며 공부하시는 것을 권합니다. 이론을 알면 Dx 나 Ogl 은 그냥 쓰기편하게 해주는 도구에 불과해집니다..