2013-08-08 133 views
8

Tôi đang tìm một phương pháp để tạo mô hình 3D để sử dụng trong trò chơi video. Ý tưởng là các nguyên thủy ảo đơn giản là các điểm có dữ liệu liên quan cho kích thước, hình dạng, vật liệu và xoay vòng.Tạo mô hình 3D thông qua skin skin nguyên thủy

Ví dụ một tiểu hành tinh có thể bắt đầu bằng hai hình cầu đơn giản giao nhau. Chất liệu của đá bụi sẽ cho thuật toán da để cung cấp các đường cát mịn và thỉnh thoảng các tảng đá lởm chởm. Có lẽ kết thúc với một loại hình dạng đậu phộng.

Sau đó thêm các quả cầu nhỏ hơn với vật liệu trống hoặc miệng núi lửa, được rải xung quanh đối tượng. Chúng sẽ tạo ra miệng núi lửa như các khu vực trên bề mặt của đậu phộng và da sẽ điều chỉnh cho phù hợp. Cuối cùng, bạn sẽ có một đại diện bán chính đáng của một tiểu hành tinh. Bây giờ với ý nghĩ đó, câu hỏi của tôi là, có bất kỳ ví dụ nào về mã nguồn mở hoặc công khai của các thuật toán da có thể tìm thấy bề mặt của một mô hình và tạo ra một lưới lưới tứ phân bố đều, trơn tru, có thể sau đó kết cấu?

Một số thông tin khác; Tôi đang nhìn vào các phương pháp CSG cho các mô hình cơ bản (cộng và trừ khối lượng) sau đó xem xét các phương pháp khác để làm lại toàn bộ điều.

+2

Bạn đã xem [CGAL] (http://www.cgal.org/) chưa. Chúng có nhiều thuật toán hình học mã nguồn mở cho [tạo lưới] (http://www.cgal.org/Manual/latest/doc_html/cgal_manual/contents.html#part_XI), [xử lý] (http: //www.cgal. org/Manual/latest/doc_html/cgal_manual/contents.html # part_XII) và [polyhedra] (http://www.cgal.org/Manual/latest/doc_html/cgal_manual/contents.html#part_VII). Phần [NEF Polyhedra] (http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Nef_3/Chapter_main.html) trông đặc biệt gần với những gì bạn đang nói đến. –

+0

Thật thú vị, tôi sẽ phải nghiên cứu thêm về nó. Bây giờ nhìn qua Sparse Voxel Octrees. –

+1

Nếu bạn muốn có các tập lệnh tạo mô hình 3D bằng các kỹ thuật CSG, không có phần mềm nào tốt hơn [OpenSCAD] (http://www.openscad.org/). Nó sử dụng CGAL nói trên ở mặt sau, nhưng cung cấp một giao diện dựa trên kịch bản cho việc tạo mô hình tham số. Tôi đã sử dụng nó trong nhiều năm cho in 3D, và thích nó. Nó cũng có một giao diện dòng lệnh để bạn có thể viết nó từ một shell unix hoặc command.exe. Nó sẽ không, tuy nhiên, có thể tích hợp vào trò chơi của bạn trong thời gian thực. Nó sẽ yêu cầu bạn tạo ra các mô hình của bạn trước thời hạn, mà tôi không chắc chắn là những gì bạn đang tìm kiếm. – Jestin

Trả lời

2

Skinning là một nghệ thuật hơn là một quá trình khoa học (và do đó hầu như không thể tự động hóa) bởi vì skinning là một xấp xỉ trực quan của chuyển động. Để có được một cái gì đó hoàn toàn tự động, bạn sẽ phải giả định vị trí xương hoặc chỉ đơn giản là giả sử không có gì cả.

Đây là một ví dụ. Đây là một dự án mã nguồn mở tự động dựa trên thực tế là lưới được cung cấp là một hình người. http://igl.ethz.ch/projects/fast/

CHỈNH SỬA: Đợi đã, nghĩa là cách khác? Không phải là tương tự như khối hành quân? http://en.wikipedia.org/wiki/Marching_cubes

+0

Trên thực tế một cái gì đó gần gũi hơn với "thịt viên" trong máy xay sinh tố hoặc người sáng tạo sinh vật Spore. Tôi đang cố gắng tránh sử dụng voxels do tính đa dạng dữ liệu vốn có của họ. Trên quy mô lớn, một hành tinh thực tế sẽ chỉ hoàn toàn mất dữ liệu, terabyte thông tin voxel. Nhưng một vài nguyên thủy ảo giao nhau sẽ đơn giản hơn rất nhiều. –

1

Đây là một câu hỏi thú vị và không nghi ngờ có nhiều cách có thể thực hiện được. Cá nhân tôi có thể bắt đầu bằng cách lấy các hình dạng cơ bản trên định dạng .obj, dễ dàng để phân tích cú pháp và tạo lập trình, và sau đó làm chính xác điều đó trong mã của tôi: tinh chỉnh hoặc ngẫu nhiên các đỉnh bạn xuất từ ​​một chương trình tạo mô hình nhiều đối tượng tương tự nhưng hơi khác nhau, giống như các tiểu hành tinh. Tất nhiên nếu bạn cần nhiều hơn các tiểu hành tinh, bạn sẽ quay lại một tệp .obj khác. Thật khó để nói kỹ thuật tốt nhất cho trường hợp của bạn vì tôi nghĩ rằng một số thử nghiệm sẽ được yêu cầu bất kể bạn thử làm gì.