#VRML_SIM R2022b utf8 # license: Apache License 2.0 # license url: http://www.apache.org/licenses/LICENSE-2.0 # An old battered steel material. # The color can be overridden using the `colorOverride` field and the amount of rust can be set using the `rustLevel` field. # template language: javascript PROTO RustyMetal [ field SFInt32{1, 2} rustLevel 1 # Defines how much the metal is rusted. field SFColor colorOverride 1 1 1 # Defines the color to be multiplied with the texture color. field SFNode textureTransform NULL # Defines an optional 2d texture transform. field SFFloat IBLStrength 1 # Defines the strength of ambient lighting from the Background node. ] { %< const extension = fields.rustLevel.value === 2 ? '_2' : ''; >% PBRAppearance { baseColor IS colorOverride baseColorMap ImageTexture { url [ %<= '"textures/rusty_metal/rusty_metal_base_color' + extension + '.jpg"' >% ] } roughnessMap ImageTexture { url [ %<= '"textures/rusty_metal/rusty_metal_roughness' + extension + '.jpg"' >% ] } metalnessMap ImageTexture { url [ %<= '"textures/rusty_metal/rusty_metal_metalness' + extension + '.jpg"' >% ] } normalMap ImageTexture { url [ %<= '"textures/rusty_metal/rusty_metal_normal' + extension + '.jpg"' >% ] } %< if (fields.rustLevel.value === 2) { >% occlusionMap ImageTexture { url [ "textures/rusty_metal/rusty_metal_occlusion.jpg" ] } %< } >% normalMapFactor 1 IBLStrength IS IBLStrength textureTransform IS textureTransform } }