3D 지형 편집기를 만들 때 어디서부터 시작해야합니까? [닫은]


22

지형을 높이고 낮추고 부드럽게하고 질감을 줄 수있는 간단한 도구를 구축 (시작)하려고합니다.

지형 편집기를 만들기 위해해야 ​​할 일은 무엇입니까?

그리고 주제에 관한 유용한 자료가 있습니까?

예, 3D 지형 편집기에 관심이 있다는 점을 언급하지 않았습니다.

답변:


24

'클래식'3D 지형 편집기의 단계는 다음과 같습니다.

메쉬를 생성합니다 (예 : 정사각형 격자, 두 정사각형으로 구성된 모든 정사각형). 모든 정점은 삼각형간에 공유되므로 교차 당 하나의 법선 만 있습니다. 여기에 이미지 설명을 입력하십시오

이것은 3DMesh로 만들어지고 프로그램에서 렌더링되어야합니다.

그리드의 부분을 올리거나 내리는 (작고 더 큰) 도구를 만드십시오 (마우스 커서의 위치를 ​​마우스 커서로 계산하고 메시 정점을 수정해야하지만 위아래 만 수정해야합니다).

1024x1024x4 이상과 같은 큰 텍스처를 만들고 splat-map이라고하는 텍스처로 만듭니다. 여기에 이미지 설명을 입력하십시오

(예를 들어 분홍색이 아닌 R, G, B OR Alpha로) 페인트하고 그 못생긴 기본 색상 (빨강, 파랑, 녹색, 알파)을 대체하는 텍스처를 선택할 수 있도록하십시오.

셰이더 (생성해야 할)는 멋진 텍스처 (돌, 잔디 등)를 스 플랫 맵 (추악한 것)의 강도와 곱한 다음 전체를 혼합하여 예를 들어 다음과 같이 2 가지 색상 만 사용) : 여기에 이미지 설명을 입력하십시오

큰 이미지 때문에 죄송합니다. 직장에서 이것을 함께 채찍질했습니다 ...


아, 이것은 조금 더 명확 해졌습니다. 이론적으로 3D 메쉬 후에는 단순히 수직 위치 변경 (위 / 아래)과이 예제에서의 텍스처링이 "스 플랫 맵"방식을 수행 한 후 셰이더가 "3D"지형과 유사합니까?
joltmode

1
3D 메쉬에 적합합니다. 셰이더는 메시 (버텍스 셰이더)와 특별한 작업을 수행하지 않습니다. 큰 작업은 조각 셰이더 ( "픽셀 셰이더")에서 이루어집니다. 여기서 스 플랫 맵에서 텍셀 조회는 잔디, 석재 등 최종 픽셀의 양을 나타냅니다. 얻을 것입니다 (물론 돌과 같은 '기본'질감을 가질 수 있습니다 (예 : 항상 100 %이며 다른 질감이 그 위에 뿌려집니다)).
Valmond

6

첫 번째는 지형의 데이터 구조와 편집기에서 원하는 것을 명확하게하는 것입니다. 메시입니까? 높이 배열? 마인 크래프트 스타일 복셀 시스템? 나무 나 건물과 같은 메시 지형 피처를 추가 할 수 있어야합니까? 수동, 자동 또는 둘 다? 나는 계속할 수 있지만, 당신은 아이디어를 얻습니다.

기본 지형 편집기는 작성하기 어렵지 않지만 세부 사항은 제작중인 게임 및 제작하려는 지형 유형에 따라 크게 다릅니다.


메쉬 / 배열 및 높이 / 복셀 등은 관련 데이터를 저장하는 방법 일뿐입니다.이 데이터를 채우는 도구를 작성하는 방법에 더 관심이있었습니다. 실제로 지형 편집기가 "장면 뒤"에 어떻게 보이는지 전혀 모르겠습니다. 나는 그것을 리버브 엔지니어링 할 수 있지만, 내 방식으로 만 따라야 할 몇 가지 지침이 있습니다 ...
joltmode

2
-1. 이것은 나에게 많은 답변처럼 보이지 않습니다. 의견으로 더 적합한 몇 가지 질문을하고 있습니다.
bummzack

5

이것은 대부분 Valmond의 답변에 대한 후속 조치이지만 의견으로 추가하기에는 부족하지 않습니다.

기본 편집기를 만들면 GPU에서 전체적으로 하이트 맵을 생성하여 실험 해 볼 수 있습니다. 이것은 완전히 선택 사항이지만 끊임없이 변화하는 지형을 위해 GPU로 작업을 오프로드하는 좋은 방법입니다. Valmond는 이미 픽셀 쉐이더에서 수행되는 텍스처 스플래 팅에 대해 언급했지만 그리드에서 정점을 올리거나 내리기 위해 텍스처 조회를 사용하여 버텍스 쉐이더도 사용할 수 있습니다. 버텍스 쉐이더로 이것을 달성하는 방법에 대한 튜토리얼 이 있습니다. 셰이더가 아닌 것은 C # 및 XNA에 따라 다르지만 중요한 것은 셰이더 코드에 있습니다.

이 경우 CPU 측의 코드는 메모리에 저장된 그레이 스케일 텍스처를 수정하는 것만 처리합니다. 메쉬 그리드는 평평하게 유지되고 정점은 CPU에 의해 업데이트되지 않습니다. 텍스처가 변경 될 때마다 새로운 텍스처가 GPU로 전달 될 수 있습니다.

모든 쉐이더 모델이 버텍스 쉐이더에서 텍스처 샘플링을 지원하는 것은 아닙니다 (예를 들어 HLSL에서는 쉐이더 모델 3.0 이상이 필요함).


0

Ogre의 ETM http://www.ogre3d.org/addonforums/viewforum.php?f=16을 보면 아이디어를 얻을 수 있습니다. Artifex Terra실제 사용 하려는 경우이를 기반으로합니다.


2
답변을 병합하고 사용하지 않는 답변을 삭제하는 것이 좋습니다.
joltmode

GPU 생성 / 조작 지형에 대해서는 Gilliam de Carpentier의 Scape 기사를 확인하십시오. decarpentier.nl/scape-render
Johann

Tom이 이미 제안했듯이 Scape 기사는 이미 지형 생성 및 렌더링에 대한 흥미로운 참조로 사용되었을 수 있습니다. 그러나 제안 이후 브러시 기반 편집 파이프 라인을 완전히 다루는이 주제와 관련이있는 또 다른 Scape 기사를 게시했습니다. 그래서 나는 당신에게 알려줄 것입니다. www.decarpentier.nl/scape-brush-pipeline
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.