크로스 플랫폼 C ++ 벡터 그래픽 라이브러리가 있습니까? [닫은]


9

게임을하고 있는데 벡터 그래픽을 사용하고 싶습니다. 카이로를 사용하여 다시 코딩하기 시작했으며 성능이 끔찍합니다. 그래서 다른 도서관을 찾고 있습니다. C ++ 및 크로스 플랫폼 용이어야합니다 (예 : Direct2D 없음). 다른 사람이 전에 이런 질문을했지만 적절한 답변이 없었습니다. 뭔가 있을까요 ...?


"이전 질문"은 gamedev.stackexchange.com/questions/4788/… 을 의미 합니까?
Tetrad

@Tetrad : 앞의 질문은 멀티 플랫폼이 암시 적으로 Windows 솔루션을 명시 적으로 요청하므로 제외합니다. 그리고 대답은 Windows 관련 솔루션만을 가리키는 것 같습니다.
코요테

2
@Zach Hinchy : 크로스 플랫폼이라고 할 때 정확히 무엇을 의미합니까? 윈도우, 리눅스, OS X? 또는 iOS, Brew, Android 핸드 헬드 플랫폼을 포함합니까?
코요테

2
"뭔가가 있을까 ...?" 왜? 일반적으로 벡터 그래픽은 30 + fps가 필요한 사람들이하는 것이 아닙니다. 웹 브라우저는 30fps로 페이지를로드합니까? 10fps는 충분합니다. 벡터 그래픽을 사용하는 경우 성능보다 품질 을 중요하게 생각하기 때문 입니다. 따라서 벡터 그래픽 라이브러리는 성능보다 품질을 중요시합니다. 카이로 자체는 느리지 않지만 고품질 벡터 그래픽 렌더러입니다. 그리고 그 품질은 성능의 코너를 자르지 않는다는 것을 의미합니다.
Nicol Bolas

1
@iamcreasy : 쿼드를 작게 / 작게 그리는 것과 벡터 그래픽 라이브러리를 그리는 것에 는 차이가 있습니다. 게임은 GPU로 렌더링됩니다. 그들은 벡터 그래픽 라이브러리를 사용하지 않습니다. 그들은 카이로 나 안티 그레인 또는 그 성질을 사용하지 않습니다.
Nicol Bolas

답변:


21

나는 그 주제가 꽤 까다 롭고, 소수의 멀티 플랫폼 솔루션이 출시 된 것으로 보이며, 더 적은 수가 스스로 살아남은 것 같습니다. 몇 달 전에 주제를 조사하고있었습니다. iOS 및 Android에서 실행하는 엔진이 필요했기 때문에 제약이있었습니다. 당시에 나에게 가장 적합한 것을 찾지 못했습니다.

그러나 내가 기억하는 몇 가지 조언 : 각 GUI 시스템에는 몇 가지 형식의 그리기 API가 있습니다. 따라서 QT 와 같은 플랫폼 간에 관심있는 것을 찾을 수 있습니다 .

cairo는 AntiGrain 과 동일 합니다. 성능을 비교할 수 있습니다.

OpenFrameworks 는 벡터 그래픽을 지원합니다.

벡터 그래픽을 지원하는 전용 라이브러리 인 ImageMagick 은 매우 큰 라이브러리입니다 .

낮은 수준 에서는 그놈 프로젝트에서 LibxmiLibart 를 찾을 수 있습니다.

높은 수준의 API는 아니며, 어떤 것이 당신에게 적합한 지 잘 모르겠지만 표준 OpenVG가 있습니다. 소프트웨어 OpenGL 및 OpenGL ES 렌더러에는 여러 개의 OpenVG 포트가 있습니다. Mesa 3D도 OpenVG를 구현 한 것으로 보입니다. 그러나 일부 플랫폼의 경우 상용 솔루션 만 사용할 수 있습니다.

벡터 그래픽 용 API를 통합하는 고급 라이브러리가 있습니다. 이 중 GUI 디자인을위한 Clutter 라는 오픈 소스가 있으며 진지한 게임 디자인에 사용되는 스케일 폼 (Open Source가 아님)이 있습니다. 이 게임 엔진에는 벡터 그래픽을 그리는 기능이 있습니다 : 2DEngine


편집 : 혼란은 분명히 cairo를 사용합니다.


3

MonkVG는 OpenGL ES 1.1 및 2.0을 기반으로하는 크로스 플랫폼 OpenVG 에뮬레이션입니다. 참조 : https://github.com/micahpearlman/MonkVG

참고 : 저는이 도서관의 원저자이자 관리자입니다. 매우 자유로운 BSD 라이센스가 있습니다.


이것은 질문에 대한 훌륭한 기여이지만, 당신이 제휴 한 것을 홍보 할 때 (예를 들어 자신의 github 계정과 같은) 참고하는 것이 좋습니다.
Seth Battin

-1

귀찮게하지 않고 고해상도 이미지를 사용하고 OpenGL을 사용하여 크기를 조정했습니다. 내 상황에 잘 작동합니다.


4
도서관에 대해 질문했지만 답변이 접수 된 곳에서 다른 방법을 선택하십시오 (자신의 답변이 사실임을 무시하고). 좋은 판단이 아닙니다. (또한 @Coyoto가 그의 답변을 작성하는 데 약 15 분이 걸렸다는 사실을 무시하십시오). 좋은 하루 보내세요!
Quazi Irfan

1
약 3 년이 늦었지만 최근에 다른 답변이 제출되어 알림을 받았으므로 마침내이 내용을 확인했습니다. 나는 계속해서 받아들이지 않았고 @Coyote를 받아 들였다. 죄송합니다. 당시에는 StackOverflow를 실제로 이해하지 못했습니다. 늦지 않는 것보다 늦는 게 좋을 것 같아요. 앞으로 질문을 보는 사람들에게 도움이 되길 바랍니다.
Zach Hinchy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.