Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
engines:software_vs_glquake [2011/10/11 13:57] – external edit 127.0.0.1 | engines:software_vs_glquake [2013/12/11 16:20] (current) – SiPlus | ||
---|---|---|---|
Line 1: | Line 1: | ||
===== Differences between software rendered Quake and GLQuake ===== | ===== Differences between software rendered Quake and GLQuake ===== | ||
- | Showing some differences between the original software rendered Quake (quake.exe, winquake.exe and derivates) and hardware-accelerated GLQuake (glquake.exe and derivates). | + | Showing some differences between the original software rendered Quake (quake.exe, winquake.exe and derivates) and hardware-accelerated GLQuake (glquake.exe and derivates). |
- | Currently written in the viewpoint of Spirit who also currently | + | Currently written in the viewpoint of Spirit |
==== Texture filtering ==== | ==== Texture filtering ==== | ||
Line 8: | Line 8: | ||
When you launch GLQuake the first time one of the most prominent difference are the [[http:// | When you launch GLQuake the first time one of the most prominent difference are the [[http:// | ||
- | [[/ | + | {{:engines:filtering_e1m1_filtered.png? |
- | [[/ | + | {{:engines:filtering_e1m1_pixel.png? |
- | [[/ | + | {{:engines:filtering_e2m4_filtered.png? |
- | [[/ | + | {{:engines:filtering_e2m4_pixel.png? |
- | [[/ | + | {{:engines:filtering_e4m3_filtered.png? |
- | [[/ | + | {{:engines:filtering_e4m3_pixel.png? |
- | [[/ | + | {{:engines:filtering_start_filtered.png? |
- | [[/ | + | {{:engines:filtering_start_pixel.png? |
I myself was amazed by it when I got a 3Dfx card, I really loved it. Then last year I tried the original look again and wished I'd done so much earlier... Well, it is a personal thing and you have decide it for yourself. Thankfully you can configure most GL engines to disable the filtering using the **gl_texturemode** cvar. | I myself was amazed by it when I got a 3Dfx card, I really loved it. Then last year I tried the original look again and wished I'd done so much earlier... Well, it is a personal thing and you have decide it for yourself. Thankfully you can configure most GL engines to disable the filtering using the **gl_texturemode** cvar. | ||
Line 22: | Line 22: | ||
The options available might vary based on your graphics hardware (and maybe the engine too?). This list is taken from the [[http:// | The options available might vary based on your graphics hardware (and maybe the engine too?). This list is taken from the [[http:// | ||
- | * GL_NEAREST -> //Point sampled | + | * GL_NEAREST -> //Point sampled. Lowest quality, highest performance.// |
- | * GL_NEAREST_MIPMAP_NEAREST -> // | + | * GL_NEAREST_MIPMAP_NEAREST -> // |
* GL_NEAREST_MIPMAP_LINEAR -> // | * GL_NEAREST_MIPMAP_LINEAR -> // | ||
- | * GL_LINEAR -> //No blending.// | + | * GL_LINEAR -> //Bilinear interpolation.// |
- | * GL_LINEAR_MIPMAP_NEAREST -> //Bilinear interpolation.// | + | * GL_LINEAR_MIPMAP_NEAREST -> //Bilinear interpolation |
* GL_LINEAR_MIPMAP_LINEAR -> //Trilinear interpolation. Highest quality, lowest performance.// | * GL_LINEAR_MIPMAP_LINEAR -> //Trilinear interpolation. Highest quality, lowest performance.// | ||
Line 52: | Line 52: | ||
From left to right: Software, GLQuake, Overbright GLQuake | From left to right: Software, GLQuake, Overbright GLQuake | ||
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
At least the following engines support overbright lighting: Fitzquake, Joequake, Qrack, QMB, Darkplaces, MHQuake, TomazQuake. In Fitzquake it is controlled by gl_overbright (default is on), I did not check what the others use (if they let you toggle it). aguirRe is a strong opponent to it, so his Enhanced GLQuake has no support for this, see below. | At least the following engines support overbright lighting: Fitzquake, Joequake, Qrack, QMB, Darkplaces, MHQuake, TomazQuake. In Fitzquake it is controlled by gl_overbright (default is on), I did not check what the others use (if they let you toggle it). aguirRe is a strong opponent to it, so his Enhanced GLQuake has no support for this, see below. | ||
Line 60: | Line 60: | ||
This was another feature I lived without for ages and did not know what I missed. It is very easy to overlook this when being blinded by GLQuake' | This was another feature I lived without for ages and did not know what I missed. It is very easy to overlook this when being blinded by GLQuake' | ||
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
While the non-overbright screenshot looks good and innocent, once you see the one with overbright lighting enabled the blandness becomes obvious. | While the non-overbright screenshot looks good and innocent, once you see the one with overbright lighting enabled the blandness becomes obvious. | ||
Line 67: | Line 67: | ||
However, there is another view on this [[http:// | However, there is another view on this [[http:// | ||
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
It probably becomes even more of an issue if you play with idgamma and/or a brighter gamma setting. I don't and I have no problem with the drawbacks (one could even say that it is the 1996 way to make HDR bloom blingbling, heh). In this particular example (kjsp1) I like the look it creates, it is so bright that you cannot see it all anymore. It really is your decision but I suggest using overbright lighting. | It probably becomes even more of an issue if you play with idgamma and/or a brighter gamma setting. I don't and I have no problem with the drawbacks (one could even say that it is the 1996 way to make HDR bloom blingbling, heh). In this particular example (kjsp1) I like the look it creates, it is so bright that you cannot see it all anymore. It really is your decision but I suggest using overbright lighting. | ||
Line 80: | Line 80: | ||
Fullbrights were part of Quake, good modern engines show them. GLQuake does not. Let's take a look, left is what GLQuake shows, right is what an engine with fullbright support shows: | Fullbrights were part of Quake, good modern engines show them. GLQuake does not. Let's take a look, left is what GLQuake shows, right is what an engine with fullbright support shows: | ||
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
Let's look at the technical background. Quake uses a [[http:// | Let's look at the technical background. Quake uses a [[http:// | ||
Line 102: | Line 102: | ||
This occasionally leads to ugly texturing disasters when mappers use bad tools to make their textures and test with stock GLQuake. Then sometimes fullbright pixels sneak in. A recent example being [[/ | This occasionally leads to ugly texturing disasters when mappers use bad tools to make their textures and test with stock GLQuake. Then sometimes fullbright pixels sneak in. A recent example being [[/ | ||
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
- | [[/ | + | {{:engines: |
Thankfully most good 3d-accelerated engines do support fullbrights. aguirRe' | Thankfully most good 3d-accelerated engines do support fullbrights. aguirRe' | ||
Line 120: | Line 120: | ||
Lava_Croft once taught me about another quite nasty and overlooked regression in most GL engines. Textures that are not sized in a power of two (64, 128, 256 etc) are getting rescaled. And with that the pixels are not square anymore but a huge mess of distorted uglyness. This is most easily seen on a weapon skin so I used that in the image below. The Shambler' | Lava_Croft once taught me about another quite nasty and overlooked regression in most GL engines. Textures that are not sized in a power of two (64, 128, 256 etc) are getting rescaled. And with that the pixels are not square anymore but a huge mess of distorted uglyness. This is most easily seen on a weapon skin so I used that in the image below. The Shambler' | ||
- | [[/ | + | {{:engines: |
+ | |||
+ | ==== Affine texture mapping ==== | ||
+ | For higher performance, | ||
+ | |||
+ | While the effects of this can be barely seen on monsters, they are very easy to spot on weapon view models. | ||
+ | |||
+ | You can see screenshots of the issue in the " | ||
+ | |||
+ | The 1st screenshot demonstrates affine texture mapping in software rendering mode. The texture looks skewed and is aligned differently on each pair of triangles. The pixels always have the same width and height, no matter how far they are from the player. | ||
+ | |||
+ | The 2nd and 3rd screenshots show perspective-correct texture mapping. The metal shine is now a straight line, and distant pixels appear smaller than the close ones. | ||
+ | |||
+ | On certain video cards, the effect can be re-enabled in GLQuake by setting the console variable " |