Високопродуктивні векторні графічні рішення [закрито]


12

Я шукаю високопродуктивну бібліотеку векторної графіки, яку можу використовувати у своїх іграх.

Я розмірковую за напрямками векторної графіки, наприклад, тих, які можна зробити за допомогою SVG .

Я розгляну будь-яку мову на даний момент (але повинен працювати в Windows). Рішення, яке скористається обладнанням GPU, було б чудово.

Заздалегідь спасибі.


Чи є якась причина, що ви хочете використовувати векторну графіку?
AttackingHobo

Так: мені подобається стиль, вони можуть стискатися краще, ніж текстури, і вони більш гнучкі для анімації.
CiscoIPPhone

Відповіді:


7

Якщо Windows (Vista та новіші версії) - ваша єдина платформа, ви повинні заглянути в Direct2D , який забезпечує прискорене графічне відображення двовимірної графічної графіки графічним процесором із резервним забезпеченням програмного забезпечення. Для отримання більш х-платформенного рішення погляньте на Каїр , який, на мою думку, має розсіяний графічний прискорений графічний процесор.


Цікаво, що я ніколи раніше не чув про Direct2D. Здається, він не використовується широко - можливо, тому, що він є лише Windows 7.
CiscoIPPhone

Це лише Vista та Windows 7, завдяки використанню Direct3D 10. І це досить нове :)
boki

2
Зауважте, що декілька гучних ігрових програмістів вважають Direct2D жахливим - braid-game.com/news/?p=455 (який також посилається на подкаст) та braid-game.com/news/?p=466 .

Я думаю, що з керованою обгорткою для Direct2D працювати набагато простіше, ніж з рідною бібліотекою. І більшість зауважень, які я читав щодо Direct2D, наводили приклади, коли ті самі цілі можна досягти порівняно легко в Direct3D. Звичайно, намалювати прямокутник є надмірним, але він добре справляється з кривими та формами з нетривіальною текстурою та / або погладжуванням. Крім того, D2D не був спрямований в першу чергу на розробників ігор - він мав запропонувати більш багату, більш ефективну альтернативу GDI. Але це добре взаємодіє з Direct3D.
Майк Стробель

3

OpenVG - стандарт для апаратної векторної графіки. Він підтримується графічними процесорами, призначеними для портативних пристроїв, таких як Mali / PowerVR / Vivante. Qt та Каїр можуть використовувати OpenVG в якості резервного копіювання. Існують бібліотеки програм, які реалізують OpenVG, використовуючи апаратне забезпечення OpenGL (MonkVG, AmanithVG GLE) або лише програмне забезпечення (AmanithVG SRE, ShivaVG, AlexVG).


2

Scaleform GFx - це комерційна бібліотека середнього програмного забезпечення для інтеграції фільмів Adobe Flash (оптимізована візуалізація, ActionScript тощо) у ваш двигун.

У минулому житті кодова база Scaleform GFx була такою, як GameSWF . GameSWF є відкритим кодом.

Я планував додати ще до цієї відповіді, але до того часу, коли я повернувся до неї, більшість основних моментів, на які я хотів би вплинути, були згадані в інших відповідях.

Єдине інше, що я можу згадати, що стосується підходу, заснованого на Flash, - це те, що Adobe випустила вихідний код на свою віртуальну машину ActionScript, яка зараз живе в проекті Tamarin в Mozilla.


1

Якщо ви використовуєте Windows XP або хочете, щоб це працювало на більшості версій Windows, слід перевірити DirectDraw (хоча він уже трохи старий) або GDI + , або ви можете використовувати Flash, який здається досить хорошим для векторного візуалізації, і це поперечна платформа.


DirectDraw вже давно застарів, і, наскільки я знаю, він не має власних можливостей для візуалізації векторної графіки. Мій спогад полягає в тому, що він повністю покладався на текстури і блискучі. Я вважаю, що GDI + є неприскореним, і GDI, хоча і прискорений, є досить примітивним. Було б краще працювати з бібліотекою на зразок Каїра, яка підтримує кілька рендерів, принаймні один з яких підтримує GPU-прискорену візуалізацію. Direct2D - це, мабуть, найкращий вибір для Vista та 7.
Майк Стробель

Моє погано, я думав, що GDI + був прискорений! Я думаю, Direct2D був би найкращим вибором тоді, як ви кажете.
dotminic

1

Тут і там обговорюється, як працювати з графікою SVG в ігровому двигуні XNA. Один тут: http://wam-games.com/2010/04/svg-in-xna/, і ось цей пост на цьому самому сайті: Надання SVG-мистецтва безпосередньо в XNA

XNA передає майже все через Direct3D, наскільки я це розумію, тому все GPU прискорено. В основному ви повинні запрограмувати на C #, щоб використовувати його (ви можете користуватися іншими мовами, але вам доведеться зламати його.) Використання XNA отримує впевненість у вас Windows, а також можливість перенесення на XBox360 та пару портативних платформ.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.