2010-01-07 43 views
12

Tôi đang tham gia khóa học OpenGL và chúng tôi có tùy chọn tạo mô hình để sử dụng trong các bài tập của mình bằng ứng dụng mô hình 3D, như Maya hoặc Blender.Nhập mô hình vào dự án OpenGL

Tôi là không phải mong muốn nhập tọa độ theo cách thủ công nên tôi tò mò muốn tìm tài nguyên gì để viết mã OpenGL và nhập mô hình. (Kết cấu sẽ đến sau). Tôi cũng quan tâm đến quy mô tôi đang nhập vào nhưng có lẽ đó là ngớ ngẩn để lo lắng về điểm này.

Cảm ơn mọi đề xuất tài nguyên. OpenGL có rất nhiều thứ ở đó, đôi khi tôi bị choáng ngợp khi Googling cho những gì tôi cần.

EDIT: Đây là những gì tôi đã sử dụng. http://www.spacesimulator.net/tut4_3dsloader.html Tôi đã tải xuống phiên bản "Windows" và có một vài thay đổi về đường dẫn đến phần bao gồm, đã thiết lập và chạy. Nó không xử lý các tệp OBJ mà là các tệp 3DS. Cheetah 3D cũng xuất ra loại này.

+0

Tôi không nghĩ điều này thuộc về SO, SU sẽ tốt hơn. –

+8

@Maxim Tại sao SU sẽ tốt hơn cho việc hỏi về các thư viện để tải các mô hình vào một cái gì đó có thể được rút ra bằng cách sử dụng OpenGL? Có vẻ khá lập trình liên quan đến tôi. –

Trả lời

8

Máy xay sinh tố có thể lưu tệp ở định dạng .obj và tìm kiếm đơn giản trên google sẽ mở nhiều thư viện để tải tệp này vào OpenGL. Here là một.

2

Tôi muốn nói định dạng Obj là sự cân bằng tốt cho khả năng đọc và chức năng nếu bạn muốn phân tích cú pháp đó.

http://en.wikipedia.org/wiki/Obj

Cách đơn giản nhất sẽ được để tìm một thư viện để làm điều đó cho bạn, nhưng các khả năng sẽ được giới hạn ngôn ngữ bạn đã chọn.

Bạn không nên lo lắng về quy mô. Các ma trận của OpenGL có thể dễ dàng rescale đỉnh.

4

Tôi khuyên bạn không nên lo lắng về quy mô của các đối tượng ngay bây giờ.

Bây giờ, điều bạn sẽ phải làm là giải quyết trên một định dạng cho tệp 3D. Có nhiều tùy chọn khi xuất từ ​​một chương trình 3D như Maya hoặc Blender.

Tôi có thể khuyên bạn nên thử một nhà nhập khẩu COLLADA đơn giản. Thông tin đặc điểm kỹ thuật ở đây: http://www.khronos.org/files/collada_spec_1_4.pdf

Một thông số kỹ thuật khác mà tôi đã sử dụng gần đây cũng có thể phù hợp với điều này là OBJ.

Các đặc điểm kỹ thuật cho OBJ nằm ở đây: http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/

Ngoài ra, có một số miễn phí mẫu 3D OBJ file nằm here. Điều này sẽ cho phép bạn xem định dạng của các tệp và thực sự thấy chúng dễ dàng phân tích cú pháp như thế nào.

Xin lưu ý rằng OBJ không thể hỗ trợ hoạt ảnh và không hiệu quả khi hiển thị các cảnh lớn.

+0

Hoạt ảnh không phải là mối quan tâm. Tôi có Cheetad3D và tôi chỉ kiểm tra và thấy rằng nó có thể làm các tập tin obj đó là tuyệt vời. – bobber205

5

Một trong những định dạng đơn giản nhất có thể được sử dụng để xuất mắt lưới là OBJ Wavefront (vui lòng tìm kiếm trên Wikipedia vì tôi chỉ được phép đăng một liên kết tại thời điểm này). Về cơ bản, đó là một tệp văn bản không quá khó để phân tích cú pháp.

Hoặc trên thực tế, nếu bạn được phép sử dụng dư thừa, bạn có thể thử và sử dụng bộ nạp của nó (như đã trả lời trong OpenGL FAQ 24.040)

Đừng lo lắng về quy mô đối tượng vào lúc này, bạn luôn có thể mở rộng quy mô của bạn đối tượng sau. Chỉ cần đảm bảo bạn xuất nó với tọa độ cục bộ, chứ không phải toàn cục (ví dụ: [0,0,0] phải là trung tâm của đối tượng, không phải là thế giới bạn đang lập mô hình).

+0

GLUT là cần thiết (hoặc ít nhất là rất khuyến khích) cho các khóa học liên kết tuyệt vời như vậy! – bobber205

+0

Tôi đang sử dụng FreeGLUT. Tôi có may mắn không thay đổi GLUT tôi đang sử dụng không? :( – bobber205

+0

@ bobber205 Theo như tôi biết nếu freeglut có mặt trên máy, glut đơn giản nhập khẩu toàn bộ phần tự do vào chính nó và không gì khác ngoài bản sao tượng trưng. Tôi đang sử dụng một hộp Linux, và điều này có thể khác nhau cho bạn.Tôi đề nghị bạn tìm kiếm nguồn gốc của glut.h và freeglut.h trong đường dẫn bao gồm của bạn để xác nhận.Hoàn hảo! ---- Tôi đoán tôi đã trả lời một bài đăng lỗi thời, nhưng tôi hy vọng điều này không làm giảm sự thích hợp của nhận xét của tôi. – ffledgling

Các vấn đề liên quan