Dahlia Trimble, one of the core developers of OpenSimulator, has begun work on a module that gives OpenSim support for new materials on prim, sculpt, or mesh builds. The module that enables it is really more of a demonstration right now; it has issues setting materials, and they will only persist until a region is restarted. In addition, there is currently no third party viewer that includes the material code and also has a grid manager. It requires above average effort on pretty much all fronts to try it at all right now. Still, it’s a start, and an exciting one!
What are Materials?
Other bloggers like Inara Pey and Nalates Urriah have already done a good job explaining just what materials are, and what they can do for the inworld experience. Geenz Spad, an Exodus Viewer developer who is largely responsible for coding the viewer side of materials is also doing his part to educate at his blog. So I’ll only provide a brief explanation.
Materials as they will be used in OpenSim consist of the addition of two new textures that complement the one we’re already used to. The plain jane, old fashioned texture is known as a diffuse map. The two new ones are a normal map, and a specular map.
Basically, a normal map makes use of lighting tricks to simulate the appearance of detail and depth. In effect, an object inworld that has a low polygon count can seem to have more polygons than it actually has. This is only an illusion… a thorough inspection of any prim or mesh that has a normal map from extreme camera angles will reveal that there isn’t any depth, just additional light or shadow. But it allows for creators to fabricate far more efficient objects that look as though they have more detail than they actually do.
A specular map has to do with how much light an object will reflect, and where. For example, you might have a very dry rock that has a lump of gold sticking out of it. You don’t want the rock to look shiny, but the gold should be very reflective. A specular map allows creators to specify where and how much light an object reflects from it’s surface in a granular manner.
OpenSim’s Current Level of Support for Materials
Right now, support for materials in OpenSim is very preliminary. Dahlia Trimble has created a module that enables materials as a demonstration. It currently appears to have some pieces missing, and any materials applied to objects inworld will disappear when the simulator is restarted. Anyone wanting to bravely test things will also need to be able to grab a copy of the very latest OpenSim code and compile it.
The only viewer available that can set or view materials is a project viewer from Linden Lab®, and it doesn’t have the ability to easily connect to an OpenSim environment. What’s more, you will be the only person able to see any materials you set at the moment, and even they will disappear if you leave the simulator for any reason. It is possible to make them stick using a special proxy, but this doesn’t really qualify as a proper workaround. (Update! The proxy is no longer necessary. Now when you set materials, everyone with a materials enabled viewer will see them until the simulator is restarted.)
Dahlia is still puzzling things out, and I’m really looking forward to further progress! As it was, I had a lot of fun helping to test things out with her and Nebadon Izumi on OSgrid yesterday. Nebadon made a video during the experience, which I’m embedding below. It really shows the difference between an object with and without materials applied.