Skip to content

Latest commit

 

History

History
101 lines (85 loc) · 14.2 KB

README.md

File metadata and controls

101 lines (85 loc) · 14.2 KB

MakeSkin

MakeSkin is a tool for working with MakeHuman materials. It is intended for uses where more advanced settings are needed, as opposed to (for example) the rather primitive materials written by MakeClothes. MakeSkin can be used by the Makehuman Plugin For Blender to get support for the full material model, although this feature is currently experimental and only exists in a feature branch of MPFB.

It is also intended to cater for production of skin materials, something which was never supported by MakeClothes.

In the longer run, it is intended that the full MHMAT model should be supported, with both import and export to/from blender node setups. However, at this point, there are areas which do not map. See "compatibility matrix" below.

Current status

The tool works mostly as intended, although parts of the MHMAT model is yet unimplemented. You should be able to use it to produce more competent materials for MakeHuman.

Note though that the asset repos do not yet support all texture files. It will thus be difficult to share materials using all features. Work is in progress to remedy this.

Installation and usage

A zip with the plugin is available from the plugins page at the community homepage. This can be installed as an addon in Blender.

Compatibility matrix

The following is an overview of how the MakeSkin material model fits into MHMAT, Blender and MakeHuman.

"Visible in blender" means that the material feature can be represented in such a way that it would make a visible difference in Blender (even if this has not been implemented by MakeSkin yet). "Visible in MH" means that the feature will make a visible difference in MakeHuman, under the right conditions (not all shaders in MH support all material features).

It should be especially noted that the MHMAT model is wider than what is actually implemented in MakeHuman, so there are several keys that are supported by MHMAT, but which makes no visible difference at all in MakeHuman.

On the opposite end it should be noted that a few keys have been added to make the handling in blender more smooth. These keys are outside the MHMAT spec and will not make a visible difference in MakeHuman. They will, however, survive the roundtrip to blender: If you use makeskin (or MPFB with makeskin enabled) when importing, you will get the settings set in blender.

For more details, see the respective key's documentation.

MHMAT key Implemented in MakeSkin Visible in Blender Visible in MH Description
tag PARTIAL - YES Tags are used for filtering in MakeHuman. Materials support multiple tags, but MakeSkin currently only has support for one
name YES AFTER MHX2 EXPORT MATERIAL EDITOR Name is a simple metadata string in MHMAT files. Used for creation of material name in blender when exported via mhx2.
description YES - - Description is a simple metadata string in MHMAT files. It isn't used for anything in practice.
uuid YES - ? UUID is used for telling materials apart. It is unclear if this is ever used though.
license YES - - License is a simple metadata string in MHMAT files. It isn't used for anything in practice.
homepage YES - - Homepage is a simple metadata string in MHMAT files. It isn't used for anything in practice.
author YES - - Author is a simple metadata string in MHMAT files. It isn't used for anything in practice.
diffuseColor YES YES YES This is the color of the material. It is usually overwritten by the diffuseTexture.
specularColor PARTIAL - YES The color of specular highlights. This is not supported by nodes materials.
emissiveColor YES YES - What light (if any) is emitted by the material.
ambientColor - - ? Color used for simulating ambient light. This is not supported by nodes materials
viewPortColor YES YES - What color to use for material when displaying object in viewport
diffuseTexture YES YES YES The image file used for diffuse color texturing. This also uses the texture's alpha channel to map for transparency.
bumpmapTexture YES YES - The image file used for bump mapping. No shaders in MH are able to represent this visually.
normalmapTexture YES YES YES The image file used for normal mapping.
displacementmapTexture YES YES - The image file used for displacement mapping.
specularmapTexture - - ? Normally used for glossiness of a material. Does not work in Makehuman. Can be used as a map for the Specular socket of the principled shader (sometimes it is also used for roughness variation!)
transmissionmapTexture YES YES - The image file used for transmission type transparency mapping. This maps onto the principled's "Transmission" socket, whereas the diffuseTexture alpha channel maps on the "Alpha". The transmission map is ignored in MakeHuman (whereas the alpha channel works)
transparencymapTexture - - - The image file used for transparency mapping, as an alternative to using the diffuse alpha channel. This is not supported anywhere atm.
aomapTexture - - ? The image file used for ambient occlusion mapping. This is not supported by node materials.
blendMaterial YES YES - A file name pointing at a .blend file with a complete blender material. This is supported by MakeSkin, but not actually a part of the MHMAT spec.
diffuseIntensity YES YES FRINGE CASES How much weight should be assigned to the diffuse texture (vs the diffuseColor key). Default is 1.0.
bumpmapIntensity YES YES - How strong is the bump map? Default is 1.0
normalmapIntensity YES YES YES How strong is the normal map? Default is 1.0
displacementMapIntensity - YES - How strong is the displacement map? Default is 1.0
transparencymapIntensity - - - How strong is the transparency map? Since transparencymapTexture isn't used anywhere, this key is redundant.
specularmapIntensity - - ? How strong is the specular map? Default is 1.0
aomapIntensity - - ? How strong is the ao map? Default is 1.0
sssEnabled - YES ? Should we use SSS at all?
sssRScale - YES ? Scale of red SSS channel
sssGScale - YES ? Scale of green SSS channel
sssBScale - YES ? Scale of blue SSS channel
shininess YES YES YES How shiny is the material. This has been implemented in reverse as roughness in blender.
roughness YES YES - This is an alias of shininess, specifically for blender
metallic YES YES - If the material is to be considered metallic
ior YES YES - Index of refraction
opacity - - ? (It'll have to be further investigated what this does, if anything)
translucency - - ? (It'll have to be further investigated what this does, if anything)
shadeless YES - YES The material is display without shades in MakeHuman (if this is selected, the asset appears with same illuminance and the 3D effect disappears)
wireframe YES - YES Whether to render the material as a wireframe in MH. Doesn't have any correspondence in blender.
transparent YES - YES If a transparent asset is in front of another asset or even another transparent layer of the same asset, transparent should be switched on. Together with backface culling switched off, it is a standard when e.g. transparency is used for hair. MakeHuman uses dithering techniques to create the assets instead of using a transparent shading itself.
alphaToCoverage YES - - Use A2C rendering if supported by graphics card (this is a hardware optimization and makes no visible difference)
backfaceCull YES - YES Should we render both sides of a face or remove ("cull") the back side when rendering? This is not a material property in blender.
depthless YES - ? ?
castShadows YES - ? (It'll have to be further investigated what this does, if anything)
receiveShadows YES - ? (It'll have to be further investigated what this does, if anything)
autoBlendSkin YES - ? When using a litsphere, autoadjust diffuse and litsphere texture for skin tone
litsphere (shader) YES - YES Use the "litsphere" shader when rendering in MakeHuman
litsphere texture (param) YES - YES When using litsphere, use this texture to emulate reflections
normalmap (shader) - - YES Use the "normalmap" shader when rendering in MakeHuman
phong (shader) - - YES Use the "phong" shader when rendering in MakeHuman
skin (shader) - - YES Use the "skin" shader when rendering in MakeHuman
toon (shader) - - YES Use the "toon" shader when rendering in MakeHuman
xray (shader) - - YES Use the "xray" shader when rendering in MakeHuman

There are also a bunch of other shaderParam settings which are not listed here. They are usually consequences of the above, such as "normal" for saying whether we should take the normal map into account. MakeSkin will infer this from whether the texture is set or not.