[GPG 4 글 5.1] 소수점 viewport를 어떻게 설정하나요?

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

비회원

소수점 viewport를 어떻게 설정하나요?

Post by 비회원 »

Gems4권 5.1의 포스터 품질 샷을 보고 있습니다.

전체적인 소스가 없어서, 어차피 구현해야 하는 상황인데,

viewport를 픽셀안에서 움직여서 찍으라고 하는데.

Viewport설정이 int로 되어 있는데, 어떻게 소수점으로 옮기나요?

--------------------------------------------------------------------

또한가지 궁금한점은,
200x200 이미지를 만들려고 할때, 픽셀단위로 움직이면,

전체적으로 이미지가,
201 x201 의 백데이터가 생기는데,
이걸 안티알리싱해서 200x200안에 넣는것이 맞나요?

-------------------------------------------------------------------

마지막으로 궁금한것이.
이렇게 해서 이미지를 만드는것과,

스크린샷 1장을 그냥, 이미지처리 공정으로 안티알리아싱먹여서 크게 하는것과
개인적으로 차이가 없을것 같은데...
좀 이해가 안가네요.
oranke
Posts: 244
Joined: 2002-05-09 09:00

Post by oranke »

일반적인 게임화면을 1024*768 이라고 할 때,
600DPI 프린터로 이걸 자기 해상도로 찍어주면 1.7*1.3 인치,
그러니까 4.3 * 3.2 센티미터짜리 작은 이미지밖에 안됩니다.
광고지에 쓰기에는 참 안습인 쪼가리가 되는거죠.

A4 용지만하게, 그러니까 29.7 * 21 센치짜리 종이에 찍을 때를 생각하면
대충 계산해봐도 7015 * 4960 픽셀 정도의 이미지가 필요한데...

GPG의 글은 이런 경우 백버퍼를 크게 잡아 이 문제를 해결하는 것 보다
프로젝션 행렬을 아홉개로 쪼개서 랜더링하는 방법을 제시하고 있습니다.

저희 경우는 맵툴에 이런 기능을 넣어서 고해상도 이미지를 출력하게 했습죠.
기존에 프로젝션 행렬을 계산하는 카메라 로직을 가지고 계시다면
별 어려움없이 책의 코드를 이식할 수 있으실 꺼에요.

개인적으로 구트리와 더불어 가장 도움을 많이 받았던 주제였습니다.
비회원

멀티 프로젝션은 이미 구현했습니다.

Post by 비회원 »

프로젝션을 여러개로 나눠서 하는것은 이미구현해서 사용하고 있는데,

Gems4에 나온 주제는 이것과 다른 viewport를 여러번 겹쳐서 해상도를 높이는 주제 입니다.

이부분을 도입하려고 하는데,

위에서 질문한 내용이 궁금해서 질문 드린겁니다.
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

그 글 후반부의 뷰포트 설정은 카메라 자체를 미세하게 움직에는 것을 말하는 것 같습니다.

예를 들어 1m짜리 수평선이 10개의 픽셀들로 렌더링되는 장면(1픽셀 = 10cm)을 20픽셀로 확대한다고 합시다.

글의 전반부에서, 그리고 GPG 2:4.7(오랑캐꽃님이 언급하신 글이 이것인 듯) 말하는 방법은 수평선의 왼쪽 50cm를 10개의 픽셀로, 오른쪽 50cm를 10개의 픽셀로 렌더링해서 둘을 잇는 것이고요. 후반부에서 말하는 것은 수평선이 5cm(반 픽셀)만 이동하도록 카메라를 옮겨서 장면을 한 번 더 찍는 것입니다. 그렇게 얻은 10개의 픽셀들을 원래의 픽셀10개 사이사이에 끼워 넣어서 픽셀 20개를 만듭니다...

... 라고 이해하고 번역했었습니다.

구체적인 공식이나 수치를 물으신 거라면.... 다른 분께 넘깁니다;;;;
oranke
Posts: 244
Joined: 2002-05-09 09:00

Post by oranke »

에고... 챕터를 제대로 확인하지 않고 답글을 달았네요...
너그러이 용서를~~~ ^^*
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

에고... 저도 지금 다시 책을 보니 이미 책에 있는 내용을 어설프게 옮겼을 뿐이었습니다.... 저도 용서를 ~~
(제 답글에서 전반부 => 초반부 또는 도입부로 고쳐 읽으시길. 크게 나누어 찍는 것은 단지 처음에 언급만 되어 있을 뿐이었습니다...)

원래 질문으로 돌아가서... 핵심은 "(투영 행렬을 변경하는 대신 표준적인 SetViewport 명령을 사용한다)"인거죠? 원서에도 그렇게 되어 있긴 합니다. 책에 언급된 SetViewport가 D3D의 SetViewport라면 확실히 좀 이상합니다... 혹시 원서 정오표가 있는지 살펴보겠습니다.
Post Reply