Commit graph

355 commits

Author SHA1 Message Date
Zack Middleton
dd73e19546 Improve warning for too many skin surfaces 2017-07-04 15:36:26 -05:00
Zack Middleton
904bbc1a8f Allow more than 32 surfaces in skin files
Models don't have a surface limit; skins shouldn't either. Some player
models require more than 32 surfaces since vanilla Quake 3 did not
enforce the limit.

Skins are now limited to 256 surfaces because having no limit would
require parsing the skin file twice. The skin surfaces are dynamically
allocated so it doesn't increase memory usage when less surfaces
are used.
2017-07-04 14:06:09 -05:00
Zack Middleton
4dffc52c1d Add warnings for animMap and videoMap shader keywords 2017-07-02 17:00:07 -05:00
Zack Middleton
5aa7fb39c2 OpenGL2: Remove two unused cvars and update readme 2017-07-02 16:47:55 -05:00
Zack Middleton
e77153766a OpenGL2: Draw sun shadows for first person IQM player models
This makes IQM have the same behavior as MD3 and MDR.
2017-06-30 14:07:26 -05:00
Zack Middleton
102c79eb49 OpenGL2: Fix black planar projection shadows (cg_shadows 3)
Restore MD3 code for cg_shadows 2 and 3 like other model formats.
Fix planar projection shadow deform (cg_shadows 3) to use correct
light direction. I fixed light direction for stencil shadows
(cg_shadows 2) but it's still broken.
2017-06-30 14:06:13 -05:00
Zack Middleton
09a23e0417 OpenGL2: Fix checking r_shadowCascadeZFar pointer instead of value 2017-06-29 21:36:04 -05:00
SmileTheory
e03cdf444c OpenGL2: Remove SF_VAO_MESH. 2017-06-16 16:52:53 -07:00
Zack Middleton
66fec1b059 Remove unneeded code from OpenGL2's RB_RenderDrawSurfList
Make it more similar to OpenGL1.
2017-06-03 14:03:09 -05:00
SmileTheory
c65d2c2657 Add vao cache for static surfaces.
Remove support for draw range elements, multi draw arrays, world vao creation, surface merging.
2017-04-28 02:13:25 -07:00
SmileTheory
468da0fabc OpenGL2: Generate less shaders when r_sunlightMode is disabled.
Original patch by https://github.com/inolen in https://github.com/ioquake/ioq3/pull/36
2017-01-26 19:58:28 -08:00
SmileTheory
0238810f34 OpenGL2: Render dlights only when r_lightmap is 0.
https://github.com/ioquake/ioq3/issues/246
2017-01-24 20:17:06 -08:00
SmileTheory
294109628d OpenGL2: Fix bug in generating normal maps for non-square textures. 2016-12-12 15:33:54 -08:00
SmileTheory
06b47ad2a9 GLimp_HaveExtension() -> SDL_GL_ExtensionSupported() 2016-12-10 00:35:17 -08:00
SmileTheory
0672905ef1 OpenGL2: Detect Intel graphics and avoid/use certain operations there.
Also use qglCopyTextureSubImage2DEXT instead of qglCopyTextureImage2DEXT.
2016-12-07 22:30:55 -08:00
SmileTheory
730207817e OpenGL2: Don't bind null framebuffers when not using framebuffers. 2016-12-07 14:13:29 -08:00
SmileTheory
ab8bcf5c5b OpenGL2: glGetIntegerv -> qglGetIntegerv
Thanks Cyrax for pointing this out.
2016-11-25 02:13:03 -08:00
SmileTheory
93066d2e05 OpenGL2: Don't draw viewmodels in portal views.
Thanks Cyrax for pointing out, should fix https://bugzilla.icculus.org/show_bug.cgi?id=6363.
2016-11-25 01:30:21 -08:00
SmileTheory
2349ef038e OpenGL2: Don't interleave texCoords and lightCoords in tess. 2016-11-25 01:17:46 -08:00
SmileTheory
f7711a8119 OpenGL2: Add more ambient to lightmapped materials. 2016-10-27 02:12:32 -07:00
SmileTheory
8955752457 OpenGL2: Prioritize loading .png images over all others besides .dds. 2016-10-27 02:11:29 -07:00
SmileTheory
ffcec94f50 OpenGL2: Load images with "_nh" suffix as parallax normalmaps. 2016-10-27 02:10:40 -07:00
SmileTheory
89701a1a45 OpenGL2: Faster mipmap generation. 2016-10-21 19:48:02 -07:00
SmileTheory
ba59df8c8c OpenGL2: Remove check for GL_ARB_texture_non_power_of_two.
Core in OpenGL 2.0.
2016-10-21 16:58:42 -07:00
SmileTheory
41ae7815c9 OpenGL2: Remove half float support.
Not enough accuracy for textures larger than 1024x1024, such as merged lightmaps.
2016-10-20 20:09:12 -07:00
SmileTheory
863adfcfc2 OpenGL2: Fix fog color. 2016-10-12 23:17:19 -07:00
SmileTheory
ad819edcc4 OpenGL2: Workaround for multiple deforms on MD3 mesh.
https://github.com/ioquake/ioq3/issues/122
2016-10-11 04:18:41 -07:00
SmileTheory
aa79738c50 OpenGL2: Store vertex colors and hdr lightmaps/lightgrid as RGBA16. 2016-10-11 03:28:20 -07:00
SmileTheory
239f539702 OpenGL2: Non-square merged lightmaps. 2016-10-10 03:06:03 -07:00
SmileTheory
1cfa16674c OpenGL2: Some tr_image refactoring/cleanup. 2016-09-22 23:04:13 -07:00
SmileTheory
8417c184b4 OpenGL2: Clamp entity lighting to more resemble OpenGL1. 2016-09-14 04:19:46 -07:00
SmileTheory
8749d62bbd OpenGL2: Remove per fragment tangent space calculation code. 2016-09-14 03:57:51 -07:00
SmileTheory
4faf1008a0 OpenGL2: Remove map color scaling and r_forceSunMapLightScale.
Also simplify overbright code in ComputeShaderColors().
2016-09-14 02:59:54 -07:00
Tim Angus
bd062f713a Merge pull request #216 from tkoeppe/abs
[renderergl2/tr_main.c] Use floating-point fabsf() for floating-point values
2016-09-13 10:34:48 +01:00
SmileTheory
bbc9e263f0 OpenGL2: Fix more reversed VectorCopy4() usage. 2016-09-13 01:41:46 -07:00
SmileTheory
ec3779988c OpenGL2: Fix reversed VectorCopy4() usage. 2016-09-11 16:08:18 -07:00
SmileTheory
497a74f22a Fix undefined behavior when shifting left by 32.
https://bugzilla.icculus.org/show_bug.cgi?id=6432
2016-09-07 16:56:23 -07:00
SmileTheory
927c9cc23c OpenGL2: Make R_FreeSurfaceGridMeshData() static. 2016-09-07 14:59:19 -07:00
SmileTheory
f9e5712311 OpenGL2: Fix missing bounds calculation when loading BSP surfaces. 2016-09-06 19:44:14 -07:00
SmileTheory
dfbaf50324 OpenGL2: Store normals/tangents as int16_t[4]. 2016-09-06 00:57:15 -07:00
Thomas Köppe
0eb72cd8c4 [renderergl2/tr_main.c] Use floating-point fabsf() for floating-point values 2016-09-01 17:29:32 +01:00
SmileTheory
4ce600f5ac Missing bit of previous commit. 2016-08-14 22:33:48 -07:00
SmileTheory
fe8ac838e2 OpenGL2: Preallocate grid surfaces like other BSP surfaces. 2016-08-14 22:22:20 -07:00
SmileTheory
5252e28163 OpenGL2: Fix shader error logs. 2016-08-04 20:16:22 -07:00
SmileTheory
29ac117154 OpenGL2: Let unlit materials use parallax maps. 2016-07-29 01:53:50 -07:00
SmileTheory
e022abeebb OpenGL2: Fix GL_EXT_direct_state_access function names. 2016-07-28 20:04:25 -07:00
SmileTheory
716438168f OpenGL2: Use loader for all extension funcs. 2016-07-26 00:41:31 -07:00
SmileTheory
f0086e8c2a OpenGL2: Add new GL function loader. 2016-07-25 06:30:25 -07:00
SmileTheory
251c983681 OpenGL2: Require OpenGL 2.0. 2016-07-24 21:29:13 -07:00
Zack Middleton
0334f4a59b OpenGL2: Remove duplicate textureFloat = qfalse
glRefConfig.textureFloat is set to qfalse near wrong extension and then
farther down by the correct extension. Removing this has no effect.
2016-06-15 13:58:26 -05:00
Zack Middleton
420bd09164 OpenGL2: Remove loading (unused) glDrawBuffersARB 2016-06-15 13:58:26 -05:00
Victor Roemer
398dea397c Fix Makefile for OSX
Bump base SDK from 10.5 -> 10.7
Just use the builtin __APPLE__
2016-06-12 17:17:33 -04:00
SmileTheory
a40588c8b9 OpenGL2: Set cubemap mip selection to match output from ggxcc. 2016-06-08 03:36:15 -07:00
SmileTheory
6394180224 OpenGL2: Speed up surface merging. 2016-05-18 21:12:34 -07:00
Zack Middleton
2dcc5719e3 Explicitly set cull type for skybox
Explicitly set cull type for skybox to front, instead of using whatever
cull type the previous shader used (which could result in the skybox
not being visible due to only drawing back faces). The sky cloud stages
set the cull type so they are not affected by previous cull type.
2016-05-16 03:17:03 -05:00
Zack Middleton
acd659b05a OpenGL2: Fix specularScale override not being used in RB_IterateStagesGeneric 2016-05-09 10:47:34 -05:00
SmileTheory
1f6703821f OpenGL2: Some FBO cleanup, and add non-depth blur to blur shader. 2016-04-05 02:37:05 -07:00
SmileTheory
60f56670d6 OpenGL2: Render metals as nonmetal on cubemaps, and some ComputeShaderColors cleanup. 2016-04-05 02:21:14 -07:00
SmileTheory
ee7fdef87f OpenGL2: Improve cubemap outside error. 2016-03-28 22:26:19 -07:00
SmileTheory
f911e32bb0 OpenGL2: Fix horribly broken metallic shader. 2016-03-15 05:20:25 -07:00
SmileTheory
eb7408ddac OpenGL2: Fix r_lightmap. 2016-03-14 06:45:51 -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
934014e237 OpenGL2: Create FBOs if target image exists, not cvar settings. 2016-03-09 18:03:23 -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
d11cfc88d5 OpenGL2: Fix some GL errors and no sun shadows on older OpenGLs. 2016-02-17 19:49:21 -08:00
SmileTheory
0f6f2be155 OpenGL2: Typos. 2016-02-12 18:34:31 -08:00
SmileTheory
871872689e OpenGL2: Add named cubemaps and per-map env.json parsing. 2016-02-10 16:25:32 -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
2b2f1aeaa1 OpenGL2: Load existing per-map cubemaps. 2016-01-28 16:39:42 -08:00
SmileTheory
558da25277 OpenGL2: Some FBO related cleanup/fixes. 2016-01-21 22:31:41 -08:00
SmileTheory
28ff383061 OpenGL2: Direct state access, part 3: Framebuffers. 2016-01-20 06:32:50 -08:00
SmileTheory
f70e9dac01 OpenGL2: Direct state access, part 2: Uniforms. 2016-01-18 23:30:36 -08:00
SmileTheory
275317fefb OpenGL2: Direct state access, part 1: Texture binds 2016-01-18 04:46:01 -08:00
SmileTheory
63e45fab9a OpenGL2: Remove specular ambient. 2016-01-15 02:46:30 -08:00
SmileTheory
e2b2437966 OpenGL2: Add r_cubemapSize. 2015-12-24 16:34:58 -08:00
SmileTheory
c3216f54d2 OpenGL2: Replace r_exportCubemaps cvar with exportCubemaps command. 2015-12-23 09:58:11 -08:00
SmileTheory
a6a6162f04 OpenGL2: Add r_exportCubemaps for saving cubemaps on map load. 2015-12-22 05:04:07 -08:00
SmileTheory
06feb6115b OpenGL2: Support picmip for DDS textures. 2015-12-21 20:24:19 -08:00
SmileTheory
f78d04eba8 OpenGL2: Add null dereference checks to DDS loader. 2015-12-18 19:42:15 -08:00
SmileTheory
f965f3c66e OpenGL2: DDS (compressed textures) support. 2015-12-18 06:53:20 -08:00
SmileTheory
336419235a OpenGL2: Some tr_image.c cleanup. 2015-12-16 07:12:30 -08:00
SmileTheory
cbfc3471bc OpenGL2: Switch to RGTC from LATC for normal maps.
Also added a RGTC compressor as a workaround on Intel graphics.
2015-12-15 03:23:55 -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
f9c72eee69 OpenGL2: Parse radius entries from misc_cubemap entities. 2015-12-09 02:00:40 -08:00
SmileTheory
b52ede0445 OpenGL2: Add r_glossIsRoughness. 2015-12-08 21:23:50 -08:00
SmileTheory
92d4b20129 OpenGL2: Add option in code for alternate overbright method. 2015-12-08 05:17:05 -08:00
SmileTheory
e5aabdaff6 OpenGL2: Remove some rendering options for simplicity. 2015-12-03 02:44:33 -08:00
SmileTheory
2954bdfa65 OpenGL2: automatically load textures with a _s suffix as specular. 2015-12-02 17:08:40 -08:00
Zack Middleton
41f83ac8b0 Replace 4 with sizeof( int ) in R_GetCommandBufferReserved 2015-10-17 21:58:11 -05:00
Zack Middleton
81e2b6c0cf Fix reserved size for swap buffer command being too small on x86_64 2015-10-16 20:50:25 -05:00
Zack Middleton
e6209f3b7c Fix crash from reading past end of tr.refdef.drawSurfs
The number of draw surfaces was range checked against number of surfaces for
the current view but needs to check total for the frame otherwise can read
past the end of the tr.refdef.drawSurfs array when there are multiple views.
2015-10-16 20:21:15 -05:00
Zack Middleton
8531162bd9 Fix not swapping buffers because out of cmd buffer space
Reserve space for end of list and swap buffer commands. These are absolutely
required and cannot be dropped. Dropping swap buffer command causes screen
to not update and possible crash from drawsurf buffer overflow if not enough
cmd buffer space for many continous frames.
2015-10-16 19:38:49 -05:00
Zack Middleton
7f4b34bf09 Remove unused define MAC_EVENT_PUMP_MSEC 2015-10-04 17:20:56 -05:00
Zack Middleton
a5fbc1bfc4 Fix alloc size for default skin and single shader skin
Found by Coverity.
2015-07-12 20:41:47 -05:00
Zack Middleton
4473924636 Remove logically dead code in R_CheckFBO
Found by Coverity.
2015-07-12 20:35:22 -05:00