I’ve given the different brick types their own textures. This adds a bit more variation to the wall, in addition to making the brick stand out a bit more in contrast to each other. Also, this will hopefully help color-blind people differentiate between certain brick types immediately. The way things are currently set up, bricks will be sharing the same five textures drawn from a 2048×2048 image. I may bump the size of this image up to 4096×4096 and have twenty-one different textures to choose from, but much of this could be wasted space as there are only about twelve brick types planned. There are actually two textures per type, one for the front face and another longer one for the sides. This helps reduce some of the stretching on narrower bricks.
I had implemented multiple brick textures in the past, but the results were not satisfying to me, appearance-wise. I think that it finally looks presentable enough. Part of the problem is the distortion and stretching that happens on the brick side faces. It is really noticeable when a texture has been smashed into a narrow space like that, especially if the texture has many little details. The texture for the regular white bricks is passable in this case, being mostly noise without distinct features. One solution would be to up the size-up the source image and include texture variations for each brick size. Right now, things are passable, so it is not really an issue for me. I should not be spending too much time on such finicky details, rather concerning myself with more level design.
It sounds to me like stretching is a bad idea, what about just cropping to the appropriate size and then applying an edge effect (it looks like you just do a little shadowing around the edges).
Sounds like a good idea. Would the edge effect be applied via a particular shader? I have tried a number of other solutions that ended up looking uglier than stretching.