I have a few questions regarding how Unreal engine uses and optimizes memory and GPU use. Maybe they are simple questions or maybe it is a case by case situation but I have little idea of how to test them:
Consider a simple mesh + material (textures & shader instructions) copied hundreds of times in a level (exact copies). Because it is only one mesh and only one material loading from disk is supposed to be fast even for multiple object copies (doesn’t matter really I think) BUT is there any optimization inside the engine regarding memory usage for duplicated objects OR 100x copies of an object uses 100x the RAM and GPU? Surely it is not 1x the RAM but maybe some middle ground?
How efficient (performance-wise) it is to use material instances (materials with different parameters)? I understand using the same base resources (textures) is good to reduce overall disk size (and loading times) but when different instances of materials are applied to the objects they are effectively using multiple times the memory, right? Or is there some optimization with this?
How important it is to optimize the objects that are not shown on screen? For example: it is easier for me to build a mountain, cave or building using modular parts even if I just see part of them from the player’s perspective, that is, some parts are never shown inside the game. These “useless” geometries impact my performance? Also: consider a long street with several objects with decent textures visible simultaneously. Could I improve performance making corners and bends so that less is visible at any given time?