2013-08-08 12 views
8

Poszukuję metody generowania modeli 3D do użytku w grach wideo. Idea to wirtualne prymitywy, które są po prostu punktami z powiązanymi danymi dotyczącymi rozmiaru, kształtu, materiału i obrotu.Generowanie modeli 3D za pomocą skórek pierwotnych

Na przykład asteroida może się zacząć jako dwie proste sfery, które się przecinają. Materiał pylistej skały, który mówi algorytmowi skórowania, aby zapewnić gładkie piaszczyste zakręty i okazjonalnie postrzępione głazy. Prawdopodobnie kończy się rodzajem bryłowego kształtu orzeszka ziemnego.

Następnie dodać mniejsze kulki z materiałem pustym lub kraterowym, posypane wokół obiektu. Powodują one powstawanie kraterów na powierzchni orzeszków ziemnych, a skóra dostosuje się do nich. W końcu będziesz miał połowicznie wiarygodną reprezentację asteroidy.

Mając to na uwadze, moje pytanie brzmi: czy istnieją przyzwoite przykłady kodu źródłowego lub domeny publicznej, które mogą znaleźć powierzchnię modelu i wygenerować gładką, równomiernie rozmieszczoną kwadratową siatkę, która mogłaby być wtedy teksturowane?

Więcej informacji; Patrzę na metody CSG dla podstawowych modeli (dodawanie i odejmowanie objętości), a następnie przyglądam się innym metodom usuwania wszystkiego.

+2

Czy obejrzałeś [CGAL] (http://www.cgal.org/). Mają wiele algorytmów geometrii otwartego źródła dla generacji [mesh] (http://www.cgal.org/Manual/latest/doc_html/cgal_manual/contents.html#part_XI), [processing] (http: //www.cgal. org/Manual/latest/doc_html/cgal_manual/contents.html # part_XII) i [polyhedra] (http://www.cgal.org/Manual/latest/doc_html/cgal_manual/contents.html#part_VII). Sekcja [NEF Polyhedra] (http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Nef_3/Chapter_main.html) wygląda szczególnie blisko tego, o czym mówisz. –

+0

To ciekawe, będę musiał zrobić więcej badań na ten temat. Teraz przeglądasz Sparse Voxel Octrees. –

+1

Jeśli chcesz mieć skrypty generujące modele 3D za pomocą technik CSG, nie ma lepszego oprogramowania niż [OpenSCAD] (http://www.openscad.org/). Używa on wspomnianego CGAL na zapleczu, ale zapewnia interfejs oparty na skrypcie do generowania parametrów parametrycznych. Używam go od lat do drukowania 3D i uwielbiam to. Posiada również interfejs wiersza poleceń, dzięki czemu można skryptować go z powłoki uniksowej lub polecenia.exe. Nie będzie jednak w stanie zintegrować się z Twoją grą w czasie rzeczywistym. Będzie to wymagało tworzenia modeli z wyprzedzeniem, czego nie jestem pewien, czego szukasz. – Jestin

Odpowiedz

2

Skórowanie to sztuka bardziej niż proces naukowy (i prawie niemożliwe do zautomatyzowania), ponieważ skórowanie jest wizualnym przybliżeniem ruchu. Aby uzyskać coś w pełni zautomatyzowanego, musisz albo założyć umieszczenie kości, albo po prostu założyć, że nie ma w ogóle żadnego.

Oto przykład. Jest to projekt typu open-source, który automatycznie wykonuje skórki w oparciu o fakt, że dostarczona siatka jest humanoidalna. http://igl.ethz.ch/projects/fast/

EDYCJA: Czekaj, masz na myśli na odwrót? Czy to nie jest podobne do maszerujących kostek? http://en.wikipedia.org/wiki/Marching_cubes

+0

Właściwie to coś bardziej zbliżonego do "klopsików" w blenderze lub twórcy stworów Spore. Próbuję unikać używania wokseli ze względu na ich nieodłączną masowość danych. Na wielką skalę realistyczna planeta byłaby czysto szalonym datawise, terabajtami informacji wokselowych. Ale kilka przecinających się wirtualnych prymitywów byłoby znacznie prostsze. –

1

To ekscytujące pytanie i bez wątpienia można to zrobić na wiele sposobów. Osobiście prawdopodobnie zacznę od uzyskania podstawowych kształtów w formacie .obj, który jest łatwy do sparsowania i tworzenia programowego, a następnie wykonaj dokładnie to w moim kodzie: dostosuj lub wylosuj wierzchołki wyeksportowane z programu do modelowania, aby utworzyć nieskończone różnorodność podobnych, ale nieco innych obiektów, takich jak asteroidy. Oczywiście, jeśli potrzebujesz więcej niż asteroid, powrócisz do innego pliku .obj. Trudno powiedzieć najlepszą technikę dla twojego przypadku, ponieważ myślę, że pewne eksperymenty będą wymagane bez względu na to, co spróbujesz.

Powiązane problemy