phoboslab / wipeout-rewrite

2.64k stars 212 forks source link

Track image bleeds through ship engine area #65

Open tjrileywisc opened 1 year ago

tjrileywisc commented 1 year ago

image

This has probably been a bug since forever. It's easier to spot if you fly over the weapon collect points or the sides of the track.

phoboslab commented 1 year ago

The way to fix this is to draw the exhaust plume in a separate draw call from the rest of the ship. The exhaust plume (being transparent) shouldn't write to the depth buffer. Currently the whole ship is in a single object, which makes this difficult. We'd need to patch the object loading to somehow put the exhaust plume geometry in a separate object.

I'm actually thinking about rewriting the renderer to upload all geometry to the gpu on load time (as outlined in #61). The exhaust plume is the only instance in the game where vertex positions are updated. But we do have a bunch more instances where the vertex colors are changed each frame (most of them in scene.c + the weapon tiles on the track) – changing these to work on raw tris_t is quite involved.

I need to find a bunch of free time to dive into this...