공도's 실버라이트 하기 좋은 날 #8.2, OffsetZ의 비밀
계속해서 퍼스펙티브 3D에 관한 내용이에요. 이게 파고들면 조금 어렵죠. :)
이번 시간에는 LocalOffsetZ, GlobalOffsetZ를 조절했을 때 오브젝트의 크기가 왜 바뀌는지, 어느 정도 비율로 바뀌는지 파고 들어봤어요. 결론적으로 아주 간단한 '산수' 수준으로도 100% 일치하지는 않더라도 만족스러운 근사식을 만들 수 있었어요.
[Offset Z의 원리를 설명하는 그림]
근사식은 다음과 같이 만들 수 있어요.
오브젝트가 화면에 보이는 크기 = (카메라-스크린의 거리 * 오브젝트의 원래 크기) / (카메라-스크린의 거리 - OffsetZ)
여기에서, 미지수인 카메라-스크린의 거리는 999로 추정할 수 있기 때문에 우리는 OffsetZ의 변화에 따라 오브젝트가 화면에 표시되는 크기를 계산할 수 있는 거죠.
카메라-스크린까지의 거리가 왜 999인지는 동영상을 참고하세요 :D
엄밀히 말해서, 이 식은 사실 아주 정확하지는 않아요. 왜냐면 double형의 연산은 기준을 어떻게 잡았냐에 따라 아주 작은 차이가 결과적으로 큰 차이를 만들 수 있기 때문이죠. 그래도 이 정도면 일반적인 연산을 할 때 큰 오차는 없을 거라고 봐요. 또한 세부 오차는 거리를 998.999로 가정한다거나 하는 식으로 조정이 가능해요. (해보면 아시겠지만 999와 998.999도 차이가 꽤 난답니다)
※ 참고로 이 플레이어는 더블 클릭해야 풀스크린으로 떠요 -_-;
화면이 크니까 어지간하면 다운로드 받아서 보세요.
[자료 다운로드]
[WMV 다운로드]
Enjoy MIX09 Video > https://videos.visitmix.com/MIX09/
Get Started > https://silverlight.net/getstarted/silverlight3/default.aspx
Welcome! > https://gongdosoft.com/
Follow me > https://twitter.com/gongdo
I love SPAM but not. > gongdosoft@live.com
영상이 보이지 않으면 이곳을 클릭해서 실버라이트를 설치하세요
* “공도's 실버라이트 하기 좋은 날”은 매주 목요일에 업데이트 됩니다