I've seen somewhere on this forum a feature of some engine was discussed that thing takes a 3D model and renders it pixelated so the closer to the player view it gets the more pixelated it gets. I'd like to discuss the deliberate 3D engines "degradation" we have lots of 3D engines these days and none of them comes close to achieving Vanila Doom look, except GZDoom and LZDoom with their "Vanilla" sector lighting mode, but you know there is a lot of restrictions that come from the original doom engine naturally, like it's pretty tricky to handle 3D geometry in the game. There are 3D floors, stacked sectors, line portals but all they have pros and cons and can never substitute the real 3D level geometry.
Let's say we take Quake engine to review that has lightmaps, is it possible to simulate Vanilla Doom lighting there. I would propose to have anoter 3D entity brush that would literally fill some area on a map with "Sector" brightness value property. Then define which brushes are "Walls" and defining different brightness settings to them to simulate fake contrast effect.
On 3D engines deliberate degradation
- Darkcrafter
- Posts: 586
- Joined: Sat Sep 23, 2017 8:42 am
- Operating System Version (Optional): Windows 10
- Graphics Processor: nVidia with Vulkan support
- Contact:
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49225
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: On 3D engines deliberate degradation
The Quake engine originally had an 8 bit paletted renderer that did most of the same things as Doom, so it should be doable. Of course you have to keep in mind that in order to handle the lighting the color palette is far more restricted, there's a reason why Quake was notoriously "all brown".
- Darkcrafter
- Posts: 586
- Joined: Sat Sep 23, 2017 8:42 am
- Operating System Version (Optional): Windows 10
- Graphics Processor: nVidia with Vulkan support
- Contact:
Re: On 3D engines deliberate degradation
Yeah, btw Mark V engine allows for color lighting if you download a custom levels *.pak file with rendered lights: https://imgur.com/7zpS0aP
But I mentioned Quake just because it's a general example of 3D engine and to be honest movement and feeling suck compared to doom, I would really like to get Vanilla Doom look with something like Unreal Engine 4 or CryTech or something like this: https://youtu.be/3Q2dAh_cmFk
I understand this sounds like a 1st april joke but it's not. All the engines have a goal of looking as photo-realistic as possible while such simple thing like Doom lighting isn't there, perhaps there is just no demand for it but there are still some people including me that would like to try all the glory of modern engines with doom style graphics, 256-colors - gzdoom palette post processing shader does a fantastic job! Maybe with some modern materials and lighting mixed up with it. That could really lead to interesting results I believe! Even if it's getting to tedious and hard to draw all these gigantic lighting brushes I think there is a way to do that by placing light sources that would have sharp edges and gradual fading would be "posterized" like it's done in GZDoom's shadowmapping.
But what I would like to get is somewhat Doom Builder map building approach with some modern convenient things on top of it like integrated 3d structures editing, terrain editing.
GZDoom does an amazing job with sprites - they don't look as quite good in any other modern engines.
So what I want here is just "Bigger, bader and better" doom with the same old fashioned graphics mixed up with modern, so larger maps, open worlds would be possible.
But I'm also afraid if there is any way to transfer doom feeling to modern engines or just simulate it to some degree of accuracy, somehow friend it up with collision of bumpy surfaces. I'm not even thinking of getting the exact thing but just a simulation.
But I mentioned Quake just because it's a general example of 3D engine and to be honest movement and feeling suck compared to doom, I would really like to get Vanilla Doom look with something like Unreal Engine 4 or CryTech or something like this: https://youtu.be/3Q2dAh_cmFk
I understand this sounds like a 1st april joke but it's not. All the engines have a goal of looking as photo-realistic as possible while such simple thing like Doom lighting isn't there, perhaps there is just no demand for it but there are still some people including me that would like to try all the glory of modern engines with doom style graphics, 256-colors - gzdoom palette post processing shader does a fantastic job! Maybe with some modern materials and lighting mixed up with it. That could really lead to interesting results I believe! Even if it's getting to tedious and hard to draw all these gigantic lighting brushes I think there is a way to do that by placing light sources that would have sharp edges and gradual fading would be "posterized" like it's done in GZDoom's shadowmapping.
But what I would like to get is somewhat Doom Builder map building approach with some modern convenient things on top of it like integrated 3d structures editing, terrain editing.
GZDoom does an amazing job with sprites - they don't look as quite good in any other modern engines.
So what I want here is just "Bigger, bader and better" doom with the same old fashioned graphics mixed up with modern, so larger maps, open worlds would be possible.
But I'm also afraid if there is any way to transfer doom feeling to modern engines or just simulate it to some degree of accuracy, somehow friend it up with collision of bumpy surfaces. I'm not even thinking of getting the exact thing but just a simulation.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49225
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: On 3D engines deliberate degradation
Doom lighting isn't "such a simple thing", The algorithm makes no sense mathematically and doing it on real graphics hardware is quite expensive. Granted, it's still better than what Build has, but both engines share one thing: The math they apply was done for one single reason - it's fast to pull off with integer math on a CPU.Darkcrafter wrote: while such simple thing like Doom lighting isn't there, perhaps there is just no demand for it but there are still some people including me that would like to try all the glory of modern engines with doom style graphics, 256-colors
- Darkcrafter
- Posts: 586
- Joined: Sat Sep 23, 2017 8:42 am
- Operating System Version (Optional): Windows 10
- Graphics Processor: nVidia with Vulkan support
- Contact:
Re: On 3D engines deliberate degradation
That's interesting, could you please explain a bit more on what does make it hard, is this somehow tied up to wall brightness, light diminishing or something else? GZDoom recreates the effect really faithfully, 3D models seem to be affected by light diminishing too and don't visually stand out from the overall picture or is it was simpler to implement with GZDoom because of integer math it uses too?
- leileilol
- Posts: 4449
- Joined: Sun May 30, 2004 10:16 am
- Preferred Pronouns: She/Her
- Location: GNU/Hell
Re: On 3D engines deliberate degradation
It'd be slower actually. It'd require the spans to be more precise in writing depth for the doom-style attenuation to work (Quake walls only subdivide to every 8 or 16 screen pixels and processing depth on this would be blocky), plus the surface cache wouldn't have lighting applied and it would have to be done on the surface spans instead which would require more reads since it's effectively variablized fog. also there's no such thing as sectors in quake, the closest you can get is sampling from the light point on the floor's luxels which is 1 per 16 texels. It would look blocky and more CyClones-seque if attempted, and be overall slower when you've got wall span drivers doing this. The way Doom drew things differs heavily siginifcantly than anything more grounded in the third dimension. Doom had to go on common 1993 386s. There's more behind it than aesthetic face value.Darkcrafter wrote:Let's say we take Quake engine to review that has lightmaps, is it possible to simulate Vanilla Doom lighting there.
tl;dr: no