clover-moe/spearmint

Rendering issue in stchdm2 (The State is Not Your Friend),

Closed this issue · 5 comments

https://youtu.be/YH0D0KHnFcc

I recorded a video showing the problem. In other games I'm more familiar with I would say it presents like a draw distance issue. Objects not rendering in relation to players position because the threshold to render distance hasn't been met. In Quake 3 I frankly have no idea what is happening here. In Vanilla Quake3 this problem doesn't appear to exist. It only occurs under Spearmint.

It seems like the same issue as "q3map2 '_skybox' entity rendering is broken" (#328). Thanks for the video.

It works correctly in the opengl2 renderer but not the default opengl1 renderer.

You can switch to the opengl2 renderer by opening the console by pressing shift+esc and then type com_renderer opengl2; vid_restart and press enter.

Hey this does appear to fix the issue. I'll keep an eye out for anything weird, but at first blush, again, it seems to be working correctly. Thanks for the quick response to this issue. I appreciate it.

Just out of curiosity, do you have any insight as to why it works on one and not the other?

My guess is there is an issue with surface culling using the frustum far plane. Vanilla Quake 3 doesn't do this at all. The opengl1 and opengl2 renderers have grown apart leading to different issues.

Spearmint opengl1 uses far plane surface culling code from Wolfenstein: Enemy Territory and Spearmint opengl2 uses code from ioquake3 opengl2. WolfET uses far plane surface culling for linear fog (which is opaque at a set distance, so you can drop surfaces past that) but I don't know what ioquake3 opengl2 uses it for (Quake 3 normally expands the far plane to include everything). There is no inherent reason both the renderers couldn't use the same surface culling code.

Fixed in 14c5fe8.