메시지 |
---|
chanick
가입: 2001년 8월 7일 올린 글: 4 소속: Redduck
| [GPG 1 글 4.8] | 올려짐: 2002-05-07 16:21
 |
| gpg 545p에 보면 .............................. P0.z = 0.0f; P1.x = -BackClip * ( (float)tan( Angle * 0.5f ) / Aspect ); P1.y = -BackClip * ( (float)tan( Angle * 0.5f ) ); .............................. 이렇게 되어 있는데
여기서 '/ Aspect ' 이게 아니구 * Aspect 입니다.
4개의 절단평면 모두 나누기로 되어있는데 곱하기로 바꾸세염...
그럼 즐프. |
|
위로 | |
 |
류광

가입: 2001년 7월 25일 올린 글: 3569 소속: GPGstudy
타 사이트 ID(?): docbook.kr::류광, indidev.net::류광 |  | 올려짐: 2002-05-08 16:23
 |
| 잘못된 코드로 봐야 할지....
잘 모르겠어서 일단 정오표에는 올리지 않도록 하겠습니다. Aspect에 넣을 값을 높이/너비로 하면 원래 코드가 맞거든요.
그 함수 시작 부분의 주석을 보면 Angle이 수직 시야각이라는 점은 나와 있는데(..위, 아래 사이의 각도 어쩌구..) Aspect가 높이/너비라는 점은 나와 있지 않네요... 어쨌든 그 함수는 Angle이 수직 시야각이고 Aspect가 높이/너비일 때 유효합니다....
그나저나 D3D API에서는 시야각과 종횡비를 어떻게 잡는지? OpenGL의 경우 gluPerspective는 시야각은 수직 시야각, 종횡비는 너비/높이인데요... 어쨌든 사용하는 API에 맞게 편한 방식을 택하면 될 것 같습니다..
|
|
위로 | |
 |
chanick
가입: 2001년 8월 7일 올린 글: 4 소속: Redduck
|  | 올려짐: 2002-05-09 01:45
 |
| ^^ DirectX에서는 종횡비를 너비 / 높이로 구하고있습니다. 님 말씀대로 AspectRatio를 높이 /너비로 했을경우 역시 문제가 생깁니다.
D3DXMatrixPerspectiveFovLH 이 함수를 호출시 높이/너비 값을 넘겨주면 화면이 아래위로 일그러지는 현상이 발생합니다.
즉 어떻게 계산을 하더라도 문제가 생긴다는 예기죠. 일반적으로 절단평면의 X값이 Y값보다는 크기때문에 aspectratio를 곱해줘야 합니다.
반대로 y값에다가 aspectratio를 나누어준다고해도 문제는 해결되지않습니다.
[ 이 게시물 는(은) 수정됨 by : chanick 수정 시간: 2002-05-09 01:50 ] |
|
위로 | |
 |
Gamza

가입: 2001년 10월 11일 올린 글: 610
|  | 올려짐: 2002-05-09 09:47
 |
| 혹시나 저자가 종횡비를 높이/너비 로 정의한 부분이 있는지 찾아보았는데...
책/부록CD...어디서도 종횡비가 어떤것인지 알수 있는 방법이 없군요.
저자는 종횡비를 높이/너비 로 간주했다고 밖에 볼수 없겠네요.
하지만....소스를 사용하려면 chanick님 말씀대로 수정해서 사용하는것이
바람직하겠죠. (일반적인 것을 사용하는것이...)
감자 성수올림...@~
[ 이 게시물 는(은) 수정됨 by : Gamza 수정 시간: 2002-05-09 09:49 ] |
|