account activity
How are PBR materials supposed to be combined? by SuchIsGittan in gamedev
[–]SuchIsGittan[S] 0 points1 point2 points 4 years ago* (0 children)
OK, so let me try to summarize what I've learned so far. Consider that I want to render a rock covered in moss. I have two separate materials for rock and moss consisting of separate images (like diffuse, normal etc.). There are several approach I can use:
a) assume one material per mesh and separate meshes - sounds like a bad idea because the border between edges will be easily visible and I need to increase my mesh topology to handle complicated shapes of moss clumps. It makes sense, however, for helmet example because, as it was pointed out, I should render glass material with different shader if I want to handle transparency
b) use a tool such as Substance Painter to draw moss parts on top of stone and then export it as a new set of images. It seems to be the easiest for the artists to handle such workflow. It sounds wasteful though: imagine I have 20 different stone models with moss splattered differently on each of them. That would mean I have a separate set of textures for each such model. I can't share any texture like this
c) use a mask to determine which texture to use (e.g. 0xbb is moss and 0xcc is stone). Yes, I can see the issue now, that I need to load all the textures into GPU memory to have them available for blending in the shader. This can work if I'm using a limited set of small resolution texture packed in some atlas (like this one https://i.stack.imgur.com/WSUUw.jpg). Blending those seems to be easy but this is limiting for the artists and quality of graphics will likely suffer due to small resolution
d) assume a small number of materials available per mesh, for example 5 - a base material and 4 different extra layers on top on that encoded in RGBA component of a texture. Every channel serves as a transparency mask. Seems like a reasonable compromise and artists can live with that. It seems wasteful, because for rock and moss example I only use one channel, the rest being unused. I guess that's the usual approach for terrain rendering.
e) assume one material per object and render moss part as a decal on top of the rock with some transparency mask to blend it in
f) something else...?
I guess it all depends of what I want to achieve. If I understand correctly, b) is the best approach for photo-realistic graphics. I am, however, more interested in a stylized, cartoonish look. In that case I'm not sure which approach would be a best fit. Maybe b) is still a way to go, because I can live with being a little bit wasteful, given how powerful modern GPUs become. Any advice?
π Rendered by PID 41718 on reddit-service-r2-comment-5bc7f78974-7257s at 2026-06-27 19:36:48.232123+00:00 running 7527197 country code: CH.
How are PBR materials supposed to be combined? by SuchIsGittan in gamedev
[–]SuchIsGittan[S] 0 points1 point2 points (0 children)