FVF관련해 질문있습니다.

2D, 3D, 다각형, 픽셀 등 게임의 그래픽 프로그래밍에 관한 포럼입니다.

Moderator: 류광

Locked
비회원

FVF관련해 질문있습니다.

Post by 비회원 »

3D 공부를하고있는 초보인데
공부하다가 궁금한점이 있어서 글을 남깁니다.
정점형식부분에서
D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_NORMAL | D3DFVF_TEX1
좌표, 컬러값, 노멀, 텍스쳐
이렇게 4가지를 사용하려 하는데
D3DFVF_DIFFUSE 와
D3DFVF_NORMAL을 같이쓰니 잘못된 색이 입혀 지더군요.

구조체형식 밑에처럼 제대로 했습니다.
D3DXVECTOR3 p;
DWORD d;
D3DXVECTOR3 n;
FLOAT u, v;

이 2가지를 함께 쓸 수 없는지 하시는분 있으면 조언 좀 부탁드립니다.
감사합니다.
yundi
Posts: 18
Joined: 2004-11-11 11:51

Post by yundi »

비슷한 주제로 올라왔었던 글이 있으니 참고하시면 좋을것같습니다.

http://gpgstudy.com/forum/viewtopic.php?t=4027

...간략히 요점만 정리하자면,

FVF 를 이용할때는 버텍스 데이터의 순서가 정해져있습니다.

diffuse 의 경우 normal 의 뒤에 와야되는데 질문하신 경우에서는 앞에 와서 문제가 된 듯 하네요.

구조체상에서 diffuse 와 normal 데이터의 위치를 바꿔주시면 해결될듯합니다.
seeper
Posts: 1483
Joined: 2003-06-06 23:19
Contact:

Post by seeper »

D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_NORMAL | D3DFVF_TEX1
는 순서를 바꿔도 결과 값은 전혀 변하지 않습니다.
( D3D 문제가 아니라 C언어에서 '|' 가 원래 그런거죠. )
http://gpgstudy.com/forum/viewtopic.php?t=6384#27638

따라서 컴파일러가 잡아주는 문제가 아니므로...
순서에 맞게 써주는 습관이 중요합니다.
seeper0 (a) gmail.com [email주소 무단수집거부]
Locked