editor › Globals › MaterialDefinition
Class: MaterialDefinition
This class serves as the base material for all physical materials of plates (e.g. wood, metal). It defines the visual and physical properties of the material. Visuals are described by several textures for different parts of a plate (surface/side).
The full workflow for creating seamless textures: - Make a photo of the material - smooth lighting to avoid any gradients or reflections - head-on to avoid distortion - place a size reference in the image - use a good camera - ideally have a color calibration strip in the image - Adjust colors, exposure, perspective and lens distortion in Photoshop (e.g. in the Camera Raw import dialog) - Crop a square portion of the image of at least 2048px, note the physical size of the image - Save to PNG - Open it in GIMP and apply Filter -> Map -> Tile Seamless - Save and go back to Photoshop - Manually tile the image 2x2 and zoom out. If any features stand out, try to remove them - adjust brightness using a Brightness/Contrast layer with a very fuzzy layer mask - remove spots (e.g. with the Spot Healing Brush tool) - Save as PNG with 2048px resolution --> texture.png - Optimize the texture with e.g. guetzli (https://github.com/google/guetzli) - guetzli --quality 84 texture.png texture.jpg
If you want to use mix mapping (@see http://www.neilblevins.com/cg_education/tiling_trick/tiling_trick.htm), you should use different parts of the same image in order to make sure that there are no major differences between the textures.
(You can of course do all steps in GIMP if you are familiar with it.)
Hierarchy
- MaterialDefinition
↳ Foamcore
↳ MDF
↳ Poplar
Index
Constructors
Properties
- collisionSounds
- density
- displayName
- emissive
- engravedLightnessesSamples
- engravingColor
- envMapUrls
- friction
- isOverlay
- opacity
- restitution
- shininess
- stiffness
- textureDefinitions
Constructors
constructor
+ new MaterialDefinition(colorizeColor?: number | null): MaterialDefinition
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:122
creates a new instance of this material definition.
Parameters:
| Name | Type | Description |
|---|---|---|
colorizeColor? |
number | null | ignored by non-colorable materials |
Returns: MaterialDefinition
Properties
collisionSounds
• collisionSounds: string[] = []
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:91
An array of file names (without file type), that should be played when this material collides with something.
density
• density: number = 500
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:86
The density of the material in kg/m^3
displayName
• displayName: string
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:64
name of the material that can be displayed to the user
emissive
• emissive: number = 0
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:100
engravedLightnessesSamples
• engravedLightnessesSamples: DataPoint[] = [ [1.0, 1.0], [0.9, 0.9], [0.8, 0.8], [0.7, 0.7], [0.6, 0.6], [0.5, 0.5], [0.4, 0.4], [0.3, 0.3], [0.2, 0.2], [0.1, 0.1], [0.0, 0.0], ]
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:104
engravingColor
• engravingColor: number = 0
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:102
envMapUrls
• envMapUrls: string[] = []
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:96
Paths to images for cube map (when using physically based rendering).
friction
• friction: number = 0.1
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:77
isOverlay
• isOverlay: boolean = false
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:122
Whether this material should always be visible above if there are multiple materials at the same position. Only works for one at a time.
opacity
• opacity: number = 1
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:74
restitution
• restitution: number = 0.3
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:78
shininess
• shininess: number = 10
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:98
stiffness
• stiffness: number = 35
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:81
textureDefinitions
• textureDefinitions: Map‹TextureKey, ITextureDefinition› = new Map()
Defined in src/model/visualization/materials/materialDefinitions/MaterialDefinition.ts:72
String <-> String|String[] dictionary to map texture keys to URLs of tiled textures.
see http://www.neilblevins.com/cg_education/tiling_trick/tiling_trick.htm
see MixMapEngravingMaterial