2011-02-06 84 views
8

Các lớp nào sẽ hỗ trợ thực hiện điều này một cách hiệu quả? Tốt nhất là tôi có thể nhận được ba thành phần được liệt kê dưới đây với các lớp đầu và mã phần còn lại khi tôi đi.Bộ nạp COLLADA được phân lớp cho OpenGL3.1 + Bối cảnh

Tôi đang viết thư viện tải COLLADA để sử dụng với công cụ đồ họa của mình. Vì vậy, tất nhiên ngay sau khi tôi bắt đầu tôi nhận thấy điều này có vẻ là một nhiệm vụ khá lớn. Bây giờ tôi dự định viết thư viện để sử dụng các lớp khác nhau.

Tôi làm không chưa hiểu COLLADA. Tôi giả định có thể có:

  • lớp Geometry lớp
  • Shader
  • Texure lớp

Ngay cả những tôi không rõ, có thể cần phải là một phần của một loại khác nhau của lược đồ phân lớp.

Lưu ý phụ, tôi rất có thể sẽ sử dụng irrXML hoặc interesting XML library Tôi vừa đọc về here để đọc tệp trừ khi được thông báo khác.

Trả lời

15

Bạn có biết Thư viện nhập nội dung mở (http://assimp.sourceforge.net/)? Nó có hỗ trợ khá tốt cho việc tải và sử dụng mục tiêu của Collada trong các công cụ đồ họa. Việc tự mình viết một bộ nạp collada không chỉ là khó khăn mà còn đủ tuổi để có đủ độ ổn định để sử dụng hiệu quả, chủ yếu là do định dạng phức tạp khủng khiếp (hoặc, như tác giả chính của bộ tải Collada của Assimp đặt đùa là: -complete) và mọi nhà xuất khẩu đều có những thói quen kỳ lạ của riêng mình.

Nếu cần các tính năng bổ sung, bạn có thể căn cứ vào bộ tải Collada của Assimp và chỉ thêm những gì bạn cần (giấy phép BSD, bạn có thể mang nó miễn là bạn thuộc tính nguồn).

Lưu ý: Tôi liên quan đến dự án và do đó không thiên vị. Nhưng sau khi những kinh nghiệm khủng khiếp, chúng tôi thực hiện với văn bản loader Collada riêng của chúng tôi, tôi chỉ cảm thấy giống như có để cảnh báo bạn ...

Side lưu ý, tôi sẽ rất có thể được sử dụng irrXML

Chúng tôi sử dụng nó quá. Nếu bạn thực sự bắt đầu từ đầu, đừng. Sử dụng trình phân tích cú pháp DOM, chẳng hạn như TinyXML. Collada phức tạp nhưng được xác định rất rõ, trình phân tích cú pháp SAX chỉ làm cứng công việc vì bạn phải tự xây dựng cây tài liệu (và bạn sẽ cần cấu trúc dữ liệu giống với tài liệu đầy đủ). Để đọc một cái gì đó có ý nghĩa trong số họ, các tài liệu tham khảo chéo khác nhau cần phải được giải quyết).

+0

Bạn có thể đề xuất các lớp thích hợp để giao tiếp bộ tải OpenAsset với công cụ hiển thị hỗ trợ đầy đủ các tính năng không? Tôi đã nghe nói về thư viện nhưng tôi luôn lo lắng về chi phí mà tôi không biết và đa luồng/phát trực tuyến khó khăn. Nếu bạn có bất kỳ từ nào trên đó tôi sẽ đánh giá cao nó. –

+0

Liên quan đến việc xây dựng cây, đây là lý do tại sao tôi nghĩ rằng tôi sẽ kết thúc cần phải viết bộ nạp của riêng tôi hoặc ít nhất là dịch từ một bộ nạp khác mà ... được thừa nhận. Tôi sẽ cần dữ liệu được đóng gói theo những cách cụ thể theo thời gian khi tôi tải nó, chủ yếu cho OpenCL. –

+0

Tôi không hiểu ý bạn là 'lớp'.Assimp đọc một tập tin cùng một lúc, tập hợp tất cả mọi thứ nó hiểu và chuyển đổi nó thành một cấu trúc dữ liệu đầu ra thống nhất để người gọi chỉ cần xử lý định dạng (trong bộ nhớ) này. –

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