Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Star Citizen - How to convert XML material blocks to MTL
- Star Citizen is a massively multiplayer, space trading and combat computer game for Microsoft Windows and Linux.
- The game's engine is based on heavily modified Cry Engine build and uses Lumberyard's AWS infrastructure.
- Star Citizen sometimes has MTL files for material information that, for whatever reason, they decided not to contain within the CGA/CGAM files material data block. Usually, these MTL files are serialized. To unserialize, Alluran made a tool available here
- https://github.com/dolkensp/HoloXPLOR/releases/tag/2.6.0-ptu
- Quick note / legend,
- here's what I have figured out so far
- Ka for indirect color values
- Kd for diffuse values
- Ks for specular values
- Ns for specular exponent value I believe
- Ke is for emission via mtl on lots of engines from doing some online research/reading
- d for transparency
- map_bump for ddna file
- map_Kd for diffuse map
- map_d for opacity texture map
- map_Ks for specular map
- map_Ns for specular map something.. usually is the exact same file as specular map with Markemp's cgf converter's outputs
- disp for displacement map
- decal for decal map
- Let's take a look at the Aurora MTL file for the specific build Star Citizen 2.5 public release
- The first unserialized XML sub-block looks like this
- <Material Name="Exterior_Tile" MtlFlags="524416" MatTemplate="" MatSubTemplate="" Shader="Illum" GenMask="2000A040000000" StringGenMask="%NORMAL_MAP%SPECULAR_MAP%SUBSURFACE_SCATTERING%VERTCOLORS" SurfaceType="metal_dense" Diffuse="0.68668544,0.94730669,1" Specular="0.93868583,0.93011099,0.87136728" Emissive="0,0,0" Opacity="1" Shininess="255" vertModifType="0">
- <TimeOfDay>
- <Glow Time="0" Glow="0" />
- <Glow Time="0" Glow="0" />
- <Glow Time="1" Glow="0" />
- <Glow Time="1" Glow="0" />
- </TimeOfDay>
- <Textures>
- <Texture Map="Diffuse" File="objects/spaceships/ships/rsi/aurora/textures/white_panneling_diff.tif" />
- <Texture Map="Bumpmap" File="objects/spaceships/ships/rsi/aurora/textures/white_panneling_ddna.tif" />
- <Texture Map="Specular" File="objects/spaceships/ships/rsi/aurora/textures/white_panneling_spec.tif">
- <TexMod TexMod_RotateType="0" TexMod_TexGenType="0" TexMod_bTexGenProjected="0" TileU="2" TileV="2" />
- </Texture>
- </Textures>
- <PublicParams SSSIndex="0" IndirectColor="0.25,0.25,0.25" />
- </Material>
- This subblock can be translated like this, minus the tiling and a couple other values:
- newmtl Exterior_Tile
- ka 0.25,0.25,0.25
- Kd 0.68668544 0.94730669 1
- Ks 0.93868583 0.93011099 0.87136728
- d 1.000000
- illum 2
- map_Kd A:\CREATED\StarCitizen\SC25\objects\spaceships\ships\rsi\aurora\textures\white_panneling_diff.tif
- map_bump A:\CREATED\StarCitizen\SC25\objects\spaceships\ships\rsi\aurora\textures\white_panneling_ddna.tif
- map_Ks A:\CREATED\StarCitizen\SC25\objects\spaceships\ships\rsi\aurora\textures\white_panneling_spec.tif
- But make sure to change the paths to match yours (eg A:\CREATED\StarCitizen\SC25\ to whatever your root dir is).
- MarkEmp has made a CGA/CGAM file converter that will output an OBJ and a MTL file that sometimes is empty due to material block info missing in the CGA/CGAM files.
- https://github.com/Markemp/Cryengine-Converter
- He has plans to update this converter to work with Star Citizen 3.0 assets
- IF YOU USE ANY PRE SC3.0 CGF converter, DO RENAME ALL YOUR SERIALIZED OR UNSERIALIZED MTLs with a _old append or something that you prefer. The reason being your important source MTLs could get overwritten by the empty MTLs from the pre SC3.0 cgf converter.
- I recommend after renaming and conversions, to open your unserialized MTL and save over the empty MTL and save as you work your way down the file converting to proper MTL format.
- If you have any question, you can ask in this CIG forum thread here
- https://robertsspaceindustries.com/spectrum/community/SC/forum/50172/thread/howto-create-your-own-art-using-game-assets
- There are a few conversions not shown in the example above.
- But the rest are fairly easy to figure out.
- For reference material please see excerpts below,
- source links for references are included.
- A script can be developed to do these conversions automatically for us,
- but I do not have the skill set to make one,
- hopefully community will make one available for us.
- Important references:
- MTL brief
- Reference Source: http://nendowingsmirai.yuku.com/forum/viewtopic/id/1723#.WTrvC5DysuW
- Ns = Phong specular component. Ranges from 0 to 1000. (I've seen various statements about this range (see below))
- Kd = Diffuse color weighted by the diffuse coefficient.
- Ka = Ambient color weighted by the ambient coefficient.
- Ks = Specular color weighted by the specular coefficient.
- d = Dissolve factor (pseudo-transparency). Values are from 0-1. 0 is completely transparent, 1 is opaque.
- Ni = Refraction index. Values range from 1 upwards. A value of 1 will cause no refraction. A higher value implies refraction.
- illum = (0, 1, or 2) 0 to disable lighting, 1 for ambient & diffuse only (specular color set to black), 2 for full lighting (see below)
- sharpness = ? (see below)
- map_Kd = Diffuse color texture map.
- map_Ks = Specular color texture map.
- map_Ka = Ambient color texture map.
- map_Bump = Bump texture map.
- map_d = Opacity texture map.
- refl = reflection type and filename (?)
- MTL Possible but (unofficial) extensions for PBR support
- Reference Source http://exocortex.com/blog/extending_wavefront_mtl_to_support_pbr
- To represent a PBR material, we suggest using these existing well defined Wavefront MTL material properties:
- Kd/map_Kd (base/diffuse) // reuse
- Ks/map_Ks (specular) // reuse
- d or Tr (opacity) // reuse
- map_d/map_Tr (opacitymap) // reuse
- Tf (translucency) // reuse
- bump/-bm (bump map) // reuse
- disp (displacement map) // reuse
- And we propose adding these additional properties, which refer to PBR-specific parameters as defined by the Disney PBR paper (pdf):
- Pr/map_Pr (roughness) // new
- Pm/map_Pm (metallic) // new
- Ps/map_Ps (sheen) // new
- Pc (clearcoat thickness) // new
- Pcr (clearcoat roughness) // new
- Ke/map_Ke (emissive) // new
- aniso (anisotropy) // new
- anisor (anisotropy rotation) // new
- norm (normal map) // new
- MTL detailed
- Reference Source http://paulbourke.net/dataformats/mtl/
- 5. Material Library File (.mtl)
- Material library files contain one or more material definitions, each
- of which includes the color, texture, and reflection map of individual
- materials. These are applied to the surfaces and vertices of objects.
- Material files are stored in ASCII format and have the .mtl extension.
- An .mtl file differs from other Alias|Wavefront property files, such as
- light and atmosphere files, in that it can contain more than one
- material definition (other files contain the definition of only one
- item).
- An .mtl file is typically organized as shown below.
- newmtl my_red
- Material color
- & illumination
- statements
- texture map
- statements
- reflection map
- statement
- newmtl my_blue
- Material color
- & illumination
- statements
- texture map
- statements
- reflection map
- statement
- newmtl my_green
- Material color
- & illumination
- statements
- texture map
- statements
- reflection map
- statement
- Figure 5-1. Typical organization of .mtl file
- Each material description in an .mtl file consists of the newmtl
- statement, which assigns a name to the material and designates the start
- of a material description. This statement is followed by the material
- color, texture map, and reflection map statements that describe the
- material. An .mtl file map contain many different material
- descriptions.
- After you specify a new material with the "newmtl" statement, you can
- enter the statements that describe the materials in any order. However,
- when the Property Editor writes an .mtl file, it puts the statements in
- a system-assigned order. In this chapter, the statements are described
- in the system-assigned order.
- Format
- The following is a sample format for a material definition in an .mtl
- file:
- Material
- name
- statement:
- newmtl my_mtl
- Material
- color and
- illumination
- statements:
- Ka 0.0435 0.0435 0.0435
- Kd 0.1086 0.1086 0.1086
- Ks 0.0000 0.0000 0.0000
- Tf 0.9885 0.9885 0.9885
- illum 6
- d -halo 0.6600
- Ns 10.0000
- sharpness 60
- Ni 1.19713
- Texture
- map
- statements:
- map_Ka -s 1 1 1 -o 0 0 0 -mm 0 1 chrome.mpc
- map_Kd -s 1 1 1 -o 0 0 0 -mm 0 1 chrome.mpc
- map_Ks -s 1 1 1 -o 0 0 0 -mm 0 1 chrome.mpc
- map_Ns -s 1 1 1 -o 0 0 0 -mm 0 1 wisp.mps
- map_d -s 1 1 1 -o 0 0 0 -mm 0 1 wisp.mps
- disp -s 1 1 .5 wisp.mps
- decal -s 1 1 1 -o 0 0 0 -mm 0 1 sand.mps
- bump -s 1 1 1 -o 0 0 0 -bm 1 sand.mpb
- Reflection
- map
- statement:
- refl -type sphere -mm 0 1 clouds.mpc
- Material Name
- The material name statement assigns a name to the material description.
- Syntax
- The folowing syntax describes the material name statement.
- newmtl name
- Specifies the start of a material description and assigns a name to the
- material. An .mtl file must have one newmtl statement at the start of
- each material description.
- "name" is the name of the material. Names may be any length but
- cannot include blanks. Underscores may be used in material names.
- Material color and illumination
- The statements in this section specify color, transparency, and
- reflectivity values.
- Syntax
- The following syntax describes the material color and illumination
- statements that apply to all .mtl files.
- Ka r g b
- Ka spectral file.rfl factor
- Ka xyz x y z
- To specify the ambient reflectivity of the current material, you can
- use the "Ka" statement, the "Ka spectral" statement, or the "Ka xyz"
- statement.
- Tip These statements are mutually exclusive. They cannot be used
- concurrently in the same material.
- Ka r g b
- The Ka statement specifies the ambient reflectivity using RGB values.
- "r g b" are the values for the red, green, and blue components of the
- color. The g and b arguments are optional. If only r is specified,
- then g, and b are assumed to be equal to r. The r g b values are
- normally in the range of 0.0 to 1.0. Values outside this range increase
- or decrease the relectivity accordingly.
- Ka spectral file.rfl factor
- The "Ka spectral" statement specifies the ambient reflectivity using a
- spectral curve.
- "file.rfl" is the name of the .rfl file.
- "factor" is an optional argument.
- "factor" is a multiplier for the values in the .rfl file and defaults
- to 1.0, if not specified.
- Ka xyz x y z
- The "Ka xyz" statement specifies the ambient reflectivity using CIEXYZ
- values.
- "x y z" are the values of the CIEXYZ color space. The y and z
- arguments are optional. If only x is specified, then y and z are
- assumed to be equal to x. The x y z values are normally in the range of
- 0 to 1. Values outside this range increase or decrease the reflectivity
- accordingly.
- Kd r g b
- Kd spectral file.rfl factor
- Kd xyz x y z
- To specify the diffuse reflectivity of the current material, you can
- use the "Kd" statement, the "Kd spectral" statement, or the "Kd xyz"
- statement.
- Tip These statements are mutually exclusive. They cannot be used
- concurrently in the same material.
- Kd r g b
- The Kd statement specifies the diffuse reflectivity using RGB values.
- "r g b" are the values for the red, green, and blue components of the
- atmosphere. The g and b arguments are optional. If only r is
- specified, then g, and b are assumed to be equal to r. The r g b values
- are normally in the range of 0.0 to 1.0. Values outside this range
- increase or decrease the relectivity accordingly.
- Kd spectral file.rfl factor
- The "Kd spectral" statement specifies the diffuse reflectivity using a
- spectral curve.
- "file.rfl" is the name of the .rfl file.
- "factor" is an optional argument.
- "factor" is a multiplier for the values in the .rfl file and defaults
- to 1.0, if not specified.
- Kd xyz x y z
- The "Kd xyz" statement specifies the diffuse reflectivity using CIEXYZ
- values.
- "x y z" are the values of the CIEXYZ color space. The y and z
- arguments are optional. If only x is specified, then y and z are
- assumed to be equal to x. The x y z values are normally in the range of
- 0 to 1. Values outside this range increase or decrease the reflectivity
- accordingly.
- Ks r g b
- Ks spectral file.rfl factor
- Ks xyz x y z
- To specify the specular reflectivity of the current material, you can
- use the "Ks" statement, the "Ks spectral" statement, or the "Ks xyz"
- statement.
- Tip These statements are mutually exclusive. They cannot be used
- concurrently in the same material.
- Ks r g b
- The Ks statement specifies the specular reflectivity using RGB values.
- "r g b" are the values for the red, green, and blue components of the
- atmosphere. The g and b arguments are optional. If only r is
- specified, then g, and b are assumed to be equal to r. The r g b values
- are normally in the range of 0.0 to 1.0. Values outside this range
- increase or decrease the relectivity accordingly.
- Ks spectral file.rfl factor
- The "Ks spectral" statement specifies the specular reflectivity using a
- spectral curve.
- "file.rfl" is the name of the .rfl file.
- "factor" is an optional argument.
- "factor" is a multiplier for the values in the .rfl file and defaults
- to 1.0, if not specified.
- Ks xyz x y z
- The "Ks xyz" statement specifies the specular reflectivity using CIEXYZ
- values.
- "x y z" are the values of the CIEXYZ color space. The y and z
- arguments are optional. If only x is specified, then y and z are
- assumed to be equal to x. The x y z values are normally in the range of
- 0 to 1. Values outside this range increase or decrease the reflectivity
- accordingly.
- Tf r g b
- Tf spectral file.rfl factor
- Tf xyz x y z
- To specify the transmission filter of the current material, you can use
- the "Tf" statement, the "Tf spectral" statement, or the "Tf xyz"
- statement.
- Any light passing through the object is filtered by the transmission
- filter, which only allows the specifiec colors to pass through. For
- example, Tf 0 1 0 allows all the green to pass through and filters out
- all the red and blue.
- Tip These statements are mutually exclusive. They cannot be used
- concurrently in the same material.
- Tf r g b
- The Tf statement specifies the transmission filter using RGB values.
- "r g b" are the values for the red, green, and blue components of the
- atmosphere. The g and b arguments are optional. If only r is
- specified, then g, and b are assumed to be equal to r. The r g b values
- are normally in the range of 0.0 to 1.0. Values outside this range
- increase or decrease the relectivity accordingly.
- Tf spectral file.rfl factor
- The "Tf spectral" statement specifies the transmission filterusing a
- spectral curve.
- "file.rfl" is the name of the .rfl file.
- "factor" is an optional argument.
- "factor" is a multiplier for the values in the .rfl file and defaults
- to 1.0, if not specified.
- Tf xyz x y z
- The "Ks xyz" statement specifies the specular reflectivity using CIEXYZ
- values.
- "x y z" are the values of the CIEXYZ color space. The y and z
- arguments are optional. If only x is specified, then y and z are
- assumed to be equal to x. The x y z values are normally in the range of
- 0 to 1. Values outside this range will increase or decrease the
- intensity of the light transmission accordingly.
- illum illum_#
- The "illum" statement specifies the illumination model to use in the
- material. Illumination models are mathematical equations that represent
- various material lighting and shading effects.
- "illum_#"can be a number from 0 to 10. The illumination models are
- summarized below; for complete descriptions see "Illumination models" on
- page 5-30.
- Illumination Properties that are turned on in the
- model Property Editor
- 0 Color on and Ambient off
- 1 Color on and Ambient on
- 2 Highlight on
- 3 Reflection on and Ray trace on
- 4 Transparency: Glass on
- Reflection: Ray trace on
- 5 Reflection: Fresnel on and Ray trace on
- 6 Transparency: Refraction on
- Reflection: Fresnel off and Ray trace on
- 7 Transparency: Refraction on
- Reflection: Fresnel on and Ray trace on
- 8 Reflection on and Ray trace off
- 9 Transparency: Glass on
- Reflection: Ray trace off
- 10 Casts shadows onto invisible surfaces
- d factor
- Specifies the dissolve for the current material.
- "factor" is the amount this material dissolves into the background. A
- factor of 1.0 is fully opaque. This is the default when a new material
- is created. A factor of 0.0 is fully dissolved (completely
- transparent).
- Unlike a real transparent material, the dissolve does not depend upon
- material thickness nor does it have any spectral character. Dissolve
- works on all illumination models.
- d -halo factor
- Specifies that a dissolve is dependent on the surface orientation
- relative to the viewer. For example, a sphere with the following
- dissolve, d -halo 0.0, will be fully dissolved at its center and will
- appear gradually more opaque toward its edge.
- "factor" is the minimum amount of dissolve applied to the material.
- The amount of dissolve will vary between 1.0 (fully opaque) and the
- specified "factor". The formula is:
- dissolve = 1.0 - (N*v)(1.0-factor)
- For a definition of terms, see "Illumination models" on page 5-30.
- Ns exponent
- Specifies the specular exponent for the current material. This defines
- the focus of the specular highlight.
- "exponent" is the value for the specular exponent. A high exponent
- results in a tight, concentrated highlight. Ns values normally range
- from 0 to 1000.
- sharpness value
- Specifies the sharpness of the reflections from the local reflection
- map. If a material does not have a local reflection map defined in its
- material definition, sharpness will apply to the global reflection map
- defined in PreView.
- "value" can be a number from 0 to 1000. The default is 60. A high
- value results in a clear reflection of objects in the reflection map.
- Tip Sharpness values greater than 100 map introduce aliasing effects
- in flat surfaces that are viewed at a sharp angle
- Ni optical_density
- Specifies the optical density for the surface. This is also known as
- index of refraction.
- "optical_density" is the value for the optical density. The values can
- range from 0.001 to 10. A value of 1.0 means that light does not bend
- as it passes through an object. Increasing the optical_density
- increases the amount of bending. Glass has an index of refraction of
- about 1.5. Values of less than 1.0 produce bizarre results and are not
- recommended.
- Material texture map
- Texture map statements modify the material parameters of a surface by
- associating an image or texture file with material parameters that can
- be mapped. By modifying existing parameters instead of replacing them,
- texture maps provide great flexibility in changing the appearance of an
- object's surface.
- Image files and texture files can be used interchangeably. If you use
- an image file, that file is converted to a texture in memory and is
- discarded after rendering.
- Tip Using images instead of textures saves disk space and setup time,
- however, it introduces a small computational cost at the beginning of a
- render.
- The material parameters that can be modified by a texture map are:
- - Ka (color)
- - Kd (color)
- - Ks (color)
- - Ns (scalar)
- - d (scalar)
- In addition to the material parameters, the surface normal can be
- modified.
- Image file types
- You can link any image file type that is currently supported.
- Supported image file types are listed in the chapter "About Image" in
- the "Advanced Visualizer User's Guide". You can also use the "im_info -
- a" command to list Image file types, among other things.
- Texture file types
- The texture file types you can use are:
- - mip-mapped texture files (.mpc, .mps, .mpb)
- - compiled procedural texture files (.cxc, .cxs, .cxb)
- Mip-mapped texture files
- Mip-mapped texture files are created from images using the Create
- Textures panel in the Director or the "texture2D" program. There are
- three types of texture files:
- - color texture files (.mpc)
- - scalar texture files (.mps)
- - bump texture files (.mpb)
- Color textures. Color texture files are designated by an extension of
- ".mpc" in the filename, such as "chrome.mpc". Color textures modify the
- material color as follows:
- - Ka - material ambient is multiplied by the texture value
- - Kd - material diffuse is multiplied by the texture value
- - Ks - material specular is multiplied by the texture value
- Scalar textures. Scalar texture files are designated by an extension
- of ".mps" in the filename, such as "wisp.mps". Scalar textures modify
- the material scalar values as follows:
- - Ns - material specular exponent is multiplied by the texture value
- - d - material dissolve is multiplied by the texture value
- - decal - uses a scalar value to deform the surface of an object to
- create surface roughness
- Bump textures. Bump texture files are designated by an extension of
- ".mpb" in the filename, such as "sand.mpb". Bump textures modify
- surface normals. The image used for a bump texture represents the
- topology or height of the surface relative to the average surface. Dark
- areas are depressions and light areas are high points. The effect is
- like embossing the surface with the texture.
- Procedural texture files
- Procedural texture files use mathematical formulas to calculate sample
- values of the texture. The procedural texture file is compiled, stored,
- and accessed by the Image program when rendering. for more information
- see chapter 9, "Procedural Texture Files (.cxc, .cxb. and .cxs)".
- Syntax
- The following syntax describes the texture map statements that apply to
- .mtl files. These statements can be used alone or with any combination
- of options. The options and their arguments are inserted between the
- keyword and the "filename".
- map_Ka -options args filename
- Specifies that a color texture file or a color procedural texture file
- is applied to the ambient reflectivity of the material. During
- rendering, the "map_Ka" value is multiplied by the "Ka" value.
- "filename" is the name of a color texture file (.mpc), a color
- procedural texture file (.cxc), or an image file.
- Tip To make sure that the texture retains its original look, use the
- .rfl file "ident" as the underlying material. This applies to the
- "map_Ka", "map_Kd", and "map_Ks" statements. For more information on
- .rfl files, see chapter 8, "Spectral Curve File (.rfl)".
- The options for the "map_Ka" statement are listed below. These options
- are described in detail in "Options for texture map statements" on page
- 5-18.
- -blendu on | off
- -blendv on | off
- -cc on | off
- -clamp on | off
- -mm base gain
- -o u v w
- -s u v w
- -t u v w
- -texres value
- map_Kd -options args filename
- Specifies that a color texture file or color procedural texture file is
- linked to the diffuse reflectivity of the material. During rendering,
- the map_Kd value is multiplied by the Kd value.
- "filename" is the name of a color texture file (.mpc), a color
- procedural texture file (.cxc), or an image file.
- The options for the map_Kd statement are listed below. These options
- are described in detail in "Options for texture map statements" on page
- 5-18.
- -blendu on | off
- -blendv on | off
- -cc on | off
- -clamp on | off
- -mm base gain
- -o u v w
- -s u v w
- -t u v w
- -texres value
- map_Ks -options args filename
- Specifies that a color texture file or color procedural texture file is
- linked to the specular reflectivity of the material. During rendering,
- the map_Ks value is multiplied by the Ks value.
- "filename" is the name of a color texture file (.mpc), a color
- procedural texture file (.cxc), or an image file.
- The options for the map_Ks statement are listed below. These options
- are described in detail in "Options for texture map statements" on page
- 5-18.
- -blendu on | off
- -blendv on | off
- -cc on | off
- -clamp on | off
- -mm base gain
- -o u v w
- -s u v w
- -t u v w
- -texres value
- map_Ns -options args filename
- Specifies that a scalar texture file or scalar procedural texture file
- is linked to the specular exponent of the material. During rendering,
- the map_Ns value is multiplied by the Ns value.
- "filename" is the name of a scalar texture file (.mps), a scalar
- procedural texture file (.cxs), or an image file.
- The options for the map_Ns statement are listed below. These options
- are described in detail in "Options for texture map statements" on page
- 5-18.
- -blendu on | off
- -blendv on | off
- -clamp on | off
- -imfchan r | g | b | m | l | z
- -mm base gain
- -o u v w
- -s u v w
- -t u v w
- -texres value
- map_d -options args filename
- Specifies that a scalar texture file or scalar procedural texture file
- is linked to the dissolve of the material. During rendering, the map_d
- value is multiplied by the d value.
- "filename" is the name of a scalar texture file (.mps), a scalar
- procedural texture file (.cxs), or an image file.
- The options for the map_d statement are listed below. These options
- are described in detail in "Options for texture map statements" on page
- 5-18.
- -blendu on | off
- -blendv on | off
- -clamp on | off
- -imfchan r | g | b | m | l | z
- -mm base gain
- -o u v w
- -s u v w
- -t u v w
- -texres value
- map_aat on
- Turns on anti-aliasing of textures in this material without anti-
- aliasing all textures in the scene.
- If you wish to selectively anti-alias textures, first insert this
- statement in the material file. Then, when rendering with the Image
- panel, choose the anti-alias settings: "shadows", "reflections
- polygons", or "polygons only". If using Image from the command line,
- use the -aa or -os options. Do not use the -aat option.
- Image will anti-alias all textures in materials with the map_aat on
- statement, using the oversampling level you choose when you run Image.
- Textures in other materials will not be oversampled.
- You cannot set a different oversampling level individually for each
- material, nor can you anti-alias some textures in a material and not
- others. To anti-alias all textures in all materials, use the -aat
- option from the Image command line. If a material with "map_aat on"
- includes a reflection map, all textures in that reflection map will be
- anti-aliased as well.
- You will not see the effects of map_aat in the Property Editor.
- Tip Some .mpc textures map exhibit undesirable effects around the
- edges of smoothed objects. The "map_aat" statement will correct this.
- decal -options args filename
- Specifies that a scalar texture file or a scalar procedural texture
- file is used to selectively replace the material color with the texture
- color.
- "filename" is the name of a scalar texture file (.mps), a scalar
- procedural texture file (.cxs), or an image file.
- During rendering, the Ka, Kd, and Ks values and the map_Ka, map_Kd, and
- map_Ks values are blended according to the following formula:
- result_color=tex_color(tv)*decal(tv)+mtl_color*(1.0-decal(tv))
- where tv is the texture vertex.
- "result_color" is the blended Ka, Kd, and Ks values.
- The options for the decal statement are listed below. These options
- are described in detail in "Options for texture map statements" on page
- 5-18.
- -blendu on | off
- -blendv on | off
- -clamp on | off
- -imfchan r | g | b | m | l | z
- -mm base gain
- -o u v w
- -s u v w
- -t u v w
- -texres value
- disp -options args filename
- Specifies that a scalar texture is used to deform the surface of an
- object, creating surface roughness.
- "filename" is the name of a scalar texture file (.mps), a bump
- procedural texture file (.cxb), or an image file.
- The options for the disp statement are listed below. These options are
- described in detail in "Options for texture map statements" on page 5-
- 18.
- -blendu on | off
- -blendv on | off
- -clamp on | off
- -imfchan r | g | b | m | l | z
- -mm base gain
- -o u v w
- -s u v w
- -t u v w
- -texres value
- bump -options args filename
- Specifies that a bump texture file or a bump procedural texture file is
- linked to the material.
- "filename" is the name of a bump texture file (.mpb), a bump procedural
- texture file (.cxb), or an image file.
- The options for the bump statement are listed below. These options are
- described in detail in "Options for texture map statements" on page 5-
- 18.
- -bm mult
- -clamp on | off
- -blendu on | off
- -blendv on | off
- -imfchan r | g | b | m | l | z
- -mm base gain
- -o u v w
- -s u v w
- -t u v w
- -texres value
- Options for texture map statements
- The following options and arguments can be used to modify the texture
- map statements.
- -blenu on | off
- The -blendu option turns texture blending in the horizontal direction
- (u direction) on or off. The default is on.
- -blenv on | off
- The -blendv option turns texture blending in the vertical direction (v
- direction) on or off. The default is on.
- -bm mult
- The -bm option specifies a bump multiplier. You can use it only with
- the "bump" statement. Values stored with the texture or procedural
- texture file are multiplied by this value before they are applied to the
- surface.
- "mult" is the value for the bump multiplier. It can be positive or
- negative. Extreme bump multipliers may cause odd visual results because
- only the surface normal is perturbed and the surface position does not
- change. For best results, use values between 0 and 1.
- -boost value
- The -boost option increases the sharpness, or clarity, of mip-mapped
- texture files -- that is, color (.mpc), scalar (.mps), and bump (.mpb)
- files. If you render animations with boost, you may experience some
- texture crawling. The effects of boost are seen when you render in
- Image or test render in Model or PreView; they aren't as noticeable in
- Property Editor.
- "value" is any non-negative floating point value representing the
- degree of increased clarity; the greater the value, the greater the
- clarity. You should start with a boost value of no more than 1 or 2 and
- increase the value as needed. Note that larger values have more
- potential to introduce texture crawling when animated.
- -cc on | off
- The -cc option turns on color correction for the texture. You can use
- it only with the color map statements: map_Ka, map_Kd, and map_Ks.
- -clamp on | off
- The -clamp option turns clamping on or off. When clamping is on,
- textures are restricted to 0-1 in the uvw range. The default is off.
- When clamping is turned on, one copy of the texture is mapped onto the
- surface, rather than repeating copies of the original texture across the
- surface of a polygon, which is the default. Outside of the origin
- texture, the underlying material is unchanged.
- A postage stamp on an envelope or a label on a can of soup is an
- example of a texture with clamping turned on. A tile floor or a
- sidewalk is an example of a texture with clamping turned off.
- Two-dimensional textures are clamped in the u and v dimensions; 3D
- procedural textures are clamped in the u, v, and w dimensions.
- -imfchan r | g | b | m | l | z
- The -imfchan option specifies the channel used to create a scalar or
- bump texture. Scalar textures are applied to:
- transparency
- specular exponent
- decal
- displacement
- The channel choices are:
- r specifies the red channel.
- g specifies the green channel.
- b specifies the blue channel.
- m specifies the matte channel.
- l specifies the luminance channel.
- z specifies the z-depth channel.
- The default for bump and scalar textures is "l" (luminance), unless you
- are building a decal. In that case, the default is "m" (matte).
- -mm base gain
- The -mm option modifies the range over which scalar or color texture
- values may vary. This has an effect only during rendering and does not
- change the file.
- "base" adds a base value to the texture values. A positive value makes
- everything brighter; a negative value makes everything dimmer. The
- default is 0; the range is unlimited.
- "gain" expands the range of the texture values. Increasing the number
- increases the contrast. The default is 1; the range is unlimited.
- -o u v w
- The -o option offsets the position of the texture map on the surface by
- shifting the position of the map origin. The default is 0, 0, 0.
- "u" is the value for the horizontal direction of the texture
- "v" is an optional argument.
- "v" is the value for the vertical direction of the texture.
- "w" is an optional argument.
- "w" is the value used for the depth of a 3D texture.
- -s u v w
- The -s option scales the size of the texture pattern on the textured
- surface by expanding or shrinking the pattern. The default is 1, 1, 1.
- "u" is the value for the horizontal direction of the texture
- "v" is an optional argument.
- "v" is the value for the vertical direction of the texture.
- "w" is an optional argument.
- "w" is a value used for the depth of a 3D texture.
- "w" is a value used for the amount of tessellation of the displacement
- map.
- -t u v w
- The -t option turns on turbulence for textures. Adding turbulence to a
- texture along a specified direction adds variance to the original image
- and allows a simple image to be repeated over a larger area without
- noticeable tiling effects.
- turbulence also lets you use a 2D image as if it were a solid texture,
- similar to 3D procedural textures like marble and granite.
- "u" is the value for the horizontal direction of the texture
- turbulence.
- "v" is an optional argument.
- "v" is the value for the vertical direction of the texture turbulence.
- "w" is an optional argument.
- "w" is a value used for the depth of the texture turbulence.
- By default, the turbulence for every texture map used in a material is
- uvw = (0,0,0). This means that no turbulence will be applied and the 2D
- texture will behave normally.
- Only when you raise the turbulence values above zero will you see the
- effects of turbulence.
- -texres resolution
- The -texres option specifies the resolution of texture created when an
- image is used. The default texture size is the largest power of two
- that does not exceed the original image size.
- If the source image is an exact power of 2, the texture cannot be built
- any larger. If the source image size is not an exact power of 2, you
- can specify that the texture be built at the next power of 2 greater
- than the source image size.
- The original image should be square, otherwise, it will be scaled to
- fit the closest square size that is not larger than the original.
- Scaling reduces sharpness.
- Material reflection map
- A reflection map is an environment that simulates reflections in
- specified objects. The environment is represented by a color texture
- file or procedural texture file that is mapped on the inside of an
- infinitely large, space. Reflection maps can be spherical or cubic. A
- spherical reflection map requires only one texture or image file, while
- a cubic reflection map requires six.
- Each material description can contain one reflection map statement that
- specifies a color texture file or a color procedural texture file to
- represent the environment. The material itself must be assigned an
- illumination model of 3 or greater.
- The reflection map statement in the .mtl file defines a local
- reflection map. That is, each material assigned to an object in a scene
- can have an individual reflection map. In PreView, you can assign a
- global reflection map to an object and specify the orientation of the
- reflection map. Rotating the reflection map creates the effect of
- animating reflections independently of object motion. When you replace
- a global reflection map with a local reflection map, the local
- reflection map inherits the transformation of the global reflection map.
- Syntax
- The following syntax statements describe the reflection map statement
- for .mtl files.
- refl -type sphere -options -args filename
- Specifies an infinitely large sphere that casts reflections onto the
- material. You specify one texture file.
- "filename" is the color texture file, color procedural texture file, or
- image file that will be mapped onto the inside of the shape.
- refl -type cube_side -options -args filenames
- Specifies an infinitely large sphere that casts reflections onto the
- material. You can specify different texture files for the "top",
- "bottom", "front", "back", "left", and "right" with the following
- statements:
- refl -type cube_top
- refl -type cube_bottom
- refl -type cube_front
- refl -type cube_back
- refl -type cube_left
- refl -type cube_right
- "filenames" are the color texture files, color procedural texture
- files, or image files that will be mapped onto the inside of the shape.
- The "refl" statements for sphere and cube can be used alone or with
- any combination of the following options. The options and their
- arguments are inserted between "refl" and "filename".
- -blendu on | off
- -blendv on | off
- -cc on | off
- -clamp on | off
- -mm base gain
- -o u v w
- -s u v w
- -t u v w
- -texres value
- The options for the reflection map statement are described in detail in
- "Options for texture map statements" on page 18.
- Examples
- 1 Neon green
- This is a bright green material. When applied to an object, it will
- remain bright green regardless of any lighting in the scene.
- newmtl neon_green
- Kd 0.0000 1.0000 0.0000
- illum 0
- 2 Flat green
- This is a flat green material.
- newmtl flat_green
- Ka 0.0000 1.0000 0.0000
- Kd 0.0000 1.0000 0.0000
- illum 1
- 3 Dissolved green
- This is a flat green, partially dissolved material.
- newmtl diss_green
- Ka 0.0000 1.0000 0.0000
- Kd 0.0000 1.0000 0.0000
- d 0.8000
- illum 1
- 4 Shiny green
- This is a shiny green material. When applied to an object, it shows a
- white specular highlight.
- newmtl shiny_green
- Ka 0.0000 1.0000 0.0000
- Kd 0.0000 1.0000 0.0000
- Ks 1.0000 1.0000 1.0000
- Ns 200.0000
- illum 1
- 5 Green mirror
- This is a reflective green material. When applied to an object, it
- reflects other objects in the same scene.
- newmtl green_mirror
- Ka 0.0000 1.0000 0.0000
- Kd 0.0000 1.0000 0.0000
- Ks 0.0000 1.0000 0.0000
- Ns 200.0000
- illum 3
- 6 Fake windshield
- This material approximates a glass surface. Is it almost completely
- transparent, but it shows reflections of other objects in the scene. It
- will not distort the image of objects seen through the material.
- newmtl fake_windsh
- Ka 0.0000 0.0000 0.0000
- Kd 0.0000 0.0000 0.0000
- Ks 0.9000 0.9000 0.9000
- d 0.1000
- Ns 200
- illum 4
- 7 Fresnel blue
- This material exhibits an effect known as Fresnel reflection. When
- applied to an object, white fringes may appear where the object's
- surface is viewed at a glancing angle.
- newmtl fresnel_blu
- Ka 0.0000 0.0000 0.0000
- Kd 0.0000 0.0000 0.0000
- Ks 0.6180 0.8760 0.1430
- Ns 200
- illum 5
- 8 Real windshield
- This material accurately represents a glass surface. It filters of
- colorizes objects that are seen through it. Filtering is done according
- to the transmission color of the material. The material also distorts
- the image of objects according to its optical density. Note that the
- material is not dissolved and that its ambient, diffuse, and specular
- reflective colors have been set to black. Only the transmission color
- is non-black.
- newmtl real_windsh
- Ka 0.0000 0.0000 0.0000
- Kd 0.0000 0.0000 0.0000
- Ks 0.0000 0.0000 0.0000
- Tf 1.0000 1.0000 1.0000
- Ns 200
- Ni 1.2000
- illum 6
- 9 Fresnel windshield
- This material combines the effects in examples 7 and 8.
- newmtl fresnel_win
- Ka 0.0000 0.0000 1.0000
- Kd 0.0000 0.0000 1.0000
- Ks 0.6180 0.8760 0.1430
- Tf 1.0000 1.0000 1.0000
- Ns 200
- Ni 1.2000
- illum 7
- 10 Tin
- This material is based on spectral reflectance samples taken from an
- actual piece of tin. These samples are stored in a separate .rfl file
- that is referred to by name in the material. Spectral sample files
- (.rfl) can be used in any type of material as an alternative to RGB
- values.
- newmtl tin
- Ka spectral tin.rfl
- Kd spectral tin.rfl
- Ks spectral tin.rfl
- Ns 200
- illum 3
- 11 Pine Wood
- This material includes a texture map of a pine pattern. The material
- color is set to "ident" to preserve the texture's true color. When
- applied to an object, this texture map will affect only the ambient and
- diffuse regions of that object's surface.
- The color information for the texture is stored in a separate .mpc file
- that is referred to in the material by its name, "pine.mpc". If you use
- different .mpc files for ambient and diffuse, you will get unrealistic
- results.
- newmtl pine_wood
- Ka spectral ident.rfl 1
- Kd spectral ident.rfl 1
- illum 1
- map_Ka pine.mpc
- map_Kd pine.mpc
- 12 Bumpy leather
- This material includes a texture map of a leather pattern. The
- material color is set to "ident" to preserve the texture's true color.
- When applied to an object, it affects both the color of the object's
- surface and its apparent bumpiness.
- The color information for the texture is stored in a separate .mpc file
- that is referred to in the material by its name, "brown.mpc". The bump
- information is stored in a separate .mpb file that is referred to in the
- material by its name, "leath.mpb". The -bm option is used to raise the
- apparent height of the leather bumps.
- newmtl bumpy_leath
- Ka spectral ident.rfl 1
- Kd spectral ident.rfl 1
- Ks spectral ident.rfl 1
- illum 2
- map_Ka brown.mpc
- map_Kd brown.mpc
- map_Ks brown.mpc
- bump -bm 2.000 leath.mpb
- 13 Frosted window
- This material includes a texture map used to alter the opacity of an
- object's surface. The material color is set to "ident" to preserve the
- texture's true color. When applied to an object, the object becomes
- transparent in certain areas and opaque in others.
- The variation between opaque and transparent regions is controlled by
- scalar information stored in a separate .mps file that is referred to in
- the material by its name, "window.mps". The "-mm" option is used to
- shift and compress the range of opacity.
- newmtl frost_wind
- Ka 0.2 0.2 0.2
- Kd 0.6 0.6 0.6
- Ks 0.1 0.1 0.1
- d 1
- Ns 200
- illum 2
- map_d -mm 0.200 0.800 window.mps
- 14 Shifted logo
- This material includes a texture map which illustrates how a texture's
- origin may be shifted left/right (the "u" direction) or up/down (the "v"
- direction). The material color is set to "ident" to preserve the
- texture's true color.
- In this example, the original image of the logo is off-center to the
- left. To compensate, the texture's origin is shifted back to the right
- (the positive "u" direction) using the "-o" option to modify the origin.
- Ka spectral ident.rfl 1
- Kd spectral ident.rfl 1
- Ks spectral ident.rfl 1
- illum 2
- map_Ka -o 0.200 0.000 0.000 logo.mpc
- map_Kd -o 0.200 0.000 0.000 logo.mpc
- map_Ks -o 0.200 0.000 0.000 logo.mpc
- 15 Scaled logo
- This material includes a texture map showing how a texture may be
- scaled left or right (in the "u" direction) or up and down (in the "v"
- direction). The material color is set to "ident" to preserve the
- texture's true color.
- In this example, the original image of the logo is too small. To
- compensate, the texture is scaled slightly to the right (in the positive
- "u" direction) and up (in the positive "v" direction) using the "-s"
- option to modify the scale.
- Ka spectral ident.rfl 1
- Kd spectral ident.rfl 1
- Ks spectral ident.rfl 1
- illum 2
- map_Ka -s 1.200 1.200 0.000 logo.mpc
- map_Kd -s 1.200 1.200 0.000 logo.mpc
- map_Ks -s 1.200 1.200 0.000 logo.mpc
- 16 Chrome with spherical reflection map
- This illustrates a common use for local reflection maps (defined in a
- material).
- this material is highly reflective with no diffuse or ambient
- contribution. Its reflection map is an image with silver streaks that
- yields a chrome appearance when viewed as a reflection.
- ka 0 0 0
- kd 0 0 0
- ks .7 .7 .7
- illum 1
- refl -type sphere chrome.rla
- Illumination models
- The following list defines the terms and vectors that are used in the
- illumination model equations:
- Term Definition
- Ft Fresnel reflectance
- Ft Fresnel transmittance
- Ia ambient light
- I light intensity
- Ir intensity from reflected direction
- (reflection map and/or ray tracing)
- It intensity from transmitted direction
- Ka ambient reflectance
- Kd diffuse reflectance
- Ks specular reflectance
- Tf transmission filter
- Vector Definition
- H unit vector bisector between L and V
- L unit light vector
- N unit surface normal
- V unit view vector
- The illumination models are:
- 0 This is a constant color illumination model. The color is the
- specified Kd for the material. The formula is:
- color = Kd
- 1 This is a diffuse illumination model using Lambertian shading. The
- color includes an ambient constant term and a diffuse shading term for
- each light source. The formula is
- color = KaIa + Kd { SUM j=1..ls, (N * Lj)Ij }
- 2 This is a diffuse and specular illumination model using Lambertian
- shading and Blinn's interpretation of Phong's specular illumination
- model (BLIN77). The color includes an ambient constant term, and a
- diffuse and specular shading term for each light source. The formula
- is:
- color = KaIa
- + Kd { SUM j=1..ls, (N*Lj)Ij }
- + Ks { SUM j=1..ls, ((H*Hj)^Ns)Ij }
- 3 This is a diffuse and specular illumination model with reflection
- using Lambertian shading, Blinn's interpretation of Phong's specular
- illumination model (BLIN77), and a reflection term similar to that in
- Whitted's illumination model (WHIT80). The color includes an ambient
- constant term and a diffuse and specular shading term for each light
- source. The formula is:
- color = KaIa
- + Kd { SUM j=1..ls, (N*Lj)Ij }
- + Ks ({ SUM j=1..ls, ((H*Hj)^Ns)Ij } + Ir)
- Ir = (intensity of reflection map) + (ray trace)
- 4 The diffuse and specular illumination model used to simulate glass
- is the same as illumination model 3. When using a very low dissolve
- (approximately 0.1), specular highlights from lights or reflections
- become imperceptible.
- Simulating glass requires an almost transparent object that still
- reflects strong highlights. The maximum of the average intensity of
- highlights and reflected lights is used to adjust the dissolve factor.
- The formula is:
- color = KaIa
- + Kd { SUM j=1..ls, (N*Lj)Ij }
- + Ks ({ SUM j=1..ls, ((H*Hj)^Ns)Ij } + Ir)
- 5 This is a diffuse and specular shading models similar to
- illumination model 3, except that reflection due to Fresnel effects is
- introduced into the equation. Fresnel reflection results from light
- striking a diffuse surface at a grazing or glancing angle. When light
- reflects at a grazing angle, the Ks value approaches 1.0 for all color
- samples. The formula is:
- color = KaIa
- + Kd { SUM j=1..ls, (N*Lj)Ij }
- + Ks ({ SUM j=1..ls, ((H*Hj)^Ns)Ij Fr(Lj*Hj,Ks,Ns)Ij} +
- Fr(N*V,Ks,Ns)Ir})
- 6 This is a diffuse and specular illumination model similar to that
- used by Whitted (WHIT80) that allows rays to refract through a surface.
- The amount of refraction is based on optical density (Ni). The
- intensity of light that refracts is equal to 1.0 minus the value of Ks,
- and the resulting light is filtered by Tf (transmission filter) as it
- passes through the object. The formula is:
- color = KaIa
- + Kd { SUM j=1..ls, (N*Lj)Ij }
- + Ks ({ SUM j=1..ls, ((H*Hj)^Ns)Ij } + Ir)
- + (1.0 - Ks) TfIt
- 7 This illumination model is similar to illumination model 6, except
- that reflection and transmission due to Fresnel effects has been
- introduced to the equation. At grazing angles, more light is reflected
- and less light is refracted through the object. The formula is:
- color = KaIa
- + Kd { SUM j=1..ls, (N*Lj)Ij }
- + Ks ({ SUM j=1..ls, ((H*Hj)^Ns)Ij Fr(Lj*Hj,Ks,Ns)Ij} +
- Fr(N*V,Ks,Ns)Ir})
- + (1.0 - Kx)Ft (N*V,(1.0-Ks),Ns)TfIt
- 8 This illumination model is similar to illumination model 3 without
- ray tracing. The formula is:
- color = KaIa
- + Kd { SUM j=1..ls, (N*Lj)Ij }
- + Ks ({ SUM j=1..ls, ((H*Hj)^Ns)Ij } + Ir)
- Ir = (intensity of reflection map)
- 9 This illumination model is similar to illumination model 4without
- ray tracing. The formula is:
- color = KaIa
- + Kd { SUM j=1..ls, (N*Lj)Ij }
- + Ks ({ SUM j=1..ls, ((H*Hj)^Ns)Ij } + Ir)
- Ir = (intensity of reflection map)
- 10 This illumination model is used to cast shadows onto an invisible
- surface. This is most useful when compositing computer-generated
- imagery onto live action, since it allows shadows from rendered objects
- to be composited directly on top of video-grabbed images. The equation
- for computation of a shadowmatte is formulated as follows.
- color = Pixel color. The pixel color of a shadowmatte material is
- always black.
- color = black
- M = Matte channel value. This is the image channel which typically
- represents the opacity of the point on the surface. To store the shadow
- in the matte channel of the image, it is calculated as:
- M = 1 - W / P
- where:
- P = Unweighted sum. This is the sum of all S values for each light:
- P = S1 + S2 + S3 + .....
- W = Weighted sum. This is the sum of all S values, each weighted by
- the visibility factor (Q) for the light:
- W = (S1 * Q1) + (S2 * Q2) + .....
- Q = Visibility factor. This is the amount of light from a particular
- light source that reaches the point to be shaded, after traveling
- through all shadow objects between the light and the point on the
- surface. Q = 0 means no light reached the point to be shaded; it was
- blocked by shadow objects, thus casting a shadow. Q = 1 means that
- nothing blocked the light, and no shadow was cast. 0 < Q < 1 means that
- the light was partially blocked by objects that were partially
- dissolved.
- S = Summed brightness. This is the sum of the spectral sample
- intensities for a particular light. The samples are variable, but the
- default is 3:
- S = samp1 + samp2 + samp3.
- Inspiration for this post is from Star Citizen Red_Raven
- https://forums.robertsspaceindustries.com/discussion/comment/7613656/#Comment_7613656
- Extra Notes:
- Difference between Normal Map, Bump Map, Height Map
- Source https://www.gamedev.net/topic/670621-normal-map-height-map-bump-map-are-all-the-same-thing/
- "Normal maps and height maps are not the same thing. (Though it could be argued that bump map and height map are the same thing.) You could consider a normal map to instead be the derivative with respect to x (stored in red channel) and y (stored in green channel) of the bump map. Hence the reason that a bump map appears as a greyscale image and a normal map appears as the distinctive bluish-image (due to the blue component always being 1."
- How to use Gloss maps in Cinema4D
- Source https://forum.allegorithmic.com/index.php?topic=9757.0#msg48204
- "
- -delete the legacy specular layer
- -create a new GGX layer
- Specular:
- -feed the specular into the Layer Color texture input
- Glossiness:
- -under the roughness bracket create a colorizer
- -feed the glossiness map into the input
- -invert the map by changing the gradient to white and black
- GGX
- -change the GGX properties, highlighted yellow on the image (see link above).
- Tweak the roughness as well"
- - MQ on allegorithmic forums.
- Difference between Displacement Maps and Height Maps
- Source https://gamedev.stackexchange.com/questions/65755/whats-the-difference-between-displacement-mapping-and-height-mapping
- "Displacement Mapping: Is a technique that aims to render bumps as true geometry, in a very fine mesh. Unlike bump mapping, parallax, and relief mapping which tries to "fake" bumps using normal maps, Displacement mapping actually displaces the surface, creating triangles between the texels. .
- Height Mapping: is the same thing, but it's usually used in the context where a displacement map (also called height map) is applied on a terrain where the value are only used to modify the vertex height."
- -concept3D on gamedev stackexchange
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement