summaryrefslogtreecommitdiff
path: root/src/mapblock_mesh.cpp
Commit message (Collapse)AuthorAge
* 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.
* Make faces shading correct for all possible modes.RealBadAngel2014-08-14
| | | | | Skip shading for lightsources and top of the nodes. Fixes liquid sources and flowing surfaces having different brightness.
* Speedup mapblock_meshRealBadAngel2014-07-17
|
* Faces shading fixesRealBadAngel2014-07-07
|