2013-06-26 18 views

Trả lời

5

Dường như không có bất kỳ hỗ trợ nào không đau cho đồ họa vectơ trong Libgdx tại thời điểm này (giữa năm 2013). Đầu tiên, đối với đồ họa vector thường có nghĩa là SVG trong thực tế.

Một phần của sự cố với giải pháp SVG "chung" là làm cho nó hoạt động với tất cả các trường hợp góc khác nhau có vẻ là một vấn đề. Tuy nhiên, nếu bạn chỉ đang cố gắng render các đối tượng SVG của riêng mình, bạn có thể có một tập con SVG đơn giản hơn để xử lý và hack thứ gì đó có thể làm việc cho bạn (ngay cả khi nó không đủ chung cho tất cả mọi người).

Ngoài ra, nếu bạn sẵn sàng sử dụng bitmap làm trung gian (bạn không cần phải hiển thị đồ họa véc tơ trực tiếp lên màn hình), bạn chỉ cần tìm trình phân tích cú pháp SVG dựa trên Java và rasterizer (một trong đó sử dụng chương trình phụ trợ Libgdx hoặc LWJGL).

Xem Using SVG files with libgdx. Đề xuất ở đây là sử dụng Libgdx ShapeRenderer cho đồ họa "có thể mở rộng" đơn giản. Nó không có SVG, nhưng nó có thể là hợp lý cho trường hợp sử dụng của bạn.

Tìm kiếm của Google bật lên này GPL'd Java SVG renderer sử dụng chương trình phụ trợ AWT. Mã này có vẻ đơn giản, đủ để nó có thể được điều chỉnh để sử dụng hiển thị Libgdx. Tuy nhiên, với mức độ đơn giản, nó không rõ ràng SVG thực sự hỗ trợ bao nhiêu (hoặc nếu nó hoạt động được).

Dự án Apache Batik là trình phân tích cú pháp Java SVG chung và trình kết xuất đồ họa. Nó trông rất lớn. Bạn có thể làm cho nó hiển thị SVG thành định dạng .png (và sau đó chuyển đổi chúng thành Libgdx Pixmaps). (Tôi không có bất kỳ kinh nghiệm nào với điều này.)

Có (chết?) libgdx SVG extension project nhưng có vẻ như chỉ phân tích cú pháp SVG cơ bản nhất đã được hoàn thành.

4

Tôi vẫn đang học LibGDX quá và sắp sửa đối mặt với một số vấn đề tương tự như bạn; Hiển thị các mô hình 2D trong Chế độ xem Chính tả.

LibGDX hoạt động với OpenGL ES cho đồ họa và cũng hỗ trợ nhập các mô hình được tạo bằng plugin cho Máy xay sinh tố 3D. Tôi đã không cố gắng này, nhưng đây là một giải pháp để làm như vậy:

Importing Models from Blender

Processing code

Tôi đoán rằng Một giải pháp để giải quyết này sẽ là mô hình đồ họa khả năng mở rộng của bạn trong Blender 3D . Nếu bạn đang sử dụng các tệp SVG, thì Blender 3D có thể nhập các tệp đó, vì vậy bạn có thể sử dụng Blender 3D làm touchdown đầu tiên.

THÊM: Tôi hiện đã quản lý để làm điều đó. Có một chút thay đổi mặc dù: Phương pháp với kịch bản python đã lỗi thời. Trong các ý kiến ​​trên trang đến liên kết đầu tiên ở trên, có một liên kết đến xoppa's tutorials. Nó được mô tả ở đó làm thế nào để xuất khẩu các mô hình với FBX converter tool. Tôi đã tạo ra một hình dạng mặt phẳng 2D hướng về phía trước trong Blender 3D. Xuất nó sang FBX và sử dụng công cụ chuyển đổi để tạo một tệp G3DB.Sử dụng phương pháp G3dModelLoader của LibGdx như được mô tả trong các hướng dẫn của xoppa, bây giờ bạn có thể vẽ nó trong khung nhìn của bạn với một ModelBatch. Làm cho máy ảnh Orthographic của bạn nhìn vào 0,0,0 (hoặc bất cứ điều gì phù hợp với nhu cầu của bạn) và đi một chút trở lại trên trục z - nếu không bạn sẽ không thể nhìn thấy nó. Vì nó là một máy ảnh Orthographic nên nó không quan trọng như thế nào, nhưng bằng cách nào đó 0,0,1 sẽ làm cho một số loại ý nghĩa :) Hãy nhớ cũng để xóa GL_DEPTH_BUFFER_BIT bây giờ cho mỗi khung trong render của bạn.