구의 표면을 타일로 매핑 할 때 극 왜곡을 어떻게 처리 할 수 ​​있습니까?


24

깨끗한 직교 그리드에서 위치가 상호 작용하는 방식을 쉽게 처리 할 수 ​​있습니다. 그냥 바닐라 수학입니다. 극이나 무언가를 잘라내려면 구 표면의 기하 구조를 무시해도됩니다. 그러나 나는 극지방이 중요한 게임에 대한 아이디어를 계속 내 놓는다. 지오 코딩 된 ARG 및 글로벌 로그 라이크 및 항목

어쨌든 전 세계에서 같은 크기의 정사각형 타일로 합리적으로 표현할 수있는 정사각형 위치를 원합니다.

이것은 해결 된 문제 여야합니까?

해결책은 무엇입니까?

도착 :

적도에서-제곱 위치가 합리적으로 작다고 가정하면 가장 적도 줄의 북쪽과 남쪽에 하나의 사각형이 있으면 도망 갈 수 있습니다. 그리고 당신은 아마 45도 정도의 차이를 손으로 흔드는 것으로 그것을 벗어날 수 있습니다. 그러나 결국에는 극 방향 원주 행에 더 적은 정사각형이 필요합니다. 행의 길이를 1만큼 줄이고 사각형을 1/2로 오프셋하면 육각형과 같으며 연결을 추적하기 위해 코딩을 수행하는 것이 상대적으로 쉽습니다. 그러나 극에 가까워 질수록 점점 더 극심 해집니다.

큐브 표면에 월드 표면을 투영하는 것은 유혹적입니다. 그러나 이미 사용중인보다 우아한 솔루션이 있어야한다고 생각했습니다.

큐브 작업을 수행 한 경우 (측지선을 통해 추가로 해부하지 않음)면의 중심 또는 3면의 정점에 기둥을 배치하는 것과 관련된 장단점이 있습니까?


1
"square (ish)"의 의미에 대해 자세히 설명해 주시겠습니까? "제곱 (ish)"은 얼마나 번화합니까?
Steve H

답변:


3

나는 당신이 측지선을 찾고 있다고 생각합니다 . 많은 사람들이 큐브로 지구를 근사합니다.

대부분의지도 제작 문제는 다면체 지구에서 사라질 것입니다

Carlos A. Furuti는 입방체로 접히는 지구의 많은지도를 가지고 있습니다.

또한 지구 전체를 하나 또는 두 개의 사각형으로 매핑하는 Peirce quincuncial 투영법에 관심이있을 수 있습니다 .

정 이십 면체 (Dymaxion map; "구를 픽셀 화하는 가장 좋은 방법은 무엇입니까?" )는 왜곡이 약간 적지 만 더 복잡합니다.


9

저는 항상 구형지도가 원환에서 세계를 재생하는 대신 어떤 종류의 규칙적인 다면체를 사용하는 게임을보고 싶었습니다. 이 기술을 다이 맥시 온 맵 이라고 합니다 . (출처 : grunch.net )대체 텍스트         

나는 정 이십 면체를 추천합니다 . 현재 삼각형을 정사각형의 한쪽 가장자리에 맞 춥니 다. 플레이어가 삼각형을 벗어나면 다음 삼각형을 위로 당겨 다시 동일하게 매핑하십시오. 그런 다음 플레이어의 좌표가 새 섹션으로 다시 매핑됩니다. 따라서지도의 각 섹션에는 자체 좌표계가 있습니다. 또한 3 개의 인접한 섹션과 9 개의 세미 인접한 섹션에 대한 배경을 그려야합니다. 사용자가 제대로 수행되면 구현 방법을 결정할 수 있다고 생각하지 않습니다.

여기에 방법이 힘 작업의 예입니다.

물론 이것을 읽은 후에는 고전적인 원환 체지도를 사용할 것입니다. 나는 진정한 다면체 우주를보기 위해 기다리고있을 것입니다.


나는 원환 체를 사용하지 않습니다. Civ 게임처럼 실린더를 사용할 수 있습니다. 그러나 훌륭한 솔루션이 없기 때문에 큐브에 진지하게 기대하고 있습니다. 큐브는 다면체입니다! :)
clweeks

5

측지선 기반을 사용하여 구를 만드는 경우 극점 영역은 정점 간격 측면에서 다른 영역과 다르지 않게 처리되므로 균일 한 uv 매핑이 가능합니다.

대부분의 모델링 앱을 사용하면 측지선 설계를 사용하여 구 프리미티브를 만들 수 있습니다.


문제는이 경우 사각형 대신 다이아몬드를 얻는 것이므로 OP가 원하는 것이 아닙니다.
Kornel Kisielewicz

내가 빠진 것이 아닌 한, 그것은 조정하고 매핑하고 연결하기 쉬운 지역을 제공하지 않습니다 ...
clweeks

측지학은 나에게가는 길처럼 보인다. 규칙적인 세분화를위한 다른 옵션은 생각할 수 없다. 실제로 정사각형 영역이 필요한 경우 다른 타일과 겹치더라도 삼각형 중심을 중심으로 정사각형 영역을 생성 할 수 있습니다. 충분히 큰 구 (및 작은 삼각형)의 경우 정사각형 영역과 인접한 삼각형면 사이의 오프셋은 무시할 수 있습니다. 동일한 좌표계에서 로컬 (즉, 동일한 제곱) 상호 작용을 설명 할 수 있다는 이점을 유지해야합니다.
MrCranky

정말 필요한 경우 인접한 사각형을 줄 수있는 측지선 모양이 있다고 생각합니다.
speeder

당신은 정사각형 대신 다이아몬드를 얻지 만, 그것을 수정하기 위해 변형하기가 상당히 쉬워야합니다. 극이 보장되지 않습니다.
ChrisE

5

정사각형 (또는 직사각형)으로 구를 "매핑"할 수 없으며 모두 "공통"정점에서 결합되도록 할 수 없습니다.

그러나 요청시 "로컬 뷰"를 생성하는 것이 가능합니까? 문제 공간은 질문에 실제로 언급되어 있지 않지만 도시 전망을 원하지만 세계를 회전시킬 수있는 곳에서 일하고 있다면 일시적으로 그리드를 "충분히 평평한"섹션에 매핑 할 수 있습니다. 세계. 그리드의 원점은 당신의 지역 중심이 어디에 있든지 그 지점의 법선은 행성 표면의 법선과 일치합니다.

그런 다음 그리드에서 벗어날 때 요청시 새로운 그리드가 생성됩니다.

OP에 대해서는 작동하지 않을 수도 있지만 일부에는 유용 ​​할 수 있습니다.


4

정점과 입방체 중심 사이의 거리가 원하는 반지름과 같은 입방체를 가져옵니다. 6 개의 쿼드로 구성된 구가 있습니다.

이제 각 단계에서 모든 쿼드를 가져 와서 4로 나눈 다음 새로운 5 개의 정점 (중앙에 하나, 가장자리에 4 개-경고, 공유 됨)을 중심에서 멀리 이동하여 원하는대로 반지름.

아니요,이 방법은 완벽하지는 않지만 적어도 구에 대한 분포는 다소 동일합니다.


3
이 경우 왜곡이 실제로 매우 심각합니다.면 가운데의 사각형은 정사각형에 가깝고 모서리 근처의 사각형은 심하게 왜곡됩니다.
JasonD

@JasonD : 여전히 모든 다이아몬드보다 낫습니다. 다운 보트를 원하면 왜곡이 적은 솔루션을 제안하십시오.
Kornel Kisielewicz

글쎄, 당신은 측지선으로 구를 근사하게 근사 할 수는 있지만 그것이 어떻게 도움이되는지 잘 모르겠습니다.
clweeks

1

dymaxion max를 사용하면 평평한 표면에 삼각형으로 육각형이 배치되지만지도가 실제로 평평하지 않기 때문에 오각형입니다. 플레이어가 특정 부분을 밟을 때 방향을 유지하려면 위치지도를 실제로 저장하는 방법과 분리해야합니다. 건물과 같은 경우에는 직사각형 벡터의 작은 맵을 저장 한 다음 필요한 방향으로 그릴 수 있습니다.

평범한 플레이어가 북동쪽 문에 들어가는 것에 대해 눈을 치지 말고 정문 방향으로 화면을 입력해야한다고 생각하기 때문에 항상 최신 지진이 발생한 것처럼 내부를 항상 보일 필요는 없습니다. 남쪽과 전체 건물은 규칙적인 격자에 있습니다.

건물과 그와 같은 중요한 장소 만 저장하려고한다면 어쨌든 soccerball 패턴에 대한 모든 작업을 완료 한 것입니다. 최종 결과는 월드를 정사각형이 아닌 패턴으로 저장 한 다음 플레이어가있는 모든 그리드에 적용하는 것입니다.

그래도 다른 대안이 있습니다-당신이 그들에게 구의 정확한 표시를 제공하지 않으면, 당신이 그들에게 4 개의 직교 방향 중 북쪽에 가장 가까운 방향을 알려주기 위해 낮은 정밀도의 나침반을 주었을 때, 당신은 도망 갈 수 있습니다 플레이어가 어디를 가든 90도 회전 만하면됩니다. 가정 된 그래픽 수준을 고려하면 출입구를 가리는 고층 빌딩에 대해 걱정할 필요가 없습니다. 극 근처에 있는지 아는 한 주변의 NPC가 북동쪽으로 가라고 지시하거나 실제로 특정 위도와 경도 좌표로 이동하려고 시도하지 않는 한 나침반의 변화에 ​​대해 너무 화 내지 않아야합니다. .


1

당신은지도를 만드는 사람들이 요구되어 있는지 질문 요구하고 시간 :)

지도 프로젝션 을 읽어 보면 도움이 될만한 통찰력과 아이디어를 얻을 수 있습니다. 평평한 2D 평면에서 / 평평한 구의 표면을 나타내는 문제는 사람들이 오랫동안 오랫동안 생각해 왔던 것입니다.

짧은 대답은 할 수 없다는 것입니다. 그렇기 때문에 세계지도를 볼 때 일부 부분이 왜곡되고 일부 부분이 왜곡되지 않습니다. 대부분의지도는 비극성 영역에 관한 것이기 때문에 일반적으로 극입니다.

다른 답변에서 알 수 있듯이 대답은 다른 모양 (예 : 육각형 또는 삼각형)을 사용하거나 사용자의 현재 시점에 맞게지도를 동적으로 생성하는 것입니다.

정사각형 타일은 의심의 여지없이 관리하기 쉽지만 타일링 16 진수 맵을 만드는 것이 그렇게 어렵다고 생각하지 않습니다.

여기 유용한 GameDev.net의 이전 기사가 있습니다. 격자에 등각 및 6 각형 타일을 수행하는 것입니다.

http://www.gamedev.net/reference/articles/article747.asp

인터넷 검색 "16 진 타일링 타일링"은 많은 조회수를 제공하지만 일부는 유용하지 않습니다.


1

하늘에서 움직이는 물체를 추적하고 3D 트랙을 얻기 위해 삼각 측량하기 위해 Sony의 모델 SNC-RX570N에서 여러 PTZ 네트워크 카메라를 작동하고 있습니다. 초기 설정의 측면 중 하나는 무인 "투어"를 정의하여 웨이 포인트를 선택해야합니다. 이러한 프로그래밍 가능한 웨이 포인트는 제한되어 있으며 수평선에서 천정까지 전체 반구 ( "천구")를 덮고 틈새를 남기고 싶습니다.

그래서 나는 "전체 커버리지에 필요한 최소 웨이 포인트는 얼마입니까?"라는 질문을 스스로에게 물었습니다. 나는 실제로 이것을 완전히 파악할 수 없다는 것을 발견했다.

이 카메라에는 끝이없는 팬 (360도)과 0-90 도의 기울기가 있으므로 이론적으로 완벽한 적용 범위를 확보 할 수 있습니다. 컴퓨터 용 카메라 디스플레이는 4 : 3 종횡비입니다. 1 배 줌에서 거친 수평 FOV는 58 도입니다.

어떤 투영법을 선택 하느냐에 따라 문제를 나타내는 두 가지 방법이 있습니다.-메르카토르처럼 직선으로 수평선이 "적도"이고 천정이 "극"으로 360도 이상의 팬을 가로 질러 확장됩니다. -극점은 수평선이 원의 원주이고 천정이 원의 중심입니다.

문제에 접근하는 가장 쉬운 방법은 polar입니다. 원을 수평 FOV 크기의 파이 조각으로 조각 할 수 있으며, 58도 H-FOV로 원 주위에 7 개의 웨이 포인트가 필요하다는 것을 알 수 있습니다. 여태까지는 그런대로 잘됐다. 내부 반경은 단순히 기울기 또는 V-FOV이며 58 도의 3/4입니다. 지금까지는 좋았습니다-원의 가장 바깥 부분을 다루었습니다.

그러나 천정에 가까워 질수록 까다로워집니다. 내 웨이 포인트 중 하나가 정확히 천정이라고 가정하겠습니다. 뷰 사각형을 원 중심 주위의 영역에 어떻게 매핑합니까? 그 모양이 직사각형, 타원, 핀쿠션 또는 무엇입니까? 깔끔한 외부 커버리지와 천정에서 이상한 모양 사이의 중간 비트를 어떻게 채우나요? Flummoxed.

반구의 솔리드 각도는 2 * PI 스테 라디안이며 1 배 줌에서 FOV의 각도는 0.762도이므로 최소 9 개의 테셀레이션이 필요합니다. 대답이 9보다 높다고 생각합니다.


원은 PI ^ 2 rad ^ 2 영역이고 FOV 사각형은 0.75 rad ^ 2 영역입니다. 따라서 순진하게 우리는 13.16 포인트가 필요합니다.이 포인트는 전체 범위를 14 포인트로 반올림해야합니다. 문제는 이제 어떻게 배치 될 것인가입니다.
앤드류

0

전 세계 그리드를 만들고 싶다면 행성을 국가 나 대륙으로 나누고 각각을 중심으로 정사각형 그리드를 만드는 것이 좋습니다. 바다가 이음새를 덮게하십시오.


사실, 내 질문은 "내가 생각하는 것을 실제로 할 수 없기 때문에 어떻게해야합니까?"입니다.
clweeks

아주 잘 편집했습니다.
zaratustra

네, 다른 부분에 의해 추적 된 것 같습니다. 나는 Fuller 's Dymaxion Map을 구현하려고 생각했지만 삼각형 타일 작업은 내가 시작하는 극좌표 문제와 같은 clusterF *와 비슷해 보였습니다. 당신의 제안으로 누군가가 북미에서 북아시아로 항해하고 있고 좌표 문제 (아마도 떠 다니는 기지 또는 무언가를 만들 수 있음)를 솔기로 묶는 방법은 무엇입니까? NA : A5-> A : Z475 타입 연결 테이블이 나오나요?
clweeks

나는 추측한다. 그들이 그렇게 할 수 있다면, 나는 그들에게 보너스 보상을주고 그들이 합리적인 곳으로 갈 때까지 그리드에서 떨어 뜨릴 것입니다.
zaratustra
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.