aboutsummaryrefslogtreecommitdiff
path: root/src/mapblock_mesh.cpp
Commit message (Collapse)AuthorAge
* Isolate irrlicht references and use a singleton (#6041)Loïc Blot2017-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add Device3D class which will contain IrrlichtDevice interface move getSupportedVideoDrivers to Device3D Add Device3D singleton & use it in various places Rename Device3D to Rendering engine & add helper functions to various device pointers More singleton work RenderingEngine owns draw_load_screen move draw functions to RenderingEngine Reduce IrrlichtDevice exposure and guienvironment RenderingEngine: Expose get_timer_time() to remove device from guiEngine Make irrlichtdevice & scene manager less exposed * Code style fixes * Move porting::getVideoDriverName, getVideoDriverFriendlyName, getDisplayDensity, getDisplaySize to RenderingEngine Fix XORG_USED macro -> RenderingEngine + create_engine_device from RenderingEngine constructor directly * enum paralax => enum parallax
* Cpp11 initializers 2 (#5999)Loïc Blot2017-06-17
| | | | | | | | | | * C++11 patchset 10: continue cleanup on constructors * Drop obsolete bool MainMenuData::enable_public (setting is called with cURL in server loop) * More classes cleanup * More classes cleanup + change NULL tests to boolean tests
* Use thread_local instead from some static settings (#5955)Loïc Blot2017-06-11
| | | | | thread_local permits to limit variable lifetime to thread duration. Use it on each setting place which uses static to cache variable result only for thread lifetime. This permits to keep the same performance level & reconfigure server from MT gui in those various variables places. Add thread_local to undersampling calculation too.
* Optimize updateFastFaceRow processing by removing some TileSpec copy (#5678)Loïc Blot2017-04-29
| | | | | | | | | | | | | | | * Optimize updateFastFaceRow processing by removing some TileSpec copy It permit to decrease this function from 54% runtime to 45% and reduce copy from 14% runtime to 12.5% getTileInfo also reduced from 27% to 23% * makeFastFace should use a const ref too this trigger a const pointer need in the underlying function Also fix some code style and prevent calculating 4 times the same position at a point * Reduce a comparison cost for lights in updateFastFaceRow
* Soft node overlay (#5186)Dániel Juhász2017-04-21
| | | | This commit adds node overlays, which are tiles that are drawn on top of other tiles.
* MeshUpdateQueue: Add a MapBlock cache that minimizes the amount of MapBlock ↵Perttu Ahola2017-04-17
| | | | | | | | | | | | | | | | | | | | | copying done in the main thread Cache size is configurable by the meshgen_block_cache_size (default 20 MB). New profiler stats: - MeshUpdateQueue MapBlock cache hit % - MeshUpdateQueue MapBlock cache size kB Removes one type of stutter that was seen on the client when received MapBlocks were being handled. (the "MeshMakeData::fill" stutter) Kind of related to at least #5239 Originally preceded by these commits, now includes them: - Move the mesh generator thread into src/mesh_generator_thread.{cpp,h} - mesh_generator_thread.cpp: Update code style - MeshUpdateThread: Modify interface to house a different implementation: Actual functionality will be changed by next commits. - MeshMakeData: Add fillBlockData() interface (so that caller can fill in stuff from eg. a MapBlock cache)
* Some performance optimizations (#5424)Loïc Blot2017-03-22
| | | | | | | | | | | | | | | | | | | * Some performance optimizations This is globally removing some memory useless copy * use a const ref return on std::string Settings::get to prevent data copy on getters which doesn't need to copy it * pass some stack created strings to static const as they are not modified anywhere * Camera: return nametags per const ref instead of a list pointer, we only need to read it * INodeDefManager: getAll should be a result ref writer instead of a return copy * INodeDefManager: getAlias should return a const std::string ref * Minimap: unroll a Scolor creation in blitMinimapPixersToImageRadar to prvent many variable construct/destruct which are unneeded (we rewrite the content in the loop) * CNodeDefManager::updateAliases: prevent a idef getall copy * Profiler: constness * rollback_interface: create real_name later, and use const ref * MapBlockMesh updateFastFaceRow: unroll TileSpec next_tile, which has a cost of 1.8% CPU due to variable allocation/destruction, * MapBlockMesh updateFastFaceRow: copy next_tile to tile only if it's a different tilespec * MapBlockMesh updateFastFaceRow: use memcpy to copy next_lights to lights to do it in a single cpu operation
* Content_mapblock.cpp: Refactornumber Zero2017-03-20
|
* Use fabs() instead of abs() (#5141)Dániel Juhász2017-01-30
|
* Fix after hardware node coloring (#5114)Dániel Juhász2017-01-27
|
* Add smooth lighting for all nodesnumber Zero2017-01-24
| | | | Note: Smooth lighting disables the mesh cache.
* Add hardware node coloring. Includes:Dániel Juhász2017-01-23
| | | | | | - Increase ContentFeatures serialization version - Color property and palettes for nodes - paramtype2 = "color", "colored facedir" or "colored wallmounted"
* Environment & IGameDef code refactoring (#4985)Ner'zhul2017-01-09
| | | | | | | | | | | | | | | | | | | | | * Environment code refactoring * Cleanup includes & class declarations in client & server environment to improve build speed * ServerEnvironment::m_gamedef is now a pointer to Server instead of IGameDef, permitting to cleanup many casts. * Cleanup IGameDef * Move ITextureSource* IGameDef::getTextureSource() to Client only. * Also move ITextureSource *IGameDef::tsrc() helper * drop getShaderSource, getSceneManager, getSoundManager & getCamera abstract call * drop unused emerge() call * cleanup server unused functions (mentionned before) * Drop one unused parameter from ContentFeatures::updateTextures * move checkLocalPrivilege to Client * Remove some unnecessary casts * create_formspec_menu: remove IWritableTextureSource pointer, as client already knows it * Fix some comments * Change required IGameDef to Server/Client pointers * Previous change that game.cpp sometimes calls functions with Client + InventoryManager + IGameDef in same functions but it's the same objects * Remove duplicate Client pointer in GUIFormSpecMenu::GUIFormSpecMenu * drop ClientMap::sectorWasDrawn which is unused
* Move TileAnimation code to seperate filesfan52017-01-02
|
* use unordered containers where possible (patch 4 on X)Loic Blot2016-10-06
| | | | Also remove some unused parameters/functions
* Mapblock mesh: Fix updateFastFaceRow tiling issueobneq2016-08-18
| | | | Increase maximum length of tiled node rows from 2 to mapblock size.
* Mapblock mesh: Allow to use VBORealBadAngel2016-02-26
|
* Dont make fastface if tile is not seamlessRealBadAngel2016-02-21
| | | | | Fixes #3378 Closes #3751
* Mapblock mesh: Eliminate meshgen lagsRealBadAngel2016-02-16
|
* Use vertices with tangents only when its needed.RealBadAngel2016-02-15
|
* Cleanup selection mesh code, add shaders for halo and selection boxesRealBadAngel2016-02-08
|
* Use tangent space meshes only when shaders are enabledRealBadAngel2016-02-07
|
* Change i++ to ++iDavid Jones2015-08-25
|
* Fixed minimap memory leakBřetislav Štec2015-07-27
|
* Fix relief mapping issuesRealBadAngel2015-07-16
|
* Clean-up Minimap codekwolekr2015-07-08
| | | | | | | | | | | - Fixed race conditions - Fixed null dereference - Fixed out-of-bounds array access - MinimapMapblock is now allocated and added to update queue only when enabled - Removed dependency on LocalPlayer - Fixed code style - Simplified expressions and program logic - Cleaned minimap object interfaces
* Add minimap featureRealBadAngel2015-06-27
|
* Automated whitespace error fix for last commitest312015-06-14
|
* Improved parallax mapping. Generate heightmaps on the fly.RealBadAngel2015-06-14
|
* Move globals from main.cpp to more sane locationsCraig Robbins2015-04-01
| | | | | | | | | | | | Move debug streams to log.cpp|h Move GUI-related globals to clientlauncher Move g_settings and g_settings_path to settings.cpp|h Move g_menuclouds to clouds.cpp|h Move g_profiler to profiler.cpp|h
* Move texture_min_size even further down the pipe. Now, textures are ↵Aaron Suen2015-03-31
| | | | JIT-upscaled using an image transformation, right at the time they're added to a mesh or particle; images used in 2D elements are left unscaled. This should fix any remaining issues with HUD elements.
* Optimise MapBlockMesh related functionsgregorycu2015-02-23
| | | | | | | | | Directely or indirectly optimises the following functions: * MapBlockMesh::MapBlockMesh * MapBlockMesh::getTileInfo * MapBlockMesh::makeFastFace * MapBlockMesh::getSmoothLightCombined
* Remove workaround in itemdef.cpp to enable/disable/enable "enable_shaders" ↵Craig Robbins2015-02-11
| | | | | | | setting * Increase performance (client) * Avoid changing a global value to solve a local problem
* Revert "Remove workaround in itemdef.cpp to enable/disable/enable ↵Craig Robbins2015-02-11
| | | | | | "enable_shaders" setting" This reverts commit d25ff8fd2592f457b91e8a61240694af3902d23f.
* Remove workaround in itemdef.cpp to enable/disable/enable "enable_shaders" ↵Craig Robbins2015-02-11
| | | | | | | setting * Increase performance (client) * Avoid changing a global value to solve a local problem
* Fix potential out-of-bounds array indexCraig Robbins2015-01-16
|
* Added configurable ambient_occlusion_gamma. Default is 2.2 (same as previous ↵TriBlade92015-01-14
| | | | hardcoded values).
* Removed superfluous facedir check in mapblock_mesh.cppCraig Robbins2015-01-10
|
* Change TileSpec::frames to be std::vector not std::mapunknown2014-12-21
| | | | Signed-off-by: Craig Robbins <kde.psych@gmail.com>
* Increase performance of getLight() by at least 2xCraig Robbins2014-12-10
| | | | | | | Leads to the following increases: getSmoothLight() approx. 40% increase getTileInfo() approx. 25% increase MapBlockMesh::MapBlockMesh() 25-30%
* Restore finalColorBlend implementation in shaders.RealBadAngel2014-12-07
|
* Fix smooth lighting (ambient occlusion)Craig Robbins2014-11-22
| | | | Signed-off-by: Craig Robbins <kde.psych@gmail.com>
* Optimise functions from CNodeDefManager and VoxelManipulatorCraig Robbins2014-11-21
| | | | | CNodeDefManager::get() VoxelManipulator::addArea()
* Optimise getTileInfo()Craig Robbins2014-11-21
| | | | | getTileInfo() ~1.5x faster getSmoothLight ~2.0x faster
* Implement WieldMeshSceneNode which improves wield mesh renderingKahrl2014-11-08
| | | | | | | | | | | | | - Don't create and cache an extruded mesh for every (non-node) item. Instead use a single one per image resolution. - For cubic nodes reuse a single wield mesh too - Improve lighting of the wielded item - Increase far value of wield mesh scene camera, fixes #1770 - Also includes some minor refactorings of Camera and GenericCAO.
* Various uninitialised variable fixesCraig Robbins2014-10-19
| | | | | | sky.cpp: m_bgcolor.getAlpha() was being used before initialised mesh related: m_highlight_mesh_color was being used uninitialised
* Add meshnode drawtype.RealBadAngel2014-10-18
|
* Node highlighting.RealBadAngel2014-09-17
|
* Pass light sources in blue channel of vertex color instead of decoded light ↵RealBadAngel2014-08-21
| | | | | | for all special drawtypes. Plus some style fixes and optimizations.
* Let lighting be done only CPU side. Remove finalColorBlend implementation ↵RealBadAngel2014-08-16
| | | | from shaders.