İyi bir çapraz platform C ++ vektör grafik kütüphanesi var mı? [kapalı]


9

Bir oyun yapıyorum ve vektör grafikleri kullanmak istiyorum. Kahire'yi kullanarak yeniden kodlamaya başladım ve performans korkunç. Farklı bir kütüphane arıyorum. C ++ ve çapraz platform için olması gerekir (örn. Direct2D yok). Daha önce böyle birisinin sorduğu başka bir soru daha vardı, ancak uygun cevap yoktu. Bir şey olmalı ...?


"Daha önce sorulan soru", gamedev.stackexchange.com/questions/4788/… anlamına mı geliyor ?
Tetrad

@ Tetrad: Bir önceki soru, pencereler için açık bir şekilde çözüm istediği için çoklu platformu dolaylı olarak hariç tutuyor. Ve cevaplar sadece Windows ile ilgili çözümlere işaret ediyor gibi görünüyor.
Coyote

2
@Zach Hinchy: Çapraz platform dediğinde tam olarak ne demek istiyorsun? Windows, Linux, OS X? Yoksa iOS, Brew, Android avuçiçi platformları ekliyor musunuz?
Coyote

2
"Bir şey olmalı ...?" Neden? Vektör grafikleri genel olarak 30 + fps'ye ihtiyaç duyan insanların yapacağı bir şey değildir. Web tarayıcınız 30 fps'de sayfa yüklüyor mu? 10 fps bol. Vektör grafikleri kullanıyorsanız, bunun nedeni kaliteye performansa değer vermenizdir . Ve böylece, vektör grafik kütüphaneleri kaliteye performansa değer verir. Kahire'nin kendisi yavaş değil, ancak kaliteli bir vektör grafik oluşturucusudur. Ve bu kalite, performans için köşeleri kesmediği anlamına gelir.
Nicol Bolas

1
@ iamcreasy: Sadece daha büyük / daha küçük bir dörtlü çizmek ile bir vektör grafik kütüphanesi arasında büyük bir fark vardır . Oyunlar GPU ile oluşturulur; bir vektör grafik kütüphanesi kullanmazlar. Kahire, AntiGrain veya bu doğaların hiçbirini kullanmıyorlar.
Nicol Bolas

Yanıtlar:


21

Konunun oldukça zor olduğundan, çok sayıda çoklu platform çözümünün başlatıldığından ve daha azının kendi başına hayatta kaldığından korkuyorum. Birkaç ay önce konuya bakıyordum. IOS ve Android'de çalıştırmak için motora ihtiyaç duyduğum için bir kısıtlama vardı. O zamanlar bana gerçekten uygun bir şey bulamadım.

Ama hatırladığımdan birkaç işaretçi: her GUI sistemi bir çeşit çizim API'sine sahiptir. Yani QT gibi çapraz platform olanlarda ilgi çekici bir şey bulabilirsiniz .

Kahire eşdeğeri AntiGrain olacaktır . Performansı karşılaştırmak isteyebilirsiniz.

OpenFrameworks vektör grafikleri için desteğe sahiptir.

Bazı vektör grafik desteğine ve buna adanmış bir dile sahip çok büyük bir kütüphane ImageMagick'tir .

Daha düşük seviyede gnome projesinden Libxmi ve Libart'ı bulacaksınız .

Üst düzey bir API değil - ve size uyabilecek olasılıkların ne olduğundan emin değilim - ancak standart OpenVG var . Yazılım OpenGL ve OpenGL ES oluşturucular üzerinden birden fazla OpenVG bağlantı noktası vardır. Mesa 3D ayrıca bir OpenVG uygulamasına sahip gibi görünüyor. Ancak bazı platformlar için yalnızca ticari çözümler sunulacaktır.

Vektör grafikleri için API'leri entegre eden daha üst düzey kütüphaneler vardır. Bunlar arasında GUI tasarımı için Clutter adında bir açık kaynak var ve ciddi oyun tasarımında kullanılan ölçek formu var (Açık Kaynak Değil). Bu oyun motoru vektör grafikleri çizmek için bazı işlevlere sahiptir: 2DEngine


EDIT : dağınıklık görünüşte Kahire kullanır.


3

MonkVG, OpenGL ES 1.1 ve 2.0'ın üstünde bir çapraz platform OpenVG emülasyonudur. Bkz. Https://github.com/micahpearlman/MonkVG

Not: Bu kütüphanenin asıl yazarı ve koruyucusuyum. Çok liberal bir BSD lisansına sahiptir.


Bu soruya iyi bir katkıdır, ancak bağlı olduğunuz bir şeyi (kendi github hesabınız gibi) tanıttığınız zaman not etmek uygundur.
Seth Battin

-1

Ben rahatsız değil ve sadece yüksek çözünürlüklü görüntüler ve OpenGL ile ölçekleme ile sona erdi. Durumum için yeterince iyi çalışıyor.


4
Bir kütüphaneyi sordunuz, ancak söylediği bir yanıtı kabul ettiniz, sadece başka bir yol seçin (size ait olduğu cevabını göz ardı ederek). Bu iyi bir karar değil. (ayrıca cevabını yazmak için @Coyoto'nun yaklaşık 15 dakika sürdüğü gerçeğini göz ardı ederek). İyi günler!
Quazi Irfan

1
bu yaklaşık 3 yıl çok geç, ama son zamanlarda başka bir cevap gönderildi ve bildirimi aldım, bu yüzden sonunda bunu gördüm. Devam ettim ve benimkini kabul etmedim ve @ Coyote's'i kabul ettim. Bunun için üzgünüm, o zaman StackOverflow'u tam olarak anlamadım. umarım - umarım gelecekte soruyu gören insanlara yardımcı olur.
Zach Hinchy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.