Just Thank you!

I just wanted to say thank you to all those who keep ioquake3 alive. And a special thanks for this new renderer. Thanks to all maintainers, and all those people that made this new renderer happen.
Thanks to ioquake3!


Looks gorgeous! (btw how did you get the soft player shadow? In my build the player shadow is solid black… Probably guessing it’s a command setting?

Hi quirkychirps,

The soft shadows are a feature of the new renderer, so the first thing to do is to enable the new renderer with this command: cl_renderer opengl2
For whatever reason soft shadows only works with the \devmap command, so the soft shadows do not work if you started your map regulary via start menu.
Finally set r_forceSun 1 via console command and the soft shadows should work instantly.
Please keep in mind that the soft shadows will only appear where sunlight casts shadows, not entity (indoor or dynamic) lights. The solid black shadows are caused due some cg_shadows setting, it’s broken in many ways. On the other hand these solid black shadows are even caused by entity lights. This means they look awful but they work in any area, regardless if sunlight is there or not.


  1. set cl_renderer to 1
  2. start any map via devmap command
  3. set r_forcesun to 1

The technique that is used is called ‘cascaded shadow maps’. It is a really fast algorithm. More information can be found on the official README for the renderer: https://github.com/ioquake/ioq3/blob/master/opengl2-readme.md
The main author was @SmileTheory.

Thanks @ToKu - I tried out the r_forceSun 1&2 and it really looks good, though with the sunrise/sunset i have a big black ball that follows me around on occasion… Also what cmd creates the partial bloom effect (on patriot’s shoulder)?

Yeah, the big black annoying ball is a rendering bug that was introduced a while ago. The bloom effect is a feature I added to my own renderer and is not supported by ioquake3’s unmodified renderer 2. If I remember correctly I read somewhere here at the forums that SmileyTheorie decides if ioquake3 will add bloom or not. I’m not sure how active he is developing the new renderer. Hmm…