Hey everyone! I've been working on a new project in UDK and set up a Master Material just to get everything started. While there are many wonderful examples of master materials on the web, there aren't very many that have been released for download, so here we go!
UPDATE: 8/17/2013
Quick update for today. Bug fixes thanks to Santewi for pointing out issues!
- Cubemaps now use correct parameter
- Reflections can also be added to diffuse and specular now
- Options are now grouped for better readability in instances
- Added sine wave control for emissive for "flickering" materials
Download now!UPDATE: 8/14/2013
I've put together some example material instances created with the master material. These all come from the same material, with only adjustments to parameters in the instance.
I will be releasing these along with a translucent material that can be used for both water and glass, all controllable with static switches and parameters. The next version may be a paid version, considering the amount of content, if people find that reasonable. I'll continue to update the original material and provide it for free as a learning resource, although material examples and special materials (such as an IBL or Cook-Torrance variant) will be paid updates. Just to note these materials are still WIP and do not represent the final product.
Master Material Starter Kit v1.0
(requires UDK Feb 2013 or later)
- Diffuse, Emissive, Specular, SpecPower / Gloss, & Normal
- Vertex blending for red channel, blending controlled by blue channel of normal map and vector params
- Support for both cubemap and reflection planes through emissive
- Fresnel rim light with color controls
- Choice of Spec Power or Gloss/Roughness map through Lerp with Scalar values
- Detail normal maps
Future planned updates
- Dirt mask blending
- Define + multiply ambient occlusion to diffuse / spec from diffuse alpha slot
- Custom Lighting variation for more control
- Translucent master material for water, glass + more
Free for any use, no attribution required.
Special Request
I see this kit as a chance for fellow UDK material creators to build upon this kit. If you want to add to this kit, please share your improvements here and I will try my best to incorporate them into the next release. Current release schedule will probably be bi-monthly, depending on how much time I have.
Special thanks to Ryan Smith for his original Master Material tutorial series for teaching me this workflow a couple years back. Figure now is my chance to give back as well.
Please share any bugs you may find here.
Download now!
Replies
Next time you open up UDK the package should already be loaded into the Content Browser. From here, you'll want to right click on the master material, choose Create a Material Instance (Constant) and you'll be able to plug in your textures from there and make adjustments to all the vector and scalar parameters.
It really is only "one" material at the moment, although I'll be updating the package to include multiple material instances to help you achieve a certain look (think Gold, Silver, etc).
Yes, that's one way to think of it.
I'd rather say it is a master material that also includes a library of pre-configured materials for you to use. Plug-in your normal, diffuse, spec and roughness, make some small adjustments to the values to fit your needs, and you're good!
Currently, no.
There are custom shaders that can do PBR, but I haven't found any that look "perfect" yet. Many of them have artifacts and lighting issues, and also do not work with lightmaps (as far as I know this has been true since DX11 was introduced). As such, there is a bit of a quality drop when using a shader with Custom Lighting.
I will say it is an option I am exploring greatly. I'm an HLSL noob so if anyone with some actual skill is interested in contributing, I would appreciate it.
I can promise that even if I do offer a paid version, I will still offer the PBR as part of the free version. The paid version will only ever contain special shaders (such as water with flow maps) and material examples. The base Master Materials will always be free. :poly142:
As for instruction count, let me check and get back to you. It can get very heavy if you turn everything on. It's meant to provide you with lots of options. Of course, each option has a performance cost, so it is up to the user to be wise about what they apply to each model. If anyone has tips on how I can optimize if I am being sloppy, please let me know.
I aim to please!
I promise I'll have more to show soon.
- Your reflections do not work - you're using a 2D texture for the Cubemap parameter.
- There is no way to control the brightness or the blurriness of the reflections with a mask. It's pretty much mandatory if the material consists of two or more different substances.
- You can't control the strength of the detail normals.
- The params are not categorized/grouped making the material instance editor rather hard to read.
Other than that, it's a solid staring point. Bonus points for having a glossiness min/max instead of a flat specpower.
Tell me if you want some help with building the mat. I've been slowly building up my PBR master material to fit my needs and I could incorporate some useful features.
All good points! I'll start implementing them. Yeah, just looking at the Material Instance can be a little intimidating.
Yes, I could definitely use some help. I've been messing with some HLSL and CustomLighting options the last few days.
As for the cubemap, I noticed that as well. How can I call cubemaps with a parameter? I assumed it was the same way as a texture, but obviously I was wrong.
Right click -> Texture -> New TextureSampleParameterCube.
Thanks! I've updated to fix some of those issues.
I don't have reflections worked out yet, but I plan on getting that implemented soon.
Thanks for the hard work Moose! Quite a interesting thing to study too
per chance are you using the JULY build of UDK?
If so it explains a lot of my issues with getting the darn thing to work!