For several years I’ve been trying to make a good LEGO shader, but nothing looked as good as I wanted. Even modifying the Mecabricks shader didn’t land the correct results. Just this week, I finally put together one that I actually like. To test it, I made a digital version on this castle my brother built, then replaced all the CAD bricks with hi-poly versions. Then I slapped on my shader and this is the result. Shout out to Stefan Muller and his blog, because he really helped me crack the code on what I was missing from my previous shaders.
The shader is completely extensible, so each color works the same across any piece type. Currently this is just a “smooth” shader for standard pieces. I would like to add a functionality to allow for sloped pieces with extra bump as well as rubber or transparent pieces.
If you have any questions, feel free to ask and I’ll do my best to respond.
Thanks for taking a look!
This post really magnified me, congrats, the shaders looks very photorealistic and the fabric too, I love how efforts you put in this project for years, really amazed of looking something that I didn’t expected to be a render as a photo. Congrats!
Great questions! So this model is pretty heavy at ~240k tris. A lot of the pieces are not cleaned up very well, because once I got closer to finishing the model, I spent less time trying to make the topology nice. That’s something I will go back and do later as my library of pieces expands.
All of the pieces have the bevel modifier on at 3 segments (that’s why the edge lines are super thick), so that’s where nearly all the tri count comes from. Very few have subdiv, because it doesn’t enhance them enough to make the extra computation worth it.