Solusi Grafis Vektor Kinerja Tinggi [ditutup]

12

Saya mencari perpustakaan vektor grafis berkinerja tinggi yang dapat saya gunakan di game saya.

Saya berpikir sepanjang garis grafik vektor seperti yang dapat dibuat dengan SVG .

Saya akan mempertimbangkan bahasa apa pun saat ini (tetapi harus dijalankan pada Windows). Solusi yang memanfaatkan perangkat keras GPU akan lebih bagus.

Terima kasih sebelumnya.

CiscoIPPhone
sumber
Apakah ada alasan Anda ingin menggunakan Grafik Vektor?
AttackingHobo
Ya: Saya suka gayanya, mereka dapat mengkompres lebih baik daripada tekstur dan mereka lebih fleksibel untuk animasi.
CiscoIPPhone

Jawaban:

7

Jika Windows (Vista dan lebih) adalah satu-satunya platform Anda, Anda harus melihat ke Direct2D , yang menyediakan GPU dipercepat grafis vektor 2D dengan perangkat lunak mundur. Untuk solusi lebih platform x ke Kairo , yang saya yakini memiliki rasterizer berakselerasi GPU.

boki
sumber
Menarik, saya belum pernah mendengar tentang Direct2D sebelumnya. Tampaknya tidak banyak digunakan - mungkin karena itu hanya Windows 7.
CiscoIPPhone
Ini adalah Vista dan Windows 7 saja, karena penggunaan Direct3D 10. Dan ini agak baru :)
boki
2
Perhatikan bahwa beberapa programmer game profil tinggi menganggap Direct2D mengerikan - braid-game.com/news/?p=455 (yang juga terhubung ke podcast) dan braid-game.com/news/?p=466 .
Saya pikir pembungkus yang dikelola untuk Direct2D cenderung lebih mudah untuk bekerja dengan daripada perpustakaan asli. Dan sebagian besar kritik yang saya baca tentang Direct2D mengutip contoh-contoh di mana tujuan yang sama dapat dicapai dengan relatif mudah di Direct3D. Tentu saja, itu terlalu sulit untuk menggambar persegi panjang, tetapi itu bekerja dengan baik untuk kurva dan bentuk dengan tekstur dan / atau membelai nontrivial. Selain itu, D2D tidak ditujukan terutama untuk pengembang game - itu dimaksudkan untuk memberikan alternatif yang lebih kaya, lebih berkinerja untuk GDI. Tapi itu beroperasi dengan baik dengan Direct3D.
Mike Strobel
3

OpenVG adalah standar untuk grafik vektor akselerasi perangkat keras. Ini didukung oleh GPU yang ditargetkan untuk perangkat genggam, seperti Mali / PowerVR / Vivante. Qt dan Kairo dapat menggunakan OpenVG sebagai rendering yang didukung. Ada pustaka perangkat lunak yang mengimplementasikan OpenVG menggunakan perangkat keras OpenGL (MonkVG, AmanithVG GLE) atau hanya perangkat lunak (AmanithVG SRE, ShivaVG, AlexVG).


sumber
2

Scaleform GFx adalah perpustakaan middleware komersial untuk mengintegrasikan film Adobe Flash (rendering yang dioptimalkan, ActionScript, dan banyak lagi) ke dalam mesin Anda.

Dalam kehidupan sebelumnya, basis kode Scaleform GFx adalah milik GameSWF . GameSWF adalah open source.

Saya berencana untuk menambahkan lebih banyak ke jawaban ini, tetapi pada saat saya kembali ke sana, sebagian besar poin utama yang ingin saya tekan disebutkan dalam jawaban lain.

Satu-satunya hal lain yang dapat saya pikirkan untuk menyebutkan yang relevan dengan pendekatan berbasis Flash adalah fakta bahwa Adobe telah merilis kode sumber ke mesin virtual ActionScript mereka, yang sekarang tinggal di Tamarin Project di Mozilla.

Neverender
sumber
1

Jika Anda menggunakan windows XP atau menginginkan sesuatu yang berfungsi pada sebagian besar versi windows, Anda harus memeriksa DirectDraw (meskipun sekarang sudah agak tua) atau GDI + , atau Anda dapat menggunakan Flash, yang tampaknya cukup baik untuk rendering vektor, dan merupakan lintas platform.

dotminik
sumber
DirectDraw telah ditinggalkan untuk beberapa waktu sekarang, dan sejauh yang saya tahu, itu tidak memiliki kemampuan asli untuk rendering grafis berbasis vektor. Ingatan saya adalah bahwa itu sepenuhnya bergantung pada tekstur dan blitting. Saya percaya GDI + tidak terhapus dan GDI, meskipun dipercepat, agak primitif. Akan lebih baik untuk pergi dengan perpustakaan seperti Kairo, yang mendukung banyak penyaji, setidaknya satu yang mendukung rendering yang dipercepat GPU. Direct2D mungkin merupakan pilihan terbaik untuk Vista dan 7.
Mike Strobel
Buruk saya, saya pikir GDI + dipercepat! Saya kira Direct2D akan menjadi pilihan terbaik seperti yang Anda katakan.
dotminic
1

Ada beberapa diskusi di sana-sini tentang cara kerja grafik SVG ke mesin game XNA. Satu di sini: http://wam-games.com/2010/04/svg-in-xna/ dan di sini ada posting di situs ini: Rendering seni SVG langsung di XNA

XNA menyalurkan hampir semua melalui Direct3D seperti yang saya mengerti, jadi semua GPU dipercepat. Anda pada dasarnya harus memprogram dalam C # untuk menggunakannya (Anda dapat menggunakan jenis bahasa lain, tetapi Anda harus meretasnya.) Menggunakan XNA membuat Anda yakin Windows, tetapi juga kemungkinan porting ke XBox360 dan beberapa platform portabel.

CodexArcanum
sumber