2011-03-02 3 views
2

Silverlight에서 완벽한 등각 투영 원근법을 얻으려면 어떻게해야합니까?Silverlight의 등각 투영

Silverlight에서 3D 환경을 만들고 싶습니다.이 3D 환경은 등각 투영법으로 만들어야합니다. 평면 투영을 사용하는 경우 그리드를 등각 투영 원근감과 유사하게 만들 수 있지만 그리드 셀이 동일하지 않기 때문에 완전한 등각 투영 투영법이 아닙니다.

http://uwconcept.be/projects/uwconceptcity/grid_base_1.jpg

사람들은 그리드를 따라 "스크롤"할 수 있어야합니다 ; 즉, 전방, 후방, 좌측 및 우측으로 이동한다. 그리드를 통해 비행하는 것으로 볼 수 있지만 항상 올바른 등각 투영 (Isometric) 관점을 유지합니다. 회전은 구현되지 않습니다 (첫 번째 버전에서). 그리고 구현 될지라도 회전은 등각 투영법을 유지하는 것과 마찬가지로 정확히 90 도가됩니다.

편집 : "일반"등각 투영 x, y, z 좌표가 Silverlight에서 원근감을 재현하려고 할 때 적용되지 않습니다. "일반"변환은 다음 위키 백과 문서에 표시됩니다. http://en.wikipedia.org/wiki/File:Wikipedia_isometric_cube_3.jpg

+0

와우, 좋은 질문입니다. 카메라 위치가 정적일까요? – foson

+0

좋은 말, @foson, 내 질문이 업데이트되었습니다. –

답변

1

:-) 아이소 메트릭 3D로 할 수있는 너무 재미가 들어, 오픈 소스 프로젝트 희망 3D API가 있어야합니다. Silverlight 5 베타는 2011 년 상반기에 출시 될 예정입니다 (지금은 어느 날이어야합니다). 최종 릴리즈는 2011 년 말로 예정되어 있습니다.

SL API는 WPF의 3D API와 유사해야한다고 가정합니다. 내 캐주얼 이해에서 OrthographicCamera (WPF에 포함되어 있음)의 올바른 각도로 등각 투영을 만들 수 있습니다.

+0

좋아요. 정보 주셔서 감사합니다 –

1

SL4에서 빌드 된 3D 프로젝션 지원은 사용자에게 적합하지 않을 수 있습니다. 이는 매우 제한적이며 일반적으로 단순한 객체를 회전하는 데 유용합니다.

하지만 당신은 두 가지 옵션이 있습니다 :

  • 는 3D 엔진을 사용하여 등각 투영 3D로 렌더링하도록 설정합니다. 나는 Balder이 예를 들어 이것을 할 수 있다고 생각하지만, 아마도 밖으로 상자.
  • 사전 렌더링 된 스프라이트를 올바른 위치에 그려서 등각 투영 3D를 가짜로 만듭니다. 당신의 "게임 세계"가 아이소 메트릭 3D 퍼스펙티브에 맞게 회전되는 타일 (사각형)로 구성되기를 원한다고 가정합니다. 모든 타일을 올바른 각도로 미리 렌더링하면 위치를 계산하고 원하는 효과를 얻을 수 있습니다. 이 옵션을 사용하면 디스플레이에 어떤 깊이도 표시되지 않지만 멀리있는 타일은 근처의 타일과 동일한 크기가되지만 그다지 어렵지 않습니다.

나는 그 후자를 한번 재미있게하려고 노력했다. 평평한 풍경을 그리는 것은 꽤 쉬웠지만 일단 슬로프를 지원하려면 더 힘들어집니다. 당신이 일을 끝낼 경우

은, 그때 그것을 발표 할 당신이 SL5 기다릴 수 있다면 당신은

+0

정보를 제공해 주셔서 감사합니다. 예, 좋은 기본 레이어를 얻으면 소스를 오픈합니다. 계산으로 위치 된 10,000 개의 타일을 배치해야 할 때 그래픽 성능에 대해 걱정할지라도. –

+0

10.000 타일? 그것은 과도하게 들리지만, 당신이 무엇을하려고하는지 모르겠습니다. 적절한 ISO-3D 엔진이 있어도 계산이 완료되어야합니다. 차이점은 당신이 그것을 볼 수 없다는 것입니다.SL은 많은 하드웨어 가속을 지원하지 않으므로 사용자가하는 일에 상관없이 대부분의 계산이 CPU에 의해 수행되어야합니다. –

+0

그리드가 결국 100x100 타일로 성장할 수 있다는 것을 염두에 두면서 처음부터 견고한 플랫폼을 만들고 싶습니다. 스크린 샷에서 단 하나의 계산이 있었고, * n * n 개의 필드가있는 격자를 만들었고 그 격자는 평면 투영으로 "등각 투영"원점으로 변환되었습니다. –