Commit Graph

229 Commits (f146d2885b67fa78082dc055c9d96a5f42d3df12)

Author SHA1 Message Date
AbigailBuccaneer 282a793a13 Improve object vis with tighter bounding spheres
This commit improves rendering performance by doing a better job of
checking whether an object is visible via its bounding sphere or not.

The engine maintains a bounding box for each EngineBaseObject that's
exactly large enough to fit every vertex. From this, it computes a
bounding sphere, and only draws objects if the sphere is within the view
frustum. Previously, the bounding sphere was always centered on the
EngineBaseObject's origin, even for models where the bounding box center
is significantly offset from the origin. Now, the bounding sphere is
always the tightest sphere which fits the bounding box.
2018-04-29 19:35:02 +01:00
AbigailBuccaneer ea64edaa0b Compile with -Wmissing-declarations
-Wmissing-declarations enforces that every function (except for static
functions) must be declared separately before it's defined. This
essentially enforces that every function must be either static, or
declared in a header elsewhere.

This helps the optimizer, as it can do a better job of inlining if it
knows that a function won't be used outside of a given file. It also
helps -Wunused-function (which is enabled by -Wall) find more unused
functions.

Note that Clang spells this option -Wmissing-prototypes, which
confusingly is the name of a related but different warning option under
GCC.
2018-04-21 16:49:27 +01:00
krzys-h e964d3e48c Fix colobot-lint warnings 2018-04-20 02:21:12 +02:00
krzys-h 1c2bdc9cab Update license headers 2018-04-20 02:08:50 +02:00
immibis 8b0ccf6667 Fix horizontal scrolling of background images. 2017-08-05 20:08:00 +12:00
immibis 2751db3245 Add horizontal FoV to CEngine 2017-08-05 19:45:08 +12:00
krzys-h 4faabf2185 Apply shadow mapping performance counter patch from #923 2017-06-03 21:11:18 +02:00
Abigail f4614658cf Fix -Wundefined-var-template warning (#963)
This avoids specializing CSingleton<T>::m_instance for each type, and
instead just defines it once in the header. This is allowed by the
standard, multiple definitions are merged in the same way that inline
functions are.
2017-05-29 20:46:11 +02:00
krzys-h 6bebbb3f70 Fix sky rendering artifact 2017-05-18 19:03:19 +02:00
piotrwalkusz1 6ec13017eb Fix apperance camera position, closes #802 (#880) 2017-01-02 18:43:19 +01:00
krzys-h 3bac0aabd9 Fix buffer overrun when rendering goto() debug texture, closes #841 2016-11-11 17:26:37 +01:00
krzys-h 6e4764b97c Fix GroundSpot blending, closes #846 2016-11-11 17:06:53 +01:00
Tomasz Kapuściński e7c41ae9e6 Correction in changing wrap mode in SetState 2016-11-10 13:00:42 +01:00
MrSimbax 92b1e544ec Remove default lambda parameters
They cause compilation error on MSVC and should give errors, as it's explicitly stated in the C++11 standard: http://stackoverflow.com/questions/6281472/why-does-a-default-argument-for-a-lambda-argument-trigger-a-pedantic-gcc-warni
2016-08-18 10:02:54 +02:00
krzys-h dbe7fd6ef0 Added performance counter for UI particles 2016-07-24 18:19:37 +02:00
krzys-h ffd688e2d7 Do not render the shadow map when pause blur is active 2016-07-24 16:56:47 +02:00
krzys-h 2c3e90b126 Added CBot performance counter 2016-07-24 16:36:13 +02:00
krzys-h 5fea22ff03 Moved performance counters to a separate class 2016-07-24 16:18:25 +02:00
krzys-h 81b7bcc5bc Moved system modules from app/ to common/system/ 2016-07-24 14:38:49 +02:00
krzys-h 9e545d0d39 Fixed colobot-lint warnings 2016-07-09 20:39:18 +02:00
krzys-h 8a17bc901c Added pause blur config setting, enabled by default 2016-07-09 12:13:51 +02:00
krzys-h 3b9b9b322a Changed mouse scaling (again) 2016-06-21 13:07:40 +02:00
krzys-h bd4362e26c Fixed dynamic textures not being reloaded properly 2016-06-19 19:57:55 +02:00
Tomasz Kapuściński a0b3f7a769 Fixed problem with pause blur after changing some graphic settings 2016-06-19 16:52:01 +02:00
krzys-h 125d1a32c7 Fixed pause blur blinking for one frame
issue #656
2016-06-19 12:23:57 +02:00
krzys-h 9d9131c3fb Fixed pause blur with MSAA
issue #656
2016-06-19 11:45:59 +02:00
krzys-h bef27c3b36 Removed unused parameter from CEngine::SetViewParams 2016-05-28 16:48:36 +02:00
krzys-h aa159bc9b0 Don't scale mouse cursor with resolution 2016-05-28 00:43:14 +02:00
krzys-h 59c106f7a7 Fixed pause blur image not updating correctly on resolution change 2016-05-21 19:03:53 +02:00
Tomasz Kapuściński 213fd6b203 Added blur effect when the game is paused (issue #656)
Might be unstable, needs more testing. To enable, add PauseBlur=1 to [Experimental] section in colobot.ini
2016-05-21 14:27:35 +02:00
tomangelo2 9870cfe8a8 Clamp FogStart value to 0 if negative
Should fix issue #766
2016-05-02 01:27:07 +02:00
Piotr Dziwinski 71a77c77f6 Hack to finally fix #738
Text rendering is now done in window coordinates corresponding to window
pixels to avoid floating-point rounding errors that show up as rendering
artifacts
2016-04-06 23:08:50 +12:00
krzys-h e24d77bde8 goto() bitmap debugger 2016-03-28 21:42:25 +02:00
krzys-h d38ddcbc41 goto() path debugger 2016-03-28 20:25:07 +02:00
krzys-h e4f9360e63 Resources debug mode 2016-03-28 17:58:31 +02:00
krzys-h 4af02c86f8 Debug menu 2016-03-28 17:58:31 +02:00
krzys-h 6585ee9ae8 Refactor some references to CRobotMain from CEngine 2016-03-26 18:55:39 +01:00
krzys-h 16c1f34a07 Removed unnecessary LoadAllTextures call 2016-03-25 17:14:20 +01:00
krzys-h d812db19f8 Fixed ground spots not working after changing texture params; use UpdateTexture instead of destroy and recreate 2016-03-25 17:06:01 +01:00
Tomasz Kapuściński b31353cf75 Optimized crash sphere rendering 2016-03-20 19:17:15 +01:00
Piotr Dziwinski 720705bd6b Some colobot-lint fixes 2016-03-19 12:33:54 +13:00
Piotr Dziwinski 15c9cbd228 Debug mode for displaying crash spheres, closes #400 2016-03-19 11:54:58 +13:00
Tomasz Kapuściński 8deeddffe0 Corrected OpenGL 2.1 engine's error spam and added experimental terrain shadowing 2016-03-10 10:50:54 +01:00
Tomasz Kapuściński e6a2fc9671 Rewritten shadow mapping implementation 2016-03-07 18:33:19 +01:00
Tomasz Kapuściński 9effa308ce Small change in enabling/disabling shadow mapping 2016-03-06 20:25:50 +01:00
Tomasz Kapuściński 78e877d9a8 Changes in framebuffer creation, framebuffer error detection and small other graphical things 2016-02-29 16:42:01 +01:00
Tomasz Kapuściński 0bb5f96d7a Changed depth of shadow map texture to 32 2016-02-28 23:17:25 +01:00
krzys-h b97070bbad stupid whitespace 2016-02-28 20:57:39 +01:00
krzys-h 282cd65a2d Fix reloading changed ground spot textures (closes #404) 2016-02-28 20:22:05 +01:00
krzys-h 643c40e778 Revert "Get rid of "blacklisting shadowXX.png" logs"
This disabled loading of those textures completly

This reverts commit 60f0a7b45c.

 #BlamePiotrdzAgain
2016-02-28 20:17:35 +01:00