Seite 1 von 1

3D-API-Wrapper, die das Leben erträglicher machen

Verfasst: 07.09.2023, 10:33
von Schrompf
Hi!

Hat jemand Erfahrungen mit 3D-API-Wrappern? Ich bin seit 20+ Jahren auf DirectX9, aber will/muss/sollte echt jetzt langsam mal auf was Modernes wechseln. Ich habe dann angefangen, mich mit Vulkan zu beschäftigen, aber Heilige Fäkalie ist das mühsam.

Aber es gibt doch Wrapper! Die glätten manche allzu scharfe Kante der modernen 3D-APIs und geben hoffentlich noch genug Feinkontrolle, um z.B. Ressourcen-Transfers transparent im Hintergrund abzuwickeln.

1) BGFX ist ein Wrapper um... naja... ALLES. Vulkan, DX12, alles darunter. Als ich zuletzt geschaut habe, haben sie allerdings einen Worker Thread erzwungen, und alle Calls gingen nur in ne Queue und wurden erst drüben ausgeführt. Das vereint sich nicht mit meinem Job-System und meinem Wunsch, Command Queues auch mal concurrent zu konstruieren.

2) WebGPU die API ist wohl etwas vernünftiger als Vulkan, dann gab's diverse Implementationen davon, ich habe hier Google Dawn verlinkt. Ich habe es nicht zum Bauen bekommen. Das Ding pullt halb Google. Die Firefox-Implementation ist in Rust, die krieg ich also nicht so einfach integriert, vor allem wenn ich nen Source Build haben will.

3) Diligent Engine ist ein anderer Wrapper um DX12, DX11, Vulkan, usw. Die API sah ganz vernünftig aus, und ich kann wohl vom jeweiligen Backend Commands einstreuen, wenn ich wirklich muss. Ich bin aber noch nicht weit genug vorgedrungen, um bewerten zu können, ob und wie einfach es baut, ob's Fallstricke gibt, und ich hab irgendwo aufgeschnappt, dass auch die Lib angeblich nen Worker Thread erzwingt.

Die Frage ist also: hat jemand Erfahrungen mit irgendwas davon? Ich möchte gern den 3D-API-Teil meines Frameworks ersetzen, OHNE Window Management, Input, Sound, sonstwas auch alles ersetzen zu müssen.

Re: 3D-API-Wrapper, die das Leben erträglicher machen

Verfasst: 07.09.2023, 20:56
von smurfer
Hi,

ich habe sehr gute Erfahrungen mit https://magnum.graphics gemacht. Immer sofortige Hilfe auf gitter. Nur etwas "geschwätzig"/C++ig, also sehr viele Templates etc.

Edit: Backends wie SDL2, glfw etc. lassen sich einstellen/nutzen, aber vielleicht ist es etwas viel für deine Belange, mehr Middleware als Wrapper.

Re: 3D-API-Wrapper, die das Leben erträglicher machen

Verfasst: 08.09.2023, 10:08
von smurfer
Sorry Schrompf, habe jetzt erst verstanden und gestern überlesen, dass es dir spezifisch um Erfahrungen mit den drei genannten Wrappern ging.

Re: 3D-API-Wrapper, die das Leben erträglicher machen

Verfasst: 08.09.2023, 10:17
von Schrompf
Nönö, auch eigene Erfahrungen sind wertvoll. Ich wollte nur nicht nen Einzeiler posten und hab deswegen ein paar Wrapper zusammengetragen, die ich kannte.

Re: 3D-API-Wrapper, die das Leben erträglicher machen

Verfasst: 08.09.2023, 19:25
von Matthias Gubisch
Wie high/lowlevel sollte es denn sein?
Ich könnte dir anbieten zu versuchen mein vulkan backend zu extrahieren.
Müsstest du vielleicht ein paar kleine Modifikationen machen aber das gröbste wrapped das schon weg