Giải pháp đồ họa vector hiệu suất cao [đóng]


12

Tôi đang tìm kiếm một thư viện đồ họa vector hiệu suất cao mà tôi có thể sử dụng trong các trò chơi của mình.

Tôi đang suy nghĩ theo các dòng đồ họa vector như những thứ có thể được tạo bằng SVG .

Tôi sẽ xem xét bất kỳ ngôn ngữ nào vào lúc này (nhưng phải chạy trên Windows). Một giải pháp tận dụng phần cứng GPU sẽ rất tuyệt.

Cảm ơn trước.


Có bất kỳ lý do bạn muốn sử dụng đồ họa Vector?
Tấn

Có: Tôi thích phong cách, chúng có thể nén tốt hơn kết cấu và chúng linh hoạt hơn cho hoạt hình.
CiscoIPPhone

Câu trả lời:


7

Nếu Windows (Vista và hơn thế nữa) là nền tảng duy nhất của bạn, bạn nên xem xét Direct2D , nơi cung cấp kết xuất đồ họa vector 2D được tăng tốc với phần mềm dự phòng. Đối với một giải pháp nền tảng x hơn, hãy nhìn vào Cairo , nơi tôi tin rằng có một trình rasterizer tăng tốc GPU.


Thật thú vị, tôi chưa bao giờ nghe nói về Direct2D trước đây. Nó dường như không được sử dụng rộng rãi - có lẽ vì nó chỉ là Windows 7.
CiscoIPPhone

Đó chỉ là Vista và Windows 7, do sử dụng Direct3D 10. Và nó khá mới :)
boki

2
Lưu ý rằng một số lập trình viên trò chơi cấu hình cao coi Direct2D là khủng khiếp - braid-game.com/news/?p=455 (cũng liên kết đến một podcast) và braid-game.com/news/?p=466 .

Tôi nghĩ rằng trình bao bọc được quản lý cho Direct2D có xu hướng dễ làm việc hơn nhiều so với thư viện riêng. Và hầu hết những lời chỉ trích mà tôi đã đọc về Direct2D đều đã trích dẫn các ví dụ trong đó các kết thúc tương tự có thể được thực hiện tương đối dễ dàng trong Direct3D. Chắc chắn, nó quá mức cần thiết để vẽ một hình chữ nhật, nhưng nó hoạt động tốt cho các đường cong và hình dạng với kết cấu không cần thiết và / hoặc vuốt ve. Bên cạnh đó, D2D không nhắm chủ yếu vào các nhà phát triển trò chơi - nó nhằm mục đích cung cấp một sự thay thế phong phú hơn, hiệu quả hơn cho GDI. Nhưng nó hoạt động tốt với Direct3D.
Mike Strobel

3

OpenVG là một tiêu chuẩn cho đồ họa vector tăng tốc phần cứng. Nó được hỗ trợ bởi các GPU được nhắm mục tiêu cho các thiết bị cầm tay, chẳng hạn như Mali / PowerVR / Vivante. Qt và Cairo có thể sử dụng OpenVG làm kết xuất đồ họa. Có các thư viện phần mềm triển khai OpenVG bằng phần cứng OpenGL (MonkVG, AmanithVG GLE) hoặc chỉ phần mềm (AmanithVG SRE, ShivaVG, AlexVG).


2

Scaleform GFx là một thư viện phần mềm trung gian thương mại để tích hợp phim Adobe Flash (kết xuất được tối ưu hóa, ActionScript và hơn thế nữa) vào công cụ của bạn.

Ở kiếp trước, codebase của Scaleform là của GameSWF . GameSWF là mã nguồn mở.

Tôi đã lên kế hoạch để thêm nhiều hơn vào câu trả lời này, nhưng khi tôi quay lại với nó, hầu hết các điểm chính tôi muốn nhấn vào đã được đề cập trong các câu trả lời khác.

Điều khác duy nhất tôi có thể nghĩ là đề cập đến điều đó có liên quan đến phương pháp dựa trên Flash là việc Adobe đã phát hành mã nguồn cho máy ảo ActionScript của họ, hiện đang sống tại Dự án Tamarin tại Mozilla.


1

Nếu bạn đang sử dụng windows XP hoặc muốn một cái gì đó hoạt động trên hầu hết các phiên bản windows, bạn nên kiểm tra DirectDraw (mặc dù hiện tại nó hơi cũ) hoặc GDI + , hoặc bạn có thể sử dụng Flash, có vẻ khá tốt để hiển thị vector và đa nền tảng.


DirectDraw đã không còn được sử dụng trong một thời gian và theo như tôi biết, nó không có khả năng riêng để kết xuất đồ họa dựa trên vector. Hồi ức của tôi là nó hoàn toàn dựa vào kết cấu và làm mờ. Tôi tin rằng GDI + không tương thích và GDI, trong khi được tăng tốc, khá nguyên thủy. Sẽ tốt hơn nếu đi với một thư viện như Cairo, nơi hỗ trợ nhiều trình kết xuất, ít nhất một trong số đó hỗ trợ kết xuất được tăng tốc GPU. Direct2D có lẽ là sự lựa chọn tốt nhất cho Vista và 7.
Mike Strobel

Thật tệ, tôi nghĩ GDI + đã được tăng tốc! Tôi đoán Direct2D sẽ là sự lựa chọn tốt nhất sau đó như bạn nói.
dotminic

1

Có một số cuộc thảo luận ở đây và về cách làm việc đồ họa SVG vào công cụ trò chơi XNA. Một ở đây: http://wam-games.com/2010/04/svg-in-xna/ và đây là một bài đăng trên trang web này: nghệ thuật SVG trực tiếp trong XNA

XNA xử lý khá nhiều thứ thông qua Direct3D khi tôi hiểu, vì vậy tất cả GPU đều được tăng tốc. Về cơ bản, bạn phải lập trình trong C # để sử dụng nó (bạn có thể sử dụng các ngôn ngữ khác, nhưng bạn phải hack nó.) Sử dụng XNA giúp bạn có Windows chắc chắn, nhưng cũng có khả năng chuyển sang XBox360 và một vài nền tảng di động.

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.