cormac-obrien / richter

A modern Quake engine.
http://c-obrien.org/richter/
MIT License
528 stars 32 forks source link

Choose new graphics backend #7

Closed cormac-obrien closed 6 years ago

cormac-obrien commented 7 years ago

Tomaka has officially dropped support for Glium, which means we need a new graphics backend. Vulkano looks the most promising, despite being a switch from OpenGL to Vulkan.

ozkriff commented 7 years ago

What about https://github.com/gfx-rs/gfx ?

cormac-obrien commented 6 years ago

I'm currently looking into gfx and might end up using it since it targets a wider range of low-level APIs. Unfortunately the documentation is a bit sparse but that's no different from Vulkano or any of the other high-level Rust graphics APIs.

vitvakatu commented 6 years ago

We're glad to hear that, @cormac-obrien! The documentation is a bit sparse indeed, but there're a lot of examples and we're always ready to answer any question asked in our gitter room. Moreover there're some examples of gfx usage in games and game engines (major ones are Amethyst and Three-rs projects). Friendly advice: you need to look at v0.16 branch in the repository for stable version, we've had a lot of issues related to using of invalid branch (now it's noted in readme though, so just in case...)

cormac-obrien commented 6 years ago

One thing that complicates this slightly is that BSP vertices are stores in triangle-fan format (since this is how the polygons were originally rendered by the software renderer), and it appears gfx dropped support for triangle fans a while back.

This means vertices will have to be converted to triangle list format, but that shouldn't be a huge deal considering the low poly count of Quake 1 maps. Probably for the best considering triangle fans aren't supported by DX (if I'm not mistaken).

cormac-obrien commented 6 years ago

Now that animated BSP textures are implemented I'm feeling good about keeping gfx as the graphics backend. Closing this issue, thanks to @ozkriff for the suggestion and @vitvakatu for the help!