Commit Graph

617 Commits

Author SHA1 Message Date
Christoph Oelckers 00fcf4bc06 - for some reason using world coordinates for clipping in the shader is somewhat imprecise so the clip plane heights have to be adjusted a bit for it. 2014-07-13 13:25:42 +02:00
Christoph Oelckers 60dc2e1122 - some shader fixes. 2014-07-13 13:01:35 +02:00
Christoph Oelckers d868f60f6c - since the clip planes for plane mirrors did not work anymore I reimplemented them using shader based logic. It still needs to be seen if this affects performance on older hardware. 2014-07-13 12:14:12 +02:00
Christoph Oelckers a936629cec - use default fragment shader for burn and stencil shader, with the time consuming parts disabled by a #define, to avoid code duplication. 2014-07-10 10:33:07 +02:00
Christoph Oelckers f710518903 - use a uniform array to store vertex data to render dynamic stuff on GL 3.x hardware without the ARB_buffer_storage extension.
Due to the way the engine works it needs to render a lot of small primitives with frequent state changes.
But due to the performance of buffer uploads it is impossible to upload each primitive's vertices to a buffer separately because buffer uploads nearly always stall the GPU.
On the other hand, in order to reduce the amount of buffer uploads all the necessary state changes would have to be saved in an array until they can finally be used. This method also imposed an unacceptable overhead.
Fortunately, uploading uniform arrays is very fast and doesn't cause GPU stalls, so now the engine puts the vertex data per primitive into a uniform array and uses a static vertex buffer to index the array in the vertex shader.
This method offers the same performance as immediate mode but only uses core profile features.
2014-06-30 18:10:55 +02:00
Christoph Oelckers 1efc2938b7 - implement model vertex buffer and draw MD2 models using it instead of using the GLCommands from the model. 2014-06-29 23:24:16 +02:00
Christoph Oelckers 9d1dbf4eab - fixed: FBufferedUniform1f didn'T work because it used an int as its buffered value. 2014-06-29 14:08:44 +02:00
Christoph Oelckers ffcb6cb70a - added second vertex coordinate attribute for model interpolation. 2014-06-29 11:00:21 +02:00
Christoph Oelckers 08054ddc34 Merge branch 'master' into Glew_Version_For_Real 2014-06-29 08:53:43 +02:00
Christoph Oelckers e15f80f640 Merge branch 'master' of https://github.com/rheit/zdoom 2014-06-23 09:27:30 +02:00
Christoph Oelckers e56e525d0f - A_FireCustomMissile transfer tranlsation flag, code submission by jpalomo 2014-06-22 08:55:21 +02:00
Christoph Oelckers 6457ced53f Merge branch 'master' into Glew_Version_For_Real 2014-06-19 11:57:36 +02:00
Christoph Oelckers d30bf6768e Merge branch 'master' of https://github.com/rheit/zdoom 2014-06-19 11:20:38 +02:00
Edward Richardson a3a7ee569f Multi-intermission waits for all players + changes
- Added a segment of code that now makes the intermission wait for all
players before advancing, instead of continuing on any player. A "ready
icon" shows to reflect this.

- The Deathmatch intermisson couldn't show the ready icon (because it
just used the ingame scoreboard), so a proper intermission was added,
which reflects the same design as the coop scoreboard.

- The colour column wasted more space then it should have needed, so it
was replaced with player colour backgrounds.

- Slight y offset adjustments to make everything fit in 320x200
properly.
2014-06-17 19:46:10 +12:00
Christoph Oelckers 2ad47935ef Merge branch 'master' into Glew_Version_For_Real 2014-06-01 12:43:17 +02:00
Christoph Oelckers 7fedaf9221 Merge branch 'master' of https://github.com/rheit/zdoom 2014-06-01 12:39:13 +02:00
Edward Richardson e8513a64ed Rebuild nodes for hellfact map04 2014-06-01 15:32:43 +12:00
Christoph Oelckers 3c5d07e9c6 Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-31 11:05:44 +02:00
Christoph Oelckers 8f5683e23d - moved secret found message to string table and removed the CVAR crutch that dates from a time when modifying string table content wasn't as easy as it is now.
- added 'showsecretsector' CVAR to show the sector number with the secret found message.
2014-05-29 17:50:14 +02:00
Christoph Oelckers 39775cc904 - mystery of desaturation shader solved: The old code passed '1-desaturation' to the shader, the new code 'desaturation', so for the 'mix' function to work its arguments must be swapped. 2014-05-21 15:25:25 +02:00
Christoph Oelckers 54425ee2ef - fixed: Desaturation factor was applied incorrectly.
- Also fixed some very strange thing in the shader's desaturate function. For unknown reasons using the 'mix' function there did not work.
- fixed: The fog boundary special shader could not be used.
2014-05-21 13:40:46 +02:00
Christoph Oelckers 6e6be8ed5b Merge branch 'master' into Glew_Version_For_Real 2014-05-18 12:47:48 +02:00
Christoph Oelckers 4e64ad847b Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-15 09:46:47 +02:00
Christoph Oelckers 802a478766 - Heretic doesn't really need dontcrunchcorpses because there was already some alternative handling for that situation. 2014-05-14 14:03:15 +02:00
Christoph Oelckers 51ed68dc72 - forgot to save this... 2014-05-14 13:02:04 +02:00
Christoph Oelckers 388f09f786 - fixed: In Heretic corpses do not get crunched to gibs, they just get their size reduced to 0. Handled by a new gameinfo flag. This also gets set for Chex quest which has the gib sprite replaced by something different. Using a Crush state will override this global flag. 2014-05-14 12:54:03 +02:00
Christoph Oelckers cf45f2d718 - added missing shader files. 2014-05-12 22:24:26 +02:00
Christoph Oelckers 4d005bdfa0 shader rework
All those special shaders have been merged together.
Mostly working but the non-shader lighting seems a bit broken.
2014-05-12 14:45:41 +02:00
Christoph Oelckers b9a6fe80a4 Do not use the shader to handle STYLEF_RedIsAlpha.
Turns out that the name doesn't accurately describe what it does.
It is correct for images that come with their own palette or are true color.
But for images using the game palette it doesn't use the red channel to determine translucency but the palette index! Ugh...

This means it cannot be done with a simple operation in the shader because it won't get a proper source image. The only solution is to create a separate texture.
2014-05-11 23:56:53 +02:00
Christoph Oelckers 7793bbbcc9 Further cleanup of lighting code.
- remove thing color from lighting calculations.
- implement alpha textures and inverse sprites for infrared as texture modes. This still requires some handling for the alpha texture mode for non-shader rendering because there is no way in the fixed pipeline to do it. The inverted texture effect can be done with a texture combiner.
- fixed: ThingColor for sprites was set in the wrong place. It must be in the Process function, not in the lighting calculation.
- added functions for isolated calculation of sprites' dynlight color.
2014-05-11 17:56:38 +02:00
Christoph Oelckers 52056a05bd - changed handling of DynLight in shader to serve as a global dynamic light color for all lighting modes. 2014-05-11 16:49:17 +02:00
Christoph Oelckers 53f4cd0108 - added objectcolor uniform. This will be used to hold the thingcolor for shader based rendering. 2014-05-11 16:06:25 +02:00
Christoph Oelckers 09f4071436 Ok, it had to be done: Removed shader support for pre GLSL 1.3/GL 3.0 hardware. The compromises needed to accomodate these are just too bad and would block any attempt at streamlining the code. 2014-05-11 13:27:51 +02:00
Christoph Oelckers b09405a8bd - changed rendering of glowing walls so that it doesn't require an additional vertex attribute, just pass the floor and ceiling planes as uniforms. 2014-05-10 17:09:43 +02:00
Christoph Oelckers 6988156d0f Merge branch 'master' of https://github.com/rheit/zdoom 2014-05-08 09:49:00 +02:00
Christoph Oelckers 63a0e01c6a Merge branch 'interpview_optin' 2014-05-08 09:17:00 +02:00
Christoph Oelckers 67ebbe3ed4 made some changes to turn the CF_INTERPVIEW flag when changing angles into an op-in feature instead of making it automatic. 2014-05-08 09:15:56 +02:00
Christoph Oelckers cc4305e86c Merge branch 'master' of https://github.com/rheit/zdoom 2014-04-30 01:29:26 +02:00
Christoph Oelckers 94c4f38c58 - added constants for sound channels 5-7. 2014-04-28 01:26:30 +02:00
Christoph Oelckers 97c7f2c5ce Merge branch 'master' of https://github.com/rheit/zdoom 2014-04-18 12:13:29 +02:00
Christoph Oelckers 7cb828d763 Merge branch 'slowstate' of https://github.com/Gaerzi/zdoom 2014-04-18 09:46:23 +02:00
Gaerzi 60fe07df74 Added slow states to relevant Strife monsters
Namely, acolyte, shadow acolyte, reaver, stalker, and turret. Info on
which states needed the slow flag was obtained with Quasar's permission
by looking at G_InitNew() in g_game.c and the info.c state tables from
Chocolate Strife.
Also added fast flag to acolyte states that needed it, based on the same
source.
2014-04-17 17:42:16 +02:00
Christoph Oelckers 29231fa3b7 Merge branch 'master' of https://github.com/rheit/zdoom 2014-04-16 11:34:32 +02:00
Gaerzi 94d47efbb5 Added slow monsters to Strife's easiest skill 2014-04-15 21:02:20 +02:00
Christoph Oelckers 745b147d18 - fixed typo in xlat files (they don't use exactly C syntax.) 2014-04-15 16:40:53 +02:00
Christoph Oelckers dbefac81d8 Merge branch 'master' of https://github.com/rheit/zdoom 2014-04-15 09:26:05 +02:00
Gaerzi 580094a792 More editing flags
PSX-inspired flags to change the render styles of monsters (and other
things).
2014-04-10 12:32:23 +02:00
Christoph Oelckers e983649731 Merge branch 'master' of https://github.com/rheit/zdoom 2014-03-31 16:02:43 +02:00
alexey.lysiuk a97b068ed7 Enable fighting between different types of gargoyles and golems
In vanilla Heretic:
- Gargoyles are able to fight with Fire Gargoyles
- Golems are able to fight with Nitro Golems, both regular and ghosted versions
2014-03-30 13:27:27 +03:00
alexey.lysiuk 6a958b032c Add NOBLOOD flag to Heresiarch actor
Heresiarch entity in vanilla Hexen doesn't spawn blood when hit
2014-03-18 12:29:14 +02:00