For example, in the Sims series, when you place a window or door onto a wall, a ‘hole’ is cut into it (eg. it’s masked out) so that it looks like there’s nothing intersecting with the window/door mesh. Using the same sort of principal I would like to install inset ceiling lights–so somehow pretend to cut a hole into the ceiling as to not obstruct the light mesh. It does not need to be in real time, just as something useful for modular level building so that I won’t have to pre-make actual holes in the ceiling mesh (and have to change them if I wanted to change the shape of the light).
I think the sims(and most other games) have Separate wall segments as long as their snapping points are apart. then they swapped out the segments if you wanted a window there with some that had a hole built in.
Re-building/re-texturing a mesh at runtime would be very expensive.
Alternatively, for ceiling lights, you could fake a hole with your normal map, for walls, the pre-built sections with hole built in seems like the best option.
Thanks, I’ll probably just go with the normal map route. Or avoid inset lights…
I have created custom content for the Sims before and while they do use wall segments, they also do use actual masking textures to fake holes in said segments. Translated into UE4’s material system I guess it could be done by having a texture sampler parameter for the opacity of a masked material and passing that mask texture in. (However this wouldn’t work well for ceilings because it’s very nice poly-count wise for them to be just one big plane of arbitrary size and UVs as opposed to several ceiling segments.)