
OpenGL vs Software Render
#1 Posted 02 January 2013 - 07:21 AM
This post has been edited by shoober: 02 January 2013 - 07:22 AM
#2 Posted 02 January 2013 - 07:53 AM
shoober, on 02 January 2013 - 07:21 AM, said:
Someone can do a better job of explaining this than me, I'm sure. OpenGL, or Polymost rendering I believe it's called in eDuke32, allows for texture filtering (which makes textures look a bit smoother), anisotropic filtering, and most importantly the use of high-resolution textures and models (though the HRP is intended for use with Polymer). Other than that there's nothing special. Unless the usermap or graphics demand it, I always play with the original Software rendering, but then again I like to emulate the old-school experience as much as possible. I even have the AdLib music pack.
This post has been edited by Achenar: 02 January 2013 - 07:54 AM
#3 Posted 02 January 2013 - 09:17 AM
shoober, on 02 January 2013 - 07:21 AM, said:
I honestly have no idea if Duke 3D has any effect that OpenGL can't reproduce, as for the Spetres (funny Daemons in Doom), I doubt a good programmer could not emulate the effect; See here
This post has been edited by Hank: 02 January 2013 - 09:19 AM
#4 Posted 02 January 2013 - 09:56 AM
Hank, on 02 January 2013 - 09:17 AM, said:
Voxels.
#5 Posted 02 January 2013 - 10:05 AM
- Looking up and down has a unique incorrect skew in SW renderer, whereas it's "boring" true perspective in GL
- Shading is performed by applying an offset to the palette lookups at different distance thresholds; in practice it means that tiles in the distance will look different in SW mode, whereas in GL mode it'll just be the brightest shade with darkening applied.
- Voxels are rendered with cubes in GL instead of little screen-aligned squares.
- Drawing is performed in such an order than sprites won't poke through their sector
- There are three different parallax sky modes in classic, only one in GL; however that's a "hidden" feature since you can cycle through them in the editor but can't save it in the map.
There's probably more subtleties but that's the major points. Now don't get me wrong, modern HW is programmable enough that GL mode could be a fully pixel-accurate representation of the SW renderer if enough work was done to that end, but there isn't too much interest in that regard since, well, you can still use SW mode if you want to.
#6 Posted 02 January 2013 - 10:06 AM

This post has been edited by Hank: 02 January 2013 - 10:08 AM
#7 Posted 02 January 2013 - 10:37 AM
#8 Posted 02 January 2013 - 12:04 PM
Hank, on 02 January 2013 - 09:17 AM, said:
I personally asked on the ZDoom forums if OpenGL can emulate the Spectre Demon software fuzz effect, and got this answer. Its at the bottom of the page from a dude named Gez. And I quote,
Gez said:
Let's look at a small pixel grid:
123
456
789
To render pixel 5, the software fuzz effect will "borrow" a pixel from 2, 4, 6, or 8 from the background (not the actual sprite) and then darken its color by shifting it through the colormap.
With OpenGL shaders, you cannot get pixels from the background (strictly impossible) and also you do not use the colormap. Finally, shaders do not have access to pixels (or texels) at all, they don't know the dimensions of the image they're changing. They work with relative coordinates in floating point (so that 0.0 is left or top, and 1.0 is right or bottom), meaning that any attempt at making it pixely like the original effect will fail since you won't get the same pixel size on a fuzzy clip as you'll get on a fuzzy spider mastermind.
Being 100% identical to software is therefore absolutely impossible on at least three counts.
So you can't emulate the Spectre Demon software fuzz effect accurately.
Achenar, on 02 January 2013 - 07:53 AM, said:
I'm the same way. Except I have the Roland SoundCanvas SC-55 FLAC music pack lol.
Since this game was designed using the software render, I will play it using the software render. Thanks guys.
This post has been edited by shoober: 02 January 2013 - 12:14 PM
#9 Posted 02 January 2013 - 12:53 PM
shoober, on 02 January 2013 - 12:04 PM, said:
The link I gave shows one option. The only difficulty would be to synchronize the sprite coords. - Bottom line, a lot of work for this effect, but it can be done.
p.s. A long, long, long time ago, while I had no clue about programming, one guy Steve Heller wrote: The moment someone tells you that something can't be done, change programmers. I live by that.

This post has been edited by Hank: 02 January 2013 - 12:53 PM
#10 Posted 02 January 2013 - 01:14 PM
This post has been edited by shoober: 02 January 2013 - 01:19 PM
#11 Posted 02 January 2013 - 02:33 PM
#12 Posted 02 January 2013 - 02:35 PM
#13 Posted 02 January 2013 - 03:21 PM
Plagman, on 02 January 2013 - 02:33 PM, said:
It's guys like Plagman that make me proud to be a member of the eduke32 community

#14 Posted 02 January 2013 - 03:25 PM
#15 Posted 02 January 2013 - 04:02 PM
#16 Posted 02 January 2013 - 05:09 PM
This post has been edited by shoober: 02 January 2013 - 05:13 PM
#17 Posted 02 January 2013 - 05:42 PM
If software mode is good enough for you then by all means use it. Especially if you want just what the original provided and nothing more. Sometimes solutions may come up but they end up being better than the original & that may not be desirable for one who just wants a carbon copy of the original.
However, like others have said nothing is impossible. I'm reminded of the time when people where saying Nintendo 64 emulation is impossible due to the hardware being "much more powerful than the PC will ever be". Eventually, it was possible. All you need is the right mind with enough drive and inspiration and in the example I gave faster and faster hardware with more features doesn't hurt either. I doubt that's the case with Doom though... I doubt it's just that no hardware or GPU has enough features or power for those effects in GL.
Also, from what I know even when you are using a graphics API you can still do some thing in software if necessary.
This post has been edited by Tetsuo: 02 January 2013 - 06:12 PM
#18 Posted 02 January 2013 - 06:11 PM
There's absolutely no reason that the GL renders can't use the lookup tables already provided by the game engine and both darken things in exactly the same way and shift colors to the same proper palette lookup. In fact, someone could write a simple shader that forces all of the HRP textures to color shift to the nearest Duke palette color (which could produce some awful results mind you since the HRP textures aren't made with that in mind). With programmable shaders the sky is the limit. There's no actual limitation to GL that makes it unable to do the things Software can do, there's just no point to making GL the same as Software, since part of the port is that Software is available for those who want to play the Vanilla game.
If you believe otherwise it points more to a lack of knowledge of GL and GPU's for the last decade than anything else.
#19 Posted 02 January 2013 - 06:45 PM
http://forum.zdoom.o...=34984&p=658659
a quote from a poster also named 'shoober'
"I like the software render because it keeps the grittiness and dirty look that makes Doom a much scarier game. Trying to pretty it up with OpenGL doesn't do it justice."
#20 Posted 02 January 2013 - 07:47 PM
shoober, on 02 January 2013 - 07:21 AM, said:
What about the panning sky on E4L1 "It's Impossible" ? Poly modes can't reproduce that effect.
#22 Posted 03 January 2013 - 02:16 PM
Tetsuo, on 02 January 2013 - 05:42 PM, said:
I have no anti-OpenGL stance. I love OpenGL. Its just when it comes to older games, sometimes software render is better in terms of rendering specific effects. Especially if those effects can't be seen anywhere else except when using the software render.
Mblackwell, on 02 January 2013 - 06:11 PM, said:
There's absolutely no reason that the GL renders can't use the lookup tables already provided by the game engine and both darken things in exactly the same way and shift colors to the same proper palette lookup. In fact, someone could write a simple shader that forces all of the HRP textures to color shift to the nearest Duke palette color (which could produce some awful results mind you since the HRP textures aren't made with that in mind). With programmable shaders the sky is the limit. There's no actual limitation to GL that makes it unable to do the things Software can do, there's just no point to making GL the same as Software, since part of the port is that Software is available for those who want to play the Vanilla game.
If you believe otherwise it points more to a lack of knowledge of GL and GPU's for the last decade than anything else.
If this were the case, I'm sure somebody by now would of made a 100% accurate software fuzz effect for the Spectre Demons in Doom. But no one has. Until someone actually succeeds, I will have to draw the conclusion that it is impossible to replicate the fuzz effect in OpenGL.
#23 Posted 03 January 2013 - 02:21 PM
This post has been edited by MusicallyInspired: 03 January 2013 - 02:22 PM
#24 Posted 03 January 2013 - 04:41 PM
#25 Posted 03 January 2013 - 04:54 PM
The "fuzz" effect simply don't accommodate well with OpenGL modes, which doesn't mean it can't be done. The effect is rendered by performing some calculation involving different layers of pixels, which doesn't work properly with, for example, translucent textures. For that reason most of the ports choose not to use it.
Still, there are some very good alternatives for OpenGL modes:

This post has been edited by Fox: 03 January 2013 - 04:55 PM
#26 Posted 03 January 2013 - 05:24 PM
shoober, on 03 January 2013 - 04:41 PM, said:
No, narrow-minded is the reason behind this very post. You can't accept something that doesn't exist and you can't trust people who know what they're talking about in their respective fields of knowledge (above yours) that it is indeed possible. I'm afraid that is the very definition of narrow-mindedness. It's just like sticking your head in the sand or covering your ears screaming "You're wrong, I'm right. I'm not listening". Nobody has to be working on it for it to be possible or for you to be narrow-minded. Just because it's doable does NOT mean it would have been done by now. It just so happens that it's not worth the effort to duplicate exactly. That's like saying it's impossible to recreate a voxel-like object as a polygonal model because nobody has done it yet. In fact, it is possible by creating each cube in 3D space and building the model exactly as the original voxel object looks. It would just take a heck of a lot more time because you'd have to build each cube manually, which isn't worth it. Especially when you can achieve something that looks close to it, or even better than it, via much easier means.
This post has been edited by MusicallyInspired: 03 January 2013 - 05:29 PM
#27 Posted 03 January 2013 - 05:52 PM
Fox, on 03 January 2013 - 04:54 PM, said:
Just because you know how something works doesn't mean anything is possible.
I know how it works, Gez explains how it works in the quote I posted from him earlier in the thread.
Fox, on 03 January 2013 - 04:54 PM, said:
I have used GZDoom (which is probably where that picture is from) with the fuzz effect on, and it didn't quite match how it looks in software mode. Spectre Demons are way harder to see in software then in OpenGL.
MusicallyInspired, on 03 January 2013 - 05:24 PM, said:
I'm not being narrow-minded, I have two sides that are saying it can and can't be done. They are both educated in there answers. So all I can say is, until someone actually replicates the software fuzz effect, talk is cheap.
#28 Posted 03 January 2013 - 06:57 PM
shoober, on 03 January 2013 - 05:52 PM, said:
But it can mean that if we know how something works then we know that that thing is possible. This is the case in this circumstance.
shoober, on 03 January 2013 - 05:52 PM, said:
Why are you choosing to be a blind centrist? Plagman knows his shit.
Ever tried Polymer?

Two opposing sides of dialogue are not zero-sum, even if "there" answers are educated. It's not wise to raise your chin and claim "impossible" just because no one has devoted their own time and effort to a task.
#29 Posted 03 January 2013 - 07:19 PM
shoober, on 03 January 2013 - 05:52 PM, said:
But in this case it is, this is nothing but an effect being applied to an image. You are not asking for smells to come out of your speakers.
shoober, on 03 January 2013 - 05:52 PM, said:
Of course it is not identical, you are using a different renderer.
shoober, on 03 January 2013 - 05:52 PM, said:
I don't know what your definition of "replicate" is, I just showed a picture that is close enough.
#30 Posted 03 January 2013 - 07:40 PM
Nearly every visual effect these days that's not a particle uses simple shaders (and the particles themselves will use shaders) in order to distort images, recolor them, get depth samples to do DOF and SSAO, remove parts of images... basically you name it and it can be done. You want Doom 3 in only Black and White?

Hey look someone did that!