강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của scottku3881
scottku3881

câu hỏi đã được viết

Toán học trò chơi làm nền tảng cho công cụ trò chơi

원근투영 절두체에 관해서 질문 드려도 괜찮을까요?

Đã giải quyết

Viết

·

562

1

현재 GetClientRect()를 활용하여 얻은 MFC 창의 width와 height가 각각 1420 / 653의 값을 가지고 있는데요.
 
절두체 컬링에 대한 그림을 보면 거의 정사각뿔의 절두체들로 이루어져 있습니다. 하지만 원근투영행렬을 생각해봤을 때
 
x의 값에 (초점거리) / (종횡비)를 곱해주는 부분이 있는데, 근평면을 z=-1, 원평면을 z = -300, 시야각을 90도라 하면
 
아래의 그림과 같이 컬링을 진행할 때 (1, 1, -1) ~ (300, 300, -300) 부분의 절두체가 아닌 실질적으로 빨간색 선과 점선으로 이루어진 부분을
 
절두체로 보고 컬링을 해야하는게 아닌가 싶어 질문 드립니다.
 
코딩하다보니 절두체를 검은 선 부분과 같이 잡고 컬링을 진행하면 화면 양 옆 부분이 텅 비어버리게 되어서 궁금증이 생겼습니다.
게임수학

Câu trả lời 2

1

ideugu님의 프로필 이미지
ideugu
Người chia sẻ kiến thức

네 종횡비 적용시킨 평면의 방정식을 만들어주시면 될 것 같아요. 책에는 (종횡비가 적용된) 원근투영행렬을 활용해서 절두체를 구성하는 6개의 평면 방정식을 만드는 예제를 수록했는데, 영상 강좌에서도 한번 추가해보겠습니다. 

  • 당분간은 깃허브 소스를 참고해보세요. 
  • https://github.com/onlybooks/gamemath/blob/13-2c/Source/Player/SoftRenderer3D.cpp 

 

 

scottku3881님의 프로필 이미지
scottku3881
Người đặt câu hỏi

빠른 답변 감사합니다!

0

scottku3881님의 프로필 이미지
scottku3881
Người đặt câu hỏi

y축에는 나누는부분이 없으니 빨간 사각형의 높이 = 검은 정사각형의 높이여야 좀 더 제 의도랑 맞을 것 같습니다. 감안하고 봐주세요 ㅎㅎ

Hình ảnh hồ sơ của scottku3881
scottku3881

câu hỏi đã được viết

Đặt câu hỏi