Commit Graph

68 Commits

Author SHA1 Message Date
Zack Middleton a575c1c710 OpenGL2: Fix still projecting sun shadows onto nothing
Increase the range for clamping the screen shadow depth to 1.0 (nothing
drawn). Old epsilon ~0.00000006, new 0.001. This fixes it on another
computer.
2024-08-28 16:52:20 -04:00
Zack Middleton 4c19ff2b55 OpenGL2: Don't project sun shadows onto nothing
Don't project sun shadows (r_forceSun 1) on to view depth equal to 1.0
(nothing drawn or skybox). This caused a full second shadow of the
entire level in tr.screenShadowImage. It would move as the camera far
plane changed and rotate/stretch strangely as the camera view changed.

It was visible in-game on lightmapped transparent surfaces facing the
skybox and happen to overlap the extra shadow of the level.

This affected the glass in wop_padship's underwater room.
2024-07-27 02:30:32 -04:00
Zack Middleton 551fa6c797 OpenGL2: Fix issues running under WebGL 2024-06-06 19:49:17 -04:00
Zack Middleton 93abc60a5b OpenGL2: Fix applying tcMod turb
Shader stage tcMods for matrix and turb effects need to be applied in
order for turb to be correct and all tcMod turb need to be applied
instead of only the last one.

Quake 3's textures/liquids/slime1 had tcMod turb and then tcMod scale.
OpenGL2 applied the matrix first and then turb which had the wrong result.
2024-01-18 03:16:39 -05:00
James Canete bc8737d707 OpenGL2: Flip normals for backfacing triangles.
https://github.com/ioquake/ioq3/issues/513
2021-07-20 13:51:19 -07:00
James Canete b8be5a8bd7 Fix line not removed in previous commit. 2021-07-06 00:18:06 -07:00
James Canete 69ec389335 Add r_parallaxMapOffset. 2021-07-05 21:59:20 -07:00
James Canete 66cb20a7f3 Add epsilon to avoid division by zero in CalcSpecular(). 2021-07-05 21:50:39 -07:00
Zack Middleton 9b4dcc809e OpenGL2: Fix compiling lightall GLSL on OpenGL 2.1
textureCubeLod() requires OpenGL 3.0 / GLSL 1.30. Added in
2018-12-21 commit e5da13f146
"OpenGL2: r_cubemapping 2 for box cubemap parallax."

Report by brugal and Simon McVittie.

Bug-Debian: https://bugs.debian.org/923226
2019-04-15 23:40:32 -05:00
James Canete d068e1dce1 Add r_parallaxMapShadows. 2019-02-06 01:10:42 -08:00
James Canete e5da13f146 OpenGL2: r_cubemapping 2 for box cubemap parallax. 2018-12-21 19:53:18 -08:00
Zack Middleton 11337c9fa2 OpenGL2: Add GPU vertex skinning for IQM models
Using GPU vertex skinning is significantly faster than CPU vertex
skinning. Especially since OpenGL2 has to run R_VaoPackNormal() and
R_VaoPackTangent() each vertex each frame which causes CPU vertex
skinning to be significantly slower than OpenGL1 renderer.
2018-07-27 17:40:25 -05:00
Zack Middleton 39e2113c73 OpenGL2: Misc fixes and cleanup
Fix two constants in GLSL shaders. Remove f suffix from float and fix
int to float assignment. They were causing shader compile errors in
OpenGL ES 2 context.

Remove disabling clip plane. Clip plane is unused and never enabled in
the opengl2 renderer. Remove disabling it to avoid causing a GL error
when using OpenGL 3.2 core profile or OpenGL ES.

Make VAO cache vertex stride be size of srfVert_t since that is what
is uploaded to the GPU. No behavior change. There is a disabled debug
id in srfVert_t though which if enabled changes srfVert_t size.
2018-07-20 23:40:35 -05:00
SmileTheory c0c45d325d OpenGL2: Readd r_deluxeSpecular.
https://github.com/ioquake/ioq3/issues/369
2018-05-14 18:30:59 -07:00
SmileTheory 356ae10ef6 OpenGL2: Don't use initialized arrays in glsl shaders.
Unsupported in GLSL 1.20 (Mac OS X 10.6)
2017-07-24 16:29:04 -07:00
SmileTheory 6f1712dafe OpenGL2: "Fix" cg_shadows 4. 2017-07-14 16:15:02 -07:00
SmileTheory d549b642bc OpenGL2: Use an OpenGL 3.2 core context if available. 2017-07-13 12:03:10 -07:00
SmileTheory f7711a8119 OpenGL2: Add more ambient to lightmapped materials. 2016-10-27 02:12:32 -07:00
SmileTheory 8749d62bbd OpenGL2: Remove per fragment tangent space calculation code. 2016-09-14 03:57:51 -07:00
SmileTheory a40588c8b9 OpenGL2: Set cubemap mip selection to match output from ggxcc. 2016-06-08 03:36:15 -07:00
SmileTheory 1f6703821f OpenGL2: Some FBO cleanup, and add non-depth blur to blur shader. 2016-04-05 02:37:05 -07:00
SmileTheory f911e32bb0 OpenGL2: Fix horribly broken metallic shader. 2016-03-15 05:20:25 -07:00
SmileTheory 93e1feaaad OpenGL2: More ssao/depth blur improvements. 2016-03-11 04:37:50 -08:00
SmileTheory 87cb2167bf OpenGL2: Fixes to depth blur and ssao. 2016-03-10 03:44:21 -08:00
SmileTheory 65b999446d OpenGL2: Speedup for SSAO & blur shaders, fix sunlight normals in lightall. 2016-03-08 18:30:51 -08:00
SmileTheory 5738d09969 OpenGL2: Add r_glossType. 2016-03-07 03:30:16 -08:00
SmileTheory 90d6f941f8 OpenGL2: Add r_shadowBlur. 2016-03-07 02:27:03 -08:00
SmileTheory a331637745 OpenGL2: Shader optimization, and add dither to tonemap. 2016-02-17 20:06:18 -08:00
SmileTheory ad952b9537 OpenGL2: Merge several cvars into r_pbr.
r_glossIsRoughness, r_specularIsMetallic, r_framebufferGamma, r_tonemapGamma, r_materialGamma, r_lightGamma
2016-02-01 21:37:23 -08:00
SmileTheory 63e45fab9a OpenGL2: Remove specular ambient. 2016-01-15 02:46:30 -08:00
SmileTheory c07cc282d0 OpenGL2: Use correct sunlight color for sunlight specular. 2015-12-09 05:25:58 -08:00
SmileTheory 08ecc3a80a OpenGL2: Forgot a multiply. 2015-12-09 03:42:12 -08:00
SmileTheory b52ede0445 OpenGL2: Add r_glossIsRoughness. 2015-12-08 21:23:50 -08:00
SmileTheory e5aabdaff6 OpenGL2: Remove some rendering options for simplicity. 2015-12-03 02:44:33 -08:00
SmileTheory 89b719ec8d OpenGL2: Bit more parallax optimization. 2014-11-14 01:12:41 -08:00
SmileTheory d9e2184c1a OpenGL2: Add support for parallax occlusion mapping. 2014-11-10 22:11:36 -08:00
SmileTheory b1821e303d OpenGL2: remove lightmap support from generic glsl shader.
This path was barely used and doing this compiles fewer shaders.
2014-11-10 21:59:37 -08:00
SmileTheory e488663e31 OpenGL2: Change normal/tangent vertex encoding. 2014-10-28 18:15:13 -07:00
SmileTheory 7e808f92d6 OpenGL2: Speed up tonemap shader. 2014-10-27 06:37:57 -07:00
Zack Middleton 4529f124d6 Merge pull request #29 from inolen/shader_tidying
misc shader fixes
2014-09-09 19:18:59 -05:00
Zack Middleton c621589157 Fix 6155: OpenGL2: some shader stages remains visible through fog volumes
Fix CalcFog in generic_vp.glsl to fog fogged surfaces.
Now it's the same as CalcFog in fogpass_vp.glsl.

Fixes shaders that use adjustColorsForFog. Impact wallmarks, blood sprites, flame textures and so on.
2014-08-29 02:50:02 -05:00
SmileTheory ca9eebb125 OpenGL2: Fix a glsl compile error on old hardware with r_shadowFilter 0. 2014-08-02 00:02:46 -07:00
SmileTheory 2b2d696f12 OpenGL2: Add fourth cascade for sun shadows, and adjust sun shadow cvar defaults. 2014-07-31 21:01:57 -07:00
SmileTheory 4fe69cb418 OpenGL2: Remove sRGB support, replace with gamma cvars. 2014-04-16 05:26:03 -07:00
SmileTheory 375f6247d4 OpenGL2: Parallax corrected cubemap (cheaper trick) 2014-03-16 16:29:38 -07:00
SmileTheory ee67d0a981 OpenGL2: Add normalScale and parallaxDepth stage keywords and helper cvars. 2014-03-03 21:02:39 -08:00
SmileTheory ea2810c085 OpenGL2: Minor GLSL shader improvements. 2014-03-03 17:32:07 -08:00
SmileTheory 79e9baedf8 OpenGL2: Set RGBM to use a multiplier of 1, and only use it with HDR lightmaps. 2014-02-13 18:04:23 -08:00
Anthony Pesch 25bde423b5 fixed formatting of a few GLSL float constants
remove unneeded version number from texturecolor shader
call GLSL_VertexAttribPointers after attribute arrays have been enabled
2014-01-11 17:43:19 -08:00
SmileTheory 623d107f42 OpenGL2: Small glsl shader optimizations, fixes, and cleanup. 2013-12-12 21:38:01 -08:00