2017-12-15 5 views
2

각 꼭지점이 3D 공간에 있고 터널을 나타내는 각 모서리가있는 꼭지점과 모서리의 그래프로 표현되는 동굴 시스템을 상상해보십시오. 또는 가장자리가 도로를 나타내고 꼭지점이 모서리와 교차점을 나타냅니다. 요점은 기하학적 데이터의 그래프가 있고 우리는 그 데이터 주위의 임의의 구조를 외삽 할 수 있기를 원합니다. 이러한 알고리즘을 3D로 렌더링하기 위해 어떤 알고리즘으로 메쉬를 생성 할 수 있습니까?3D 그래프에서 절차 적 메쉬 생성하기

다음은 비슷한 주제의 우수한 Youtube 비디오입니다 : Unite 2015 - A coder's guide to spline-based procedural geometry. 분기가없는 한 지점에서 다른 지점으로 이동해야하는 단순한 경우를 다루지 만 분명히 비슷한 개념이 그래프 기반 3D 구조를 렌더링하는 데 사용됩니다.

+0

이 것이'[graph-algorithm]'으로 자격이 있는지 확실하지 않습니다. 어쨌든 흥미로운 문제 (그래서 +1) 나는 이것을 어떻게 공격 할 것인가? – Spektre

답변

2
  1. 시작은 원형 동굴

    을 만드는 당신은 시작 지점으로 Smoothly connecting circle centers를 사용할 수 있습니다. 그런 다음 원을 다른 모양으로 변경하여 무작위성을 추가하고 프로필과 같은 동굴을 추가하십시오. 또한 교차점 대 그래프 교차점을 기준으로 반경 (또는 너비)을 조정할 수 있습니다. 나중에 적절한 텍스처링을 위해 UV 매핑을 저장하는 것을 잊지 마십시오. 간단해야합니다. 실린더 축을 U으로, "원"의 각도 매개 변수를 V으로 사용할 수 있습니다. 이것은 bump/normal mapping에 대해 TBN 행렬로 사용할 수도 있습니다.

    그래프의 교차점이 주요 문제점입니다. 예를 들어 동굴 "방"과 같은 교차 튜브를 부드럽게 연결하는 메쉬를 만들어야합니다. 정점은 원의 매개 변수 각도에 따라 정렬되어야하므로 각 정점의 어느면에 어떤 정점이 있는지 알 수 있으므로 적절한 정다각형 와인딩을 사용하여도 끔찍한 노력없이 프로그래밍 할 수 있습니다.

    이렇게하면 지오메트리를 생성 할 수 있습니다.

  2. 개체를 추가하고 하나가 완전히 무작위 또는 내가 생물 군계를 만들어 여기 Random Island generator처럼 어떤 물리적 인 접근 방식을 사용할 수에 대한

    을 갖추고 있습니다. 그래서 당신은 진입이나 물에서 얼마나 멀리 떨어져 있는지, 식물이나 물건을 얼마나 많이 생성하는지와 같은 몇 가지 규칙을 추가/악용 할 수 있습니다. 입력이 동굴 영역과 그래프 당 일부 특정 씨가 있도록 # 1, 2가 함께 코딩하려고 #을 넣을 때

  3. 일반화. 이렇게하면 동굴의 각 부분을 별도로 반복적으로 생성 할 수 있습니다. 그래프에이 시드를 추가하기 만하면됩니다.

    부드러운 전환을하려면 이웃 동굴 영역도 생성하고 그 사이의 연결을 보간해야합니다.

    또 다른 옵션은 바이오 메스없이 균일 한 동굴 환경을 유지하고 동굴 지역 인테리어에 훨씬 더 많은 부분을 추가하여 연결 지점에서 한 번에 너무 많은 변화가 없을 것입니다.

[참고] 이제

너무보고 당신은 분명 입력으로 그래프를 가지고 있지만, 단지 경우에 당신은 당신이 무작위로 그를 생성 할 수 없습니다 :

동굴 벽을보다 사실적으로 만들려면 다이아몬드을 사용할 수 있습니다.반지름을 조절하는 사각형 (사각형 생성기 링크에서)은 각도 매개 변수 방향에서 평균화가 원형으로 이루어 지도록하므로 실린더 표면에 추가 할 때 결과 맵이 매끄럽게됩니다.