CustomPhysicalProperties have done wonders in allowing us to unlink BasePart behavior from their materials. Materials still do limit what we can do with parts though. CustomDisplayProperties for BaseParts would resolve this issue. Here are a number of useful features that could be packed into CustomDisplayProperties:
###Intensity
One of the most annoying problems I’ve experienced while building levels is that they’re always way too shiny. I use Plastic because it’s an all-rounder material that fits the bill for most cases, but pieces of the map that are made of Plastic but meant to be other materials inherit Plastic’s shininess. For instance, compare the following parts:
The one on the left is slate, and the one on the right is plastic. You’d think they would look the same with the same texture, but the difference is significant. An intensity property would allow us to still use generic plastic in our builds, but also empower us to tweak the appearance of the components so they more closely resembled what we intended plastic to be a substitute for.
Another use would be with Neon and allow us to decrease its overwhelming brightness without changing transparency or changing it globally.
###Texture size
Some materials don’t play well with different scales of parts. For instance, compare the two models of the following pistol:
The left one looks great. The one on the right on the other hand is a different story. The metal looks smudged because it didn’t scale with the part and the diamond plate now only has a couple diamonds rather than the many it had on the scaled up version. Automatic scaling isn’t a solution because while I might want more diamonds here, that isn’t the case when I use different sized tiles of flooring for instance. By changing texture size similarly to how the Texture object works with repeating, I could make the texture repeat over smaller distances and achieve the same look on the scaled down version. I could also stretch the texture to make slightly thicker planks if I wanted.
###Secondary Color
Some materials have an innate secondary color that isn’t affected by BrickColor – take CorrodedMetal for instance:
No matter what I change the color to, the corrosion is always brown. I may want black/grey corrosion though, and a custom display property “Secondary Color” would allow me to change it. Other materials like Cobblestone don’t have an innate second color and instead use the part’s BrickColor but modified to be darker. Using the secondary color property, I could change that and make the cracks in black cobblestone appear red, creating a fiery basalt pathway.