11.12.2023 - Session 02: Unterschied zwischen den Versionen
Aus exmediawiki
Shuree (Diskussion | Beiträge) |
Shuree (Diskussion | Beiträge) |
||
Zeile 1: | Zeile 1: | ||
'''UE Basic Materials Intro''' | '''UE Basic Materials Intro''' | ||
+ | |||
<br> | <br> | ||
Materials in Unreal Engine define the surface properties of the objects in your scene. In the broadest sense, you can think of a Material as the "paint" that is applied to a mesh to control its visual appearance. | Materials in Unreal Engine define the surface properties of the objects in your scene. In the broadest sense, you can think of a Material as the "paint" that is applied to a mesh to control its visual appearance. | ||
In more technical terms, Materials tell the render engine exactly how a surface should interact with the light in your scene. Materials define every aspect of the surface including color, reflectivity, bumpiness, transparency, and so on. These calculations are done using data that is input to the Material from a variety of images (textures) and node-based Material expressions, as well as from various property settings inherent to the Material itself. | In more technical terms, Materials tell the render engine exactly how a surface should interact with the light in your scene. Materials define every aspect of the surface including color, reflectivity, bumpiness, transparency, and so on. These calculations are done using data that is input to the Material from a variety of images (textures) and node-based Material expressions, as well as from various property settings inherent to the Material itself. | ||
+ | <br> | ||
<br> | <br> | ||
'''Base Color''' | '''Base Color''' | ||
+ | |||
<br> | <br> | ||
Base Color defines the overall color of the Material. In principle, Base Color should represent the diffuse light reflected off a surface, minus any specular reflections/highlights. | Base Color defines the overall color of the Material. In principle, Base Color should represent the diffuse light reflected off a surface, minus any specular reflections/highlights. | ||
If taken from the real world, base color textures should be photographed using a polarizing filter. Polarization removes the specular of nonmetals when aligned. | If taken from the real world, base color textures should be photographed using a polarizing filter. Polarization removes the specular of nonmetals when aligned. | ||
+ | <br> | ||
<br> | <br> | ||
'''Metallic''' | '''Metallic''' | ||
+ | |||
<br> | <br> | ||
The Metallic input controls how 'metal-like' your surface will be. Metallic accepts any value between 0 and 1, but in a majority of cases Metallic is considered an either/or property. | The Metallic input controls how 'metal-like' your surface will be. Metallic accepts any value between 0 and 1, but in a majority of cases Metallic is considered an either/or property. | ||
Zeile 15: | Zeile 20: | ||
Metals have a Metallic value of 1. | Metals have a Metallic value of 1. | ||
For pure surfaces, such as pure metal, pure stone, or pure plastic this value will be 0 or 1, not anything in between. When creating hybrid surfaces like corroded, dusty, or rusty metals, you may find that you need some value between 0 and 1. | For pure surfaces, such as pure metal, pure stone, or pure plastic this value will be 0 or 1, not anything in between. When creating hybrid surfaces like corroded, dusty, or rusty metals, you may find that you need some value between 0 and 1. | ||
+ | <br> | ||
<br> | <br> | ||
'''Specular''' | '''Specular''' | ||
+ | |||
<br> | <br> | ||
Specularity is a measure of how much light a surface reflects. The Specular input takes a value between 0 and 1, and defines the extent to which a surface is reflective: | Specularity is a measure of how much light a surface reflects. The Specular input takes a value between 0 and 1, and defines the extent to which a surface is reflective: | ||
Zeile 22: | Zeile 29: | ||
Value of 1 - Fully reflective | Value of 1 - Fully reflective | ||
The default value is 0.5, which represents approximately 4% reflectivity. | The default value is 0.5, which represents approximately 4% reflectivity. | ||
+ | <br> | ||
<br> | <br> | ||
'''Roughness''' | '''Roughness''' | ||
+ | |||
<br> | <br> | ||
The Roughness input controls how rough or smooth a Material's surface is. Rough Materials scatter reflected light in more directions than smooth Materials. This value controls how blurry or sharp a reflection is (or how broad or tight a specular highlight is). | The Roughness input controls how rough or smooth a Material's surface is. Rough Materials scatter reflected light in more directions than smooth Materials. This value controls how blurry or sharp a reflection is (or how broad or tight a specular highlight is). | ||
A Roughness of 0 (smooth) results in a mirror-like reflection. | A Roughness of 0 (smooth) results in a mirror-like reflection. | ||
A Roughness of 1 (rough) results in a diffuse or matte surface. | A Roughness of 1 (rough) results in a diffuse or matte surface. | ||
+ | <br> | ||
<br> | <br> | ||
'''Emissive Color''' | '''Emissive Color''' | ||
+ | |||
<br> | <br> | ||
The Emissive Color input controls which parts of your Material will glow or emit light, and the brightness of the emission. Ideally this input will receive a masked texture (mostly black except the areas that need to glow). | The Emissive Color input controls which parts of your Material will glow or emit light, and the brightness of the emission. Ideally this input will receive a masked texture (mostly black except the areas that need to glow). | ||
Values greater than 1 are allowed as HDR lighting is supported. | Values greater than 1 are allowed as HDR lighting is supported. | ||
+ | <be> | ||
<br> | <br> | ||
'''Opacity''' | '''Opacity''' | ||
+ | |||
<br> | <br> | ||
The Opacity input is enabled when the Translucent Blend Mode is selected, typically for Translucent, Additive, and Modulated Materials. | The Opacity input is enabled when the Translucent Blend Mode is selected, typically for Translucent, Additive, and Modulated Materials. | ||
Zeile 41: | Zeile 54: | ||
Fractional values between 0 and 1 produce semi-transparent or translucent Materials. | Fractional values between 0 and 1 produce semi-transparent or translucent Materials. | ||
Opaque and masked blend modes also use Opacity when using one of the subsurface shading models. | Opaque and masked blend modes also use Opacity when using one of the subsurface shading models. | ||
+ | <br> | ||
<br> | <br> | ||
'''Normal''' | '''Normal''' | ||
+ | |||
<br> | <br> | ||
The Normal input takes in a normal map, which is used to add significant physical detail to the surface by modifying the "normal," or facing direction, of each individual pixel. | The Normal input takes in a normal map, which is used to add significant physical detail to the surface by modifying the "normal," or facing direction, of each individual pixel. | ||
+ | <br> | ||
<br> | <br> | ||
'''Instanced Materials''' | '''Instanced Materials''' | ||
+ | |||
<br> | <br> | ||
Material instancing in Unreal Engine is used to change the appearance of a Material without incurring an expensive recompilation of the Material. | Material instancing in Unreal Engine is used to change the appearance of a Material without incurring an expensive recompilation of the Material. | ||
Whereas a typical Material cannot be changed without recompiling (something that must happen prior to gameplay), a parameterized Material can be edited in a Material instance without such recompilation. This has numerous workflow advantages, and can improve Material performance. | Whereas a typical Material cannot be changed without recompiling (something that must happen prior to gameplay), a parameterized Material can be edited in a Material instance without such recompilation. This has numerous workflow advantages, and can improve Material performance. | ||
<br> | <br> | ||
− | Material Parameterization | + | <br> |
+ | '''Material Parameterization''' | ||
+ | |||
<br> | <br> | ||
It is important to know that you cannot edit every single characteristic of a Material instance by default. To make Material attributes editable within an instance, you must designate them as parameters in the parent Material. This is called parameterizing your Material. | It is important to know that you cannot edit every single characteristic of a Material instance by default. To make Material attributes editable within an instance, you must designate them as parameters in the parent Material. This is called parameterizing your Material. | ||
Zeile 57: | Zeile 76: | ||
For example, a Constant expression contains a single floating-point value, and is frequently used to control Material inputs like Roughness and Metallic. The parameterized version of this node is called a Scalar Parameter. | For example, a Constant expression contains a single floating-point value, and is frequently used to control Material inputs like Roughness and Metallic. The parameterized version of this node is called a Scalar Parameter. | ||
<br> | <br> | ||
− | Expression Index | + | <br> |
+ | '''Expression Index''' | ||
+ | |||
<br> | <br> | ||
This is a reference list of many, but not all, Material Expressions. All links shown here can also be accessed through the Expression Types pages listed above. Additionally, you can use Ctrl+F to find the expression node you need and follow the link to its description. | This is a reference list of many, but not all, Material Expressions. All links shown here can also be accessed through the Expression Types pages listed above. Additionally, you can use Ctrl+F to find the expression node you need and follow the link to its description. | ||
+ | <br> | ||
More info under: | More info under: | ||
+ | <br> | ||
https://docs.unrealengine.com/5.0/en-US/unreal-engine-material-expressions-reference/ | https://docs.unrealengine.com/5.0/en-US/unreal-engine-material-expressions-reference/ | ||
− | < | + | <br> |
+ | <br> | ||
More info about PBR Textures: | More info about PBR Textures: | ||
<br> | <br> | ||
https://www.cgbookcase.com/learn/how-to-use-pbr-textures-in-unreal-engine/#importing-textures | https://www.cgbookcase.com/learn/how-to-use-pbr-textures-in-unreal-engine/#importing-textures | ||
+ | <br> | ||
For free PBR Texures outside quixel megascan: | For free PBR Texures outside quixel megascan: | ||
<br> | <br> | ||
https://www.textures.com/browse/pbr-materials/114558 | https://www.textures.com/browse/pbr-materials/114558 |
Aktuelle Version vom 22. Januar 2024, 10:12 Uhr
UE Basic Materials Intro
Materials in Unreal Engine define the surface properties of the objects in your scene. In the broadest sense, you can think of a Material as the "paint" that is applied to a mesh to control its visual appearance.
In more technical terms, Materials tell the render engine exactly how a surface should interact with the light in your scene. Materials define every aspect of the surface including color, reflectivity, bumpiness, transparency, and so on. These calculations are done using data that is input to the Material from a variety of images (textures) and node-based Material expressions, as well as from various property settings inherent to the Material itself.
Base Color
Base Color defines the overall color of the Material. In principle, Base Color should represent the diffuse light reflected off a surface, minus any specular reflections/highlights.
If taken from the real world, base color textures should be photographed using a polarizing filter. Polarization removes the specular of nonmetals when aligned.
Metallic
The Metallic input controls how 'metal-like' your surface will be. Metallic accepts any value between 0 and 1, but in a majority of cases Metallic is considered an either/or property.
Nonmetals have a Metallic value of 0.
Metals have a Metallic value of 1.
For pure surfaces, such as pure metal, pure stone, or pure plastic this value will be 0 or 1, not anything in between. When creating hybrid surfaces like corroded, dusty, or rusty metals, you may find that you need some value between 0 and 1.
Specular
Specularity is a measure of how much light a surface reflects. The Specular input takes a value between 0 and 1, and defines the extent to which a surface is reflective:
Value of 0 - Fully non-reflective
Value of 1 - Fully reflective
The default value is 0.5, which represents approximately 4% reflectivity.
Roughness
The Roughness input controls how rough or smooth a Material's surface is. Rough Materials scatter reflected light in more directions than smooth Materials. This value controls how blurry or sharp a reflection is (or how broad or tight a specular highlight is).
A Roughness of 0 (smooth) results in a mirror-like reflection.
A Roughness of 1 (rough) results in a diffuse or matte surface.
Emissive Color
The Emissive Color input controls which parts of your Material will glow or emit light, and the brightness of the emission. Ideally this input will receive a masked texture (mostly black except the areas that need to glow).
Values greater than 1 are allowed as HDR lighting is supported.
<be>
Opacity
The Opacity input is enabled when the Translucent Blend Mode is selected, typically for Translucent, Additive, and Modulated Materials.
0.0 represents a completely transparent Material.
1.0 represents a fully opaque Material.
Fractional values between 0 and 1 produce semi-transparent or translucent Materials.
Opaque and masked blend modes also use Opacity when using one of the subsurface shading models.
Normal
The Normal input takes in a normal map, which is used to add significant physical detail to the surface by modifying the "normal," or facing direction, of each individual pixel.
Instanced Materials
Material instancing in Unreal Engine is used to change the appearance of a Material without incurring an expensive recompilation of the Material.
Whereas a typical Material cannot be changed without recompiling (something that must happen prior to gameplay), a parameterized Material can be edited in a Material instance without such recompilation. This has numerous workflow advantages, and can improve Material performance.
Material Parameterization
It is important to know that you cannot edit every single characteristic of a Material instance by default. To make Material attributes editable within an instance, you must designate them as parameters in the parent Material. This is called parameterizing your Material.
A parameter is created like any other data node in the Material Editor, and contains the same information as its non-parameterized counterpart.
For example, a Constant expression contains a single floating-point value, and is frequently used to control Material inputs like Roughness and Metallic. The parameterized version of this node is called a Scalar Parameter.
Expression Index
This is a reference list of many, but not all, Material Expressions. All links shown here can also be accessed through the Expression Types pages listed above. Additionally, you can use Ctrl+F to find the expression node you need and follow the link to its description.
More info under:
https://docs.unrealengine.com/5.0/en-US/unreal-engine-material-expressions-reference/
More info about PBR Textures:
https://www.cgbookcase.com/learn/how-to-use-pbr-textures-in-unreal-engine/#importing-textures
For free PBR Texures outside quixel megascan:
https://www.textures.com/browse/pbr-materials/114558