Hoạt ảnh trong OpenGL bằng Mô hình 3D


11

Tôi đã tạo một mô hình trong Blender. Bây giờ tôi muốn đọc mô hình 3D đó trong chương trình c ++ của mình. Tôi hình dung rằng một mô hình có thể được xuất sang các định dạng tệp khác nhau, ví dụ: .obj, .3ds hoặc COLLADA và sau đó có thể được đọc trong chương trình c ++. Tôi đã tìm kiếm trên web để làm điều đó trong một thời gian dài và tìm thấy nhiều hướng dẫn. Nhưng tôi gặp vấn đề với hầu hết trong số họ. Ví dụ: trong hướng dẫn Nehe họ đang sử dụng glaux mà tôi không muốn sử dụng trong chương trình của mình. Và các hướng dẫn còn lại sử dụng md2 không được Blender hỗ trợ.

Vì vậy, bất cứ ai cũng có thể hướng dẫn cho tôi định dạng tệp nào được sử dụng để xuất mô hình 3D và cách tải tệp đó trong chương trình OpenGL của tôi? Ngoài ra làm thế nào tôi có thể làm động mô hình đó? Có thể thêm các hiệu ứng phụ như ánh xạ giai điệu sau khi đã được tải trong chương trình c ++ bằng OpenGL không? nếu có thì làm thế nào?

PS Tôi đang sử dụng Linux để phát triển trò chơi

Câu trả lời:


2

Tôi muốn dùng định dạng OBJ. Như bạn có thể đã nhận ra, có hàng trăm trình tải OBJ cho C ++ ngoài kia . Tôi tin rằng một trong những người trưởng thành nhất là Assimp , nó hỗ trợ nhiều định dạng khác nhau và nó được ghi lại khá tốt. Ở đây bạn có một ví dụ nơi họ sử dụng nó.


liên kết lighthouse.com không hoạt động
snape

Nó hoạt động với tôi trong tất cả các trình duyệt của tôi ... Hãy thử liên kết này x90.es/1CC
Dan

2
Obj không có hỗ trợ cho các lưới hoạt hình mặc dù vậy? chỉ cần google "Blender opengl skinned lưới" và tôi hy vọng bạn sẽ tìm thấy một định dạng phù hợp với những gì bạn muốn chỉnh sửa: không thể xóa bài đăng của tôi, có nghĩa là một câu trả lời cho bài đăng trước đó định dạng obj
Stowelly

1
.obj không hỗ trợ hoạt hình và câu trả lời này là sai. stackoverflow.com/questions/757145/
Mạnh

2

Blender 2.60 đã cố định hỗ trợ hoạt hình COLLADA, nó ít nhiều bị hỏng trong các phiên bản trước. Tuy nhiên, nếu bạn chưa tải bất kỳ định dạng mô hình nào trong mã của riêng bạn, trước tiên tôi khuyên bạn nên tải .obj. Nó ở ASCII vì vậy nó dễ đọc và dễ đọc mà không cần thư viện bộ tải ngoài.


1

3ds không chứa bất kỳ dữ liệu hoạt hình nào để người ta không làm việc. Collada Tôi không biết nhiều về nó nhưng khi tôi quyết định sử dụng định dạng nào trong trò chơi của mình, tôi đã tìm kiếm và so sánh rất nhiều và cuối cùng tôi đã sử dụng định dạng B3D, nó hỗ trợ hoạt hình khung xương và có thể tải được từ Irrlicht (nó cũng chứa các giá trị ánh sáng ).

Tôi sử dụng trình xuất 'b3d pipe' từ 3dsMax và tôi đã mã hóa trình tạo bóng hlsl của riêng mình để làm động và thắp sáng các mắt lưới, nó hoạt động rất tốt.

Bạn có thể kiểm tra xem Irrlicht thực hiện nó như thế nào (tức là tải và hoạt hình), nó thực hiện hoạt hình trong phần mềm nhưng có những ví dụ nếu bạn tìm kiếm một chút về cách thực hiện với trình đổ bóng (nếu bạn muốn điều đó). Một điều tuyệt vời là Irrlicht hỗ trợ cả OpenGL và Linux.

Một định dạng khác khá đơn giản là định dạng .X, phải có hàng tấn ví dụ về cách xuất, tải, phân tích và thiết lập bộ xương và hoạt hình với nó. Đây là định dạng microsof mặc dù vậy có lẽ bạn sẽ không muốn sử dụng nó :-)

Ánh xạ giai điệu và như vậy hoàn toàn không liên quan gì đến hoạt hình, vì vậy, nếu bạn biết cách sử dụng kỹ thuật đó, bạn có thể làm điều đó với các lưới hoạt hình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.