3D-API-Wrapper, die das Leben erträglicher machen
Verfasst: 07.09.2023, 10:33
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.
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.