I'm trying to figure out the the best looking and/or most efficient way to fake volumetric light/god rays in gzdoom. I really like how they appear in Total Chaos but I haven't been able to figure out how they're achieved. Any technically viable solution where they'd look decent from most angles I can come up with would be pretty ridiculous performance-wise (like a buttload of 3d cones with low opacity and miniscule radius differences, or an enormous amount of sprites). Anyone have any ideas?
Discussion of any other tricks for things doom "shouldn't" be able to do is also quite welcome.
Fake volumetrics and other tricks
Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. This forum is archived - please use this set of forums to ask new questions.
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. This forum is archived - please use this set of forums to ask new questions.
- zrrion the insect
- Posts: 2411
- Joined: Thu Jun 25, 2009 1:58 pm
- Location: Time Station 1: Moon of Glendale
Re: Fake volumetrics and other tricks
I haven't got a test map anymore, but a lot of invisible 3d floors with varying levels of fog would probably achieve an aeffect similar to what you are looking for.
Re: Fake volumetrics and other tricks
That'd put limitations on angles and light levels of the parent sectors wouldn't it?
- zrrion the insect
- Posts: 2411
- Joined: Thu Jun 25, 2009 1:58 pm
- Location: Time Station 1: Moon of Glendale
Re: Fake volumetrics and other tricks
It would, so it isn't as easy to use but I remember getting some good looking lights out of it in my experiments
Re: Fake volumetrics and other tricks
The cheapest way: model them
The "don't do that, expensive SUPER SECRET way: linedef and/or 3D floor stacks
(for the second way, you can texture the "ray" to make it look like however you want... "angle" can be achieved by individually offsetting the slices; finally fade the opacity out so each slice gets more transparent... GZDB allows you to increment values with one click)
IMO I'd go with just modeling them, a lot of early 2000s games got away with using meshes and clever texturing on the model and it looked convincing
EDIT: https://udn.epicgames.com/Three/Volumet ... orial.html old tutorial for UDK on modeled light shafts, this will give you ideas on how to model and texture them. Note that you won't be able to do anything about the clipping and hard edge problems with GZDoom because of the very limited renderer
The "don't do that, expensive SUPER SECRET way: linedef and/or 3D floor stacks
(for the second way, you can texture the "ray" to make it look like however you want... "angle" can be achieved by individually offsetting the slices; finally fade the opacity out so each slice gets more transparent... GZDB allows you to increment values with one click)
IMO I'd go with just modeling them, a lot of early 2000s games got away with using meshes and clever texturing on the model and it looked convincing
EDIT: https://udn.epicgames.com/Three/Volumet ... orial.html old tutorial for UDK on modeled light shafts, this will give you ideas on how to model and texture them. Note that you won't be able to do anything about the clipping and hard edge problems with GZDoom because of the very limited renderer
Re: Fake volumetrics and other tricks
Thank you. Both of my own two attemps are actually 3d models (the cone is in fact the first 3d model I ever made myself) and I'd found that UDK tutorial previously. The "hard edge" problem is what I was getting at - I've thought long and hard about ways to work around that. If it is indeed impossible I'll just have to deal with it.Nash wrote:The cheapest way: model them
The "don't do that, expensive SUPER SECRET way: linedef and/or 3D floor stacks
[image]
(for the second way, you can texture the "ray" to make it look like however you want... "angle" can be achieved by individually offsetting the slices; finally fade the opacity out so each slice gets more transparent... GZDB allows you to increment values with one click)
IMO I'd go with just modeling them, a lot of early 2000s games got away with using meshes and clever texturing on the model and it looked convincing
EDIT: https://udn.epicgames.com/Three/Volumet ... orial.html old tutorial for UDK on modeled light shafts, this will give you ideas on how to model and texture them. Note that you won't be able to do anything about the clipping and hard edge problems with GZDoom because of the very limited renderer
But in the beginning of this video https://www.youtube.com/watch?v=Ta1EGfCQN4Y the rays of light actually seem to have soft edges similar to what is mentioned in the UDK tutorial. Perhaps they're simply flat planes, and thus they would indeed look odd at the right (or uh, wrong) angles. Because the other method of placing several low opacity light models within each other isn't really feasible due to 3d models eating up a lot of VRAM in GZDoom (or so I've heard). Perhaps that could be worked around by using md2s if the lower precision of the format saves on performance.