생성 된 3D 트리 메시


16

이 줄에서 아직 질문을 찾지 못했습니다. 틀린 경우 수정하십시오.

나무 (및 일반적으로 동물 군)는 게임에서 일반적입니다. 특성상 절차 적 생성에 적합한 후보입니다.

거기에 스피드 트리가 당신이 그것을 감당할 수 있다면, 물론; 내가 알 수있는 한, 런타임에 트리 메쉬를 생성 할 가능성을 제공하지 않습니다. 그런 다음 약 500 줄의 자바 스크립트 인 proctree.js 를 기반으로하는 온라인 webgl 기반 트리 생성기 인 SnappyTree 가 있습니다.

위의 (또는 넘어지지 않은 다른 트리 생성기)를 사용하여 수십 개의 트리 메쉬를 미리 만들거나 3D 모델러에서 처음부터 모델링 한 다음 무작위로 미러 / 스케일링하여 몇 가지 변형을 더 할 수 있습니다 ..

그러나 나는 무료로 링크 가능한 트리 메쉬 생성기를 가지고 싶습니다.

가능한 해결책:

  • proctree.js를 c ++로 포팅하고 오픈 소스 라이센스를 처리하십시오 (gpl이 아닌 것 같으므로 가능할 수 있습니다. 저자는 라이센스를 더욱 자유롭게 만들기 위해 협력 할 수도 있습니다).
  • L 시스템을 기반으로 내 자신의 롤.
  • 귀찮게하지 말고 오프라인 생성 트리 만 사용하십시오.
  • 아직 찾지 못한 다른 방법을 사용하십시오.

2015 업데이트 : proctree.js를 C ++ https://github.com/jarikomppa/proctree로 이식


5
나만의 롤링을 위해 Prusinkiewicz와 Lindenmeyer의 '알고리즘의 아름다움'책을 추천합니다 . algorithmicbotany.org/papers/#abop에 있습니다. 이 책과이 사이트에는 가상 식물학의 생성에 관한 많은 연구 논문이 있습니다.
Exilyth December

WebGL을 사용하여 3DFlora라는 온라인 도구를 만들었습니다. 80 개가 넘는 매개 변수가 있으며 결과를 obj 파일로 다운로드 할 수 있습니다. 거의 모든 종류의 식물을 만들 수 있습니다. 여기에서 확인하십시오 : 3dflora.sina-s.com
user2002741

답변:


12

내 데모의 대부분이 더 오래되었지만이 분야에서 상당한 노력을 기울였습니다.

(플래시 2010)
http://genesisbbs.com/appstem.html (마우스 클릭 및 드래그)
http://genesisbbs.com/appstem2.html(directX
2006)
http://vimeo.com/5206795

당신이 재미를 위해 이것을하고 있다면, 나는 당신이 당신 자신을 굴릴 것을 강력히 권장합니다. 거의 확실하게 Quaternions 와 함께 작업해야합니다 . 그것들을 이해하는 것은 매우 어렵지만 그것들을 사용하기 위해 너무 깊이 갈 필요는 없습니다. 쿼터니언을 회전이라는 추가 구성 요소가있는 벡터로 생각하십시오. 식물이 자라면서 뒤틀리고 돌리려면 쿼터니언이 필요합니다.

알아
두어야 할 다른 것들 : Lichtenberg Figures
Laplacian Growth
Voronoi Diagrams
가장 가까운 이웃 알고리즘 (google them)

나는 (개인적으로) L-Systems의 사용을 권장하지 않을 것입니다. [seed-> [root] / [trunk-> branch-> [flower / leaf]]와 같은 곳에서 자라는 문법을 지시하는 것 외에는 말입니다. L 시스템은 햇빛 방향, 중력, 장애물 등과 같은 환경 자극에 반응하기에 좋지 않습니다.

속도 문제와 관련하여 단일 트리를 실시간으로 생성 할 수 있습니다. 그러나 메모리 목적과 성능을 위해서는 작은 트리 집합 만 생성하고 포리스트를 처리하는 경우 약간만 인스턴스화하는 것이 좋습니다.

대부분의 기존 트리 생성기는 Maya 등에 사용되는 고급 트리 생성기 외에는 그리 크지 않습니다 (IMHO).

또한 voxels를 사용하여 트리를 생성하는 것이 좋습니다 (필요한 경우 메쉬가있는 스킨). 복셀의 장점은 Laplacian 성장 및 다양한 오토마타 (Conway의 게임은 아니지만 다른 규칙은 흥미로운 결과를 생성 함)와 같은 것을 사용하여 성장 알고리즘을 쉽게 시뮬레이션 할 수 있다는 것입니다.


3

개인적으로 나는 사전에 생성 된 나무로 시작하고 덤불, 잔디, 버섯 및 재료로 완성 된 킥-리스 숲 렌더링 엔진을 가진 후에 만 ​​더 가변적 인 나무 메시가 필요한지 살펴볼 것입니다.

ngPlant를 살펴볼 수 있습니다 . 여기에는 GPL 절차 트리 모델러 앱이 포함되어 있지만 모든 무거운 작업을 수행하는 라이브러리는 BSD 라이센스입니다. C ++로 작성되었습니다.

포리스트 렌더링의 경우 오거 렌더링 엔진에 대한 (MIT 라이선스가 부여 된) 페이징 된 형상 이 있습니다.


3

절차 트리의 주요 문제점은 트리를 생성하는 것이 아니라 런타임시 모든 프레임을 렌더링하는 것입니다. 이것이 AAA 게임에서 동일한 트리가 많이 보이는 이유입니다. 독특한 트리를 만든 기술을 구현하거나 작성할 수 없었기 때문에 게임의 다른 기능을 많이 잘라 내야한다는 의미입니다. 실행합니다.

동일한 트리가 여러 개있는 경우 트리를 회전하고 균일하게 크기를 조정하여 모든 각도와 다르게 보이도록 할 수 있으며, 동일하기 때문에 각 프레임마다 소중한 밀리 초를 절약하기 위해 인스턴스화 할 수 있습니다.

이 문제에 대해 잠시 생각하면 행복한 매체가 될 수 있습니다. 몇 가지 다른 나무 부분, 줄기, 가지, 잎 등을 생성 할 수 있습니다. 그런 다음 많은 조합과 매우 독특한 트리를 가질 수 있지만 더 빠른 실행 게임을 위해 많은 부분을 모두 인스턴스화 할 수도 있습니다.


단편적인 아이디어 외에도이 답변은 실제로 새로운 것을 추가하지 않습니다.
Jari Komppa

3
OP가 매우 감사 할 때 항상 좋습니다. QandA 사이트의 경우 게시물에 뚜렷한 질문이 없습니다. 이 답변 외에도 글 머리 기호를 직접 처리합니다.
SirYakalot

그래, 사과 했어
Jari Komppa

1

얼마 전 나무 [d]를 우연히 발견했습니다 ... 프로젝트를 테스트하기 위해 적은 시간 동안 사용했지만 개발을 중단했기 때문입니다.이 도구는 다양한 발전기 옵션을 제공합니다. 내가 기억하는 것에서 매우 빠릅니다. 아래 링크가 있습니다.

단점은 통합 할 수있는 트리 생성기가 아니라는 것입니다. 몇 가지 트리를 미리 생성 한 다음 런타임에 배치 할 때 데이터를 수정하여 고유성을 조정해야합니다.

무엇보다도 TreeD 는 무료로 사용할 수 있으며 모델 팩, 텍스처 팩, 3D 모델 생성기 또는 텍스처 생성기가 아닌 한 자신의 프로젝트에 상업용 또는 무료로 만든 트리를 포함 할 수 있습니다.


라이브러리 형식이더라도 다른 무료 생성기를 볼 수 있습니다.
Jari Komppa

1

이것은 깔끔한 작은 솔루션이며 프로젝트에서 사용했으며 게임이 실행되는 이유를 신속하게 트리를 생성 할 수 있다고 말할 수 있습니다. 확실히 상세하지는 않지만 광고판을 제거하면 꽤 깔끔 할 수 있습니다.

http://ltrees.codeplex.com/


XNA 사용자에게는 좋은 솔루션 인 것 같습니다.
Jari Komppa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.