1. Probabilistically let ray through material or reflect it based on
transparency probability (which is essentially just alpha for now).
2. Introduce opaque flag to be able to treat transparent objects as not
casting shadows. This is not very realistic, but oh well.
this is very proof-of-concept quality. it should be definitely done some other way
e.g. we should control reflectivity and transparency differently (and not together)
and they should be based on texture ids, not on render_mode
it's also unfortunate that transparency required a lot of bounces. we should probably control transparency bounces separately from light bounces.
alternatively, transparency effects (beams, sprites) should be done with custom intersection shaders and not based on transparent geometry