aboutsummaryrefslogtreecommitdiff
path: root/src/mapblock_mesh.cpp
AgeCommit message (Collapse)Author
2017-04-29Optimize updateFastFaceRow processing by removing some TileSpec copy (#5678)Loïc Blot
* 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
2017-04-21Soft node overlay (#5186)Dániel Juhász
This commit adds node overlays, which are tiles that are drawn on top of other tiles.
2017-04-17MeshUpdateQueue: Add a MapBlock cache that minimizes the amount of MapBlock ↵Perttu Ahola
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)
2017-03-22Some performance optimizations (#5424)Loïc Blot
* 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
2017-03-20Content_mapblock.cpp: Refactornumber Zero
2017-01-30Use fabs() instead of abs() (#5141)Dániel Juhász
2017-01-27Fix after hardware node coloring (#5114)Dániel Juhász
2017-01-24Add smooth lighting for all nodesnumber Zero
Note: Smooth lighting disables the mesh cache.
2017-01-23Add hardware node coloring. Includes:Dániel Juhász
- Increase ContentFeatures serialization version - Color property and palettes for nodes - paramtype2 = "color", "colored facedir" or "colored wallmounted"
2017-01-09Environment & IGameDef code refactoring (#4985)Ner'zhul
* 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
2017-01-02Move TileAnimation code to seperate filesfan5
2016-10-06use unordered containers where possible (patch 4 on X)Loic Blot
Also remove some unused parameters/functions
2016-08-18Mapblock mesh: Fix updateFastFaceRow tiling issueobneq
Increase maximum length of tiled node rows from 2 to mapblock size.
2016-02-26Mapblock mesh: Allow to use VBORealBadAngel
2016-02-21Dont make fastface if tile is not seamlessRealBadAngel
Fixes #3378 Closes #3751
2016-02-16Mapblock mesh: Eliminate meshgen lagsRealBadAngel
2016-02-15Use vertices with tangents only when its needed.RealBadAngel
2016-02-08Cleanup selection mesh code, add shaders for halo and selection boxesRealBadAngel
2016-02-07Use tangent space meshes only when shaders are enabledRealBadAngel
2015-08-25Change i++ to ++iDavid Jones
2015-07-27Fixed minimap memory leakBřetislav Štec
2015-07-16Fix relief mapping issuesRealBadAngel
2015-07-08Clean-up Minimap codekwolekr
- 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
2015-06-27Add minimap featureRealBadAngel
2015-06-14Automated whitespace error fix for last commitest31
2015-06-14Improved parallax mapping. Generate heightmaps on the fly.RealBadAngel
2015-04-01Move globals from main.cpp to more sane locationsCraig Robbins
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
2015-03-31Move texture_min_size even further down the pipe. Now, textures are ↵Aaron Suen
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.
2015-02-23Optimise MapBlockMesh related functionsgregorycu
Directely or indirectly optimises the following functions: * MapBlockMesh::MapBlockMesh * MapBlockMesh::getTileInfo * MapBlockMesh::makeFastFace * MapBlockMesh::getSmoothLightCombined
2015-02-11Remove workaround in itemdef.cpp to enable/disable/enable "enable_shaders" ↵Craig Robbins
setting * Increase performance (client) * Avoid changing a global value to solve a local problem
2015-02-11Revert "Remove workaround in itemdef.cpp to enable/disable/enable ↵Craig Robbins
"enable_shaders" setting" This reverts commit d25ff8fd2592f457b91e8a61240694af3902d23f.
2015-02-11Remove workaround in itemdef.cpp to enable/disable/enable "enable_shaders" ↵Craig Robbins
setting * Increase performance (client) * Avoid changing a global value to solve a local problem
2015-01-16Fix potential out-of-bounds array indexCraig Robbins
2015-01-14Added configurable ambient_occlusion_gamma. Default is 2.2 (same as previous ↵TriBlade9
hardcoded values).
2015-01-10Removed superfluous facedir check in mapblock_mesh.cppCraig Robbins
2014-12-21Change TileSpec::frames to be std::vector not std::mapunknown
Signed-off-by: Craig Robbins <kde.psych@gmail.com>
2014-12-10Increase performance of getLight() by at least 2xCraig Robbins
Leads to the following increases: getSmoothLight() approx. 40% increase getTileInfo() approx. 25% increase MapBlockMesh::MapBlockMesh() 25-30%
2014-12-07Restore finalColorBlend implementation in shaders.RealBadAngel
2014-11-22Fix smooth lighting (ambient occlusion)Craig Robbins
Signed-off-by: Craig Robbins <kde.psych@gmail.com>
2014-11-21Optimise functions from CNodeDefManager and VoxelManipulatorCraig Robbins
CNodeDefManager::get() VoxelManipulator::addArea()
2014-11-21Optimise getTileInfo()Craig Robbins
getTileInfo() ~1.5x faster getSmoothLight ~2.0x faster
2014-11-08Implement WieldMeshSceneNode which improves wield mesh renderingKahrl
- 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.
2014-10-19Various uninitialised variable fixesCraig Robbins
sky.cpp: m_bgcolor.getAlpha() was being used before initialised mesh related: m_highlight_mesh_color was being used uninitialised
2014-10-18Add meshnode drawtype.RealBadAngel
2014-09-17Node highlighting.RealBadAngel
2014-08-21Pass light sources in blue channel of vertex color instead of decoded light ↵RealBadAngel
for all special drawtypes. Plus some style fixes and optimizations.
2014-08-16Let lighting be done only CPU side. Remove finalColorBlend implementation ↵RealBadAngel
from shaders.
2014-08-14Make faces shading correct for all possible modes.RealBadAngel
Skip shading for lightsources and top of the nodes. Fixes liquid sources and flowing surfaces having different brightness.
2014-07-17Speedup mapblock_meshRealBadAngel
2014-07-07Faces shading fixesRealBadAngel