771 lines
21 KiB
C++
771 lines
21 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "Internationalization/Text.h"
|
|
|
|
namespace UE
|
|
{
|
|
namespace Interchange
|
|
{
|
|
namespace Materials
|
|
{
|
|
namespace Standard
|
|
{
|
|
namespace Nodes
|
|
{
|
|
namespace Add
|
|
{
|
|
const FName Name = TEXT("Add");
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName A = TEXT("A");
|
|
const FName B = TEXT("B");
|
|
}
|
|
}
|
|
|
|
namespace FlattenNormal
|
|
{
|
|
const FName Name = TEXT("FlattenNormal");
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Normal = TEXT("Normal");
|
|
const FName Flatness = TEXT("Flatness");
|
|
}
|
|
}
|
|
|
|
namespace Lerp
|
|
{
|
|
const FName Name = TEXT("Lerp");
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName A = TEXT("A"); // Type: linear color
|
|
const FName B = TEXT("B"); // Type: linear color
|
|
const FName Factor = TEXT("Factor"); // Type: float
|
|
}
|
|
}
|
|
|
|
namespace Mask
|
|
{
|
|
const FName Name = TEXT("ComponentMask");
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName R = TEXT("R");
|
|
const FName G = TEXT("G");
|
|
const FName B = TEXT("B");
|
|
const FName A = TEXT("A");
|
|
}
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Input = TEXT("Input");
|
|
}
|
|
}
|
|
|
|
namespace Multiply
|
|
{
|
|
const FName Name = TEXT("Multiply");
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName A = TEXT("A");
|
|
const FName B = TEXT("B");
|
|
}
|
|
}
|
|
|
|
namespace MakeFloat3
|
|
{
|
|
const FName Name = TEXT("MakeFloat3");
|
|
namespace Inputs
|
|
{
|
|
const FName X = TEXT("X");
|
|
const FName Y = TEXT("Y");
|
|
const FName Z = TEXT("Z");
|
|
}
|
|
}
|
|
|
|
namespace Noise
|
|
{
|
|
const FName Name = TEXT("Noise");
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Position = TEXT("Position");
|
|
const FName FilterWidth = TEXT("FilterWidth");
|
|
}
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName Scale = TEXT("Scale");
|
|
const FName Quality = TEXT("Quality");
|
|
const FName Function = TEXT("NoiseFunction");
|
|
const FName Turbulence = TEXT("bTurbulence");
|
|
const FName Levels = TEXT("Levels");
|
|
const FName OutputMin = TEXT("OutputMin");
|
|
const FName OutputMax = TEXT("OutputMax");
|
|
const FName LevelScale = TEXT("LevelScale");
|
|
const FName Tiling = TEXT("bTiling");
|
|
const FName RepeatSize = TEXT("RepeatSize");
|
|
}
|
|
}
|
|
|
|
namespace NormalFromHeightMap
|
|
{
|
|
const FName Name = TEXT("NormalFromHeightMap");
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName HeightMap = TEXT("Height Map"); // Type: FString (unique id of a texture node)
|
|
const FName Intensity = TEXT("Normal Map Intensity"); // Type: float
|
|
const FName Offset = TEXT("Height Map UV Offset"); // Type: float
|
|
const FName Coordinates = TEXT("Coordinates"); // Type: vec2
|
|
const FName Channel = TEXT("Height Map Channel Selector"); // Type: vec4
|
|
}
|
|
}
|
|
|
|
namespace OneMinus
|
|
{
|
|
const FName Name = TEXT("OneMinus");
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Input = TEXT("Input");
|
|
}
|
|
}
|
|
|
|
namespace Rotator
|
|
{
|
|
const FName Name = TEXT("Rotator");
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName CenterX = TEXT("CenterX");
|
|
const FName CenterY = TEXT("CenterY");
|
|
const FName Speed = TEXT("Speed");
|
|
}
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Coordinate = TEXT("Coordinate");
|
|
const FName Time = TEXT("Time");
|
|
}
|
|
}
|
|
|
|
namespace RotateAboutAxis
|
|
{
|
|
const FName Name = TEXT("RotateAboutAxis");
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName Period = TEXT("Period");
|
|
}
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName NormalizedRotationAxis = TEXT("NormalizedRotationAxis");
|
|
const FName RotationAngle = TEXT("RotationAngle");
|
|
const FName PivotPoint = TEXT("PivotPoint");
|
|
const FName Position = TEXT("Position");
|
|
}
|
|
}
|
|
|
|
namespace Switch
|
|
{
|
|
const FName Name = TEXT("Switch");
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Value = TEXT("SwitchValue");
|
|
const FName Default = TEXT("SwitchDefault");
|
|
const FName InputName = TEXT("SwitchInputName"); // The caller should concatenate this input with an index to get the InputName in the array of the MaterialExpressionSwitch
|
|
}
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName InputCount = TEXT("SwitchInputCount"); // Used to know the number of inputs in the Switch
|
|
}
|
|
}
|
|
|
|
namespace Swizzle
|
|
{
|
|
const FName Name = TEXT("MaterialXSwizzle");
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Input = TEXT("Input");
|
|
}
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName Channels = TEXT("Channels");
|
|
}
|
|
}
|
|
|
|
namespace TextureCoordinate
|
|
{
|
|
const FName Name = TEXT("TextureCoordinate");
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Index = TEXT("Index"); // Type: int
|
|
const FName UTiling = TEXT("UTiling"); // Type: float
|
|
const FName VTiling = TEXT("VTiling"); // Type: float
|
|
const FName Offset = TEXT("Offset"); // Type: vec2
|
|
const FName Scale = TEXT("Scale"); // Type: vec2
|
|
const FName Rotate = TEXT("Rotate"); // Type: float, Range: 0-1
|
|
const FName RotationCenter = TEXT("RotationCenter"); // Type: vec2
|
|
}
|
|
}
|
|
|
|
namespace TextureObject
|
|
{
|
|
const FName Name = TEXT("TextureObject");
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Texture = TEXT("TextureUid"); // Type: FString (unique id of a texture node)
|
|
}
|
|
}
|
|
|
|
namespace TextureSample
|
|
{
|
|
const FName Name = TEXT("TextureSample");
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Coordinates = TEXT("Coordinates"); // Type: vec2
|
|
const FName Texture = TEXT("TextureUid"); // Type: FString (unique id of a texture node)
|
|
}
|
|
|
|
namespace Outputs
|
|
{
|
|
const FName RGB = TEXT("RGB"); // Type: linear color
|
|
const FName R = TEXT("R"); // Type: float
|
|
const FName G = TEXT("G"); // Type: float
|
|
const FName B = TEXT("B"); // Type: float
|
|
const FName A = TEXT("A"); // Type: float
|
|
const FName RGBA = TEXT("RGBA"); // Type: linear color
|
|
}
|
|
}
|
|
|
|
namespace TextureSampleBlur
|
|
{
|
|
using namespace TextureSample;
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName KernelSize = TEXT("KernelSize"); // Type: float
|
|
const FName FilterSize = TEXT("FilterSize"); // Type: float
|
|
const FName FilterOffset= TEXT("FilterOffset"); // Type: float
|
|
const FName Filter = TEXT("Filter"); // Type: int
|
|
}
|
|
}
|
|
|
|
namespace Time
|
|
{
|
|
const FName Name = TEXT("Time");
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName IgnorePause= TEXT("bIgnorePause");
|
|
const FName OverridePeriod = TEXT("bOverride_Period");
|
|
const FName Period = TEXT("Period");
|
|
}
|
|
}
|
|
|
|
namespace TransformPosition
|
|
{
|
|
const FName Name = TEXT("TransformPosition");
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName TransformSourceType = TEXT("TransformSourceType");
|
|
const FName TransformType = TEXT("TransformType");
|
|
}
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Input = TEXT("Input");
|
|
}
|
|
}
|
|
|
|
namespace TransformVector
|
|
{
|
|
const FName Name = TEXT("Transform");
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName TransformSourceType = TEXT("TransformSourceType");
|
|
const FName TransformType = TEXT("TransformType");
|
|
}
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Input = TEXT("Input");
|
|
}
|
|
}
|
|
|
|
namespace Trigonometry
|
|
{
|
|
namespace Inputs
|
|
{
|
|
const FName Input = TEXT("Input");
|
|
}
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName Period = TEXT("Period");
|
|
}
|
|
}
|
|
|
|
namespace Cosine
|
|
{
|
|
const FName Name = TEXT("Cosine");
|
|
using namespace Trigonometry;
|
|
}
|
|
|
|
namespace Sine
|
|
{
|
|
const FName Name = TEXT("Sine");
|
|
using namespace Trigonometry;
|
|
}
|
|
|
|
namespace Tangent
|
|
{
|
|
const FName Name = TEXT("Tangent");
|
|
using namespace Trigonometry;
|
|
}
|
|
|
|
namespace VectorNoise
|
|
{
|
|
|
|
const FName Name = TEXT("VectorNoise");
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName Function = TEXT("NoiseFunction");
|
|
const FName Quality = TEXT("Quality");
|
|
const FName Tiling = TEXT("bTiling");
|
|
const FName TileSize = TEXT("TileSize");
|
|
}
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName Position = TEXT("Position");
|
|
}
|
|
}
|
|
|
|
namespace VertexColor
|
|
{
|
|
const FName Name = TEXT("VertexColor");
|
|
}
|
|
|
|
namespace ScalarParameter
|
|
{
|
|
const FName Name = TEXT("ScalarParameter");
|
|
namespace Attributes
|
|
{
|
|
const FName DefaultValue = TEXT("DefaultValue");
|
|
}
|
|
}
|
|
|
|
namespace VectorParameter
|
|
{
|
|
const FName Name = TEXT("VectorParameter");
|
|
namespace Attributes
|
|
{
|
|
const FName DefaultValue = TEXT("DefaultValue");
|
|
}
|
|
}
|
|
|
|
namespace StaticBoolParameter
|
|
{
|
|
const FName Name = TEXT("StaticBoolParameter");
|
|
namespace Attributes
|
|
{
|
|
const FName DefaultValue = TEXT("DefaultValue");
|
|
}
|
|
}
|
|
|
|
namespace SlabBSDF
|
|
{
|
|
const FName Name = TEXT("SubstrateSlabBSDF");
|
|
|
|
namespace Attributes
|
|
{
|
|
const FName SpecularProfile = TEXT("SpecularProfile");
|
|
}
|
|
|
|
namespace Inputs
|
|
{
|
|
const FName DiffuseAlbedo = TEXT("DiffuseAlbedo");
|
|
const FName F0 = TEXT("F0");
|
|
const FName F90 = TEXT("F90");
|
|
const FName Roughness = TEXT("Roughness");
|
|
const FName Anisotropy = TEXT("Anisotropy");
|
|
const FName Normal = TEXT("Normal");
|
|
const FName Tangent = TEXT("Tangent");
|
|
const FName SSSMFP = TEXT("SSSMFP");
|
|
const FName SSSMFPScale = TEXT("SSSMFPScale");
|
|
const FName SSSPhaseAnisotropy = TEXT("SSSPhaseAnisotropy");
|
|
const FName EmissiveColor = TEXT("EmissiveColor");
|
|
const FName SecondRoughness = TEXT("SecondRoughness");
|
|
const FName SecondRoughnessWeight = TEXT("SecondRoughnessWeight");
|
|
const FName FuzzRoughness = TEXT("FuzzRoughness");
|
|
const FName FuzzAmount = TEXT("FuzzAmount");
|
|
const FName FuzzColor = TEXT("FuzzColor");
|
|
const FName GlintValue = TEXT("GlintValue");
|
|
const FName GlintUV = TEXT("GlintUV");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
namespace Common
|
|
{
|
|
namespace Parameters
|
|
{
|
|
const FName EmissiveColor = TEXT("EmissiveColor"); // Type: linear color
|
|
const FName Normal = TEXT("Normal"); // Type: vector3f
|
|
const FName Tangent = TEXT("Tangent"); // Type: vector3f
|
|
const FName Opacity = TEXT("Opacity"); // Type: float
|
|
const FName OpacityMask = TEXT("OpacityMask"); // Type: float
|
|
const FName Occlusion = TEXT("Occlusion"); // Type: float
|
|
const FName IndexOfRefraction = TEXT("IOR"); // Type: float
|
|
const FName BxDF = TEXT("BxDF"); // input/output of BSDF or BRDF or BXDF or BTDF data
|
|
const FName Refraction = TEXT("Refraction"); // input/output of BSDF or BRDF or BXDF or BTDF data
|
|
const FName Anisotropy = TEXT("Anisotropy"); // Type: float
|
|
const FName Displacement = TEXT("Displacement"); // Type: float
|
|
}
|
|
}
|
|
|
|
namespace Lambert
|
|
{
|
|
namespace Parameters
|
|
{
|
|
using namespace Common::Parameters;
|
|
|
|
const FName DiffuseColor = TEXT("DiffuseColor"); // Type: linear color
|
|
}
|
|
}
|
|
|
|
namespace OpenPBRSurface
|
|
{
|
|
const FName Name = TEXT("open_pbr_surface");
|
|
|
|
namespace Parameters
|
|
{
|
|
const FName BaseWeight = TEXT("base_weight");
|
|
const FName BaseColor = TEXT("base_color");
|
|
const FName BaseRoughness = TEXT("base_roughness");
|
|
const FName BaseMetalness = TEXT("base_metalness");
|
|
const FName SpecularWeight = TEXT("specular_weight");
|
|
const FName SpecularColor = TEXT("specular_color");
|
|
const FName SpecularRoughness = TEXT("specular_roughness");
|
|
const FName SpecularIOR = TEXT("specular_ior");
|
|
const FName SpecularIORLevel = TEXT("specular_ior_level");
|
|
const FName SpecularAnisotropy = TEXT("specular_anisotropy");
|
|
const FName SpecularRotation = TEXT("specular_rotation");
|
|
const FName TransmissionWeight = TEXT("transmission_weight");
|
|
const FName TransmissionColor = TEXT("transmission_color");
|
|
const FName TransmissionDepth = TEXT("transmission_depth");
|
|
const FName TransmissionScatter = TEXT("transmission_scatter");
|
|
const FName TransmissionScatterAnisotropy = TEXT("transmission_scatter_anisotropy");
|
|
const FName TransmissionDispersionScale = TEXT("transmission_dispersion_scale");
|
|
const FName TransmissionDispersionAbbeNumber = TEXT("transmission_dispersion_abbe_number");
|
|
const FName SubsurfaceWeight = TEXT("subsurface_weight");
|
|
const FName SubsurfaceColor = TEXT("subsurface_color");
|
|
const FName SubsurfaceRadius = TEXT("subsurface_radius");
|
|
const FName SubsurfaceRadiusScale = TEXT("subsurface_radius_scale");
|
|
const FName SubsurfaceAnisotropy = TEXT("subsurface_anisotropy");
|
|
const FName FuzzWeight = TEXT("fuzz_weight");
|
|
const FName FuzzColor = TEXT("fuzz_color");
|
|
const FName FuzzRoughness = TEXT("fuzz_roughness");
|
|
const FName CoatWeight = TEXT("coat_weight");
|
|
const FName CoatColor = TEXT("coat_color");
|
|
const FName CoatRoughness = TEXT("coat_roughness");
|
|
const FName CoatAnisotropy = TEXT("coat_anisotropy");
|
|
const FName CoatRotation = TEXT("coat_rotation");
|
|
const FName CoatIOR = TEXT("coat_ior");
|
|
const FName CoatIORLevel = TEXT("coat_ior_level");
|
|
const FName ThinFilmThickness = TEXT("thin_film_thickness");
|
|
const FName ThinFilmIOR = TEXT("thin_film_ior");
|
|
const FName EmissionLuminance = TEXT("emission_luminance");
|
|
const FName EmissionColor = TEXT("emission_color");
|
|
const FName GeometryOpacity = TEXT("geometry_opacity");
|
|
const FName GeometryThinWalled = TEXT("geometry_thin_walled");
|
|
const FName GeometryNormal = TEXT("geometry_normal");
|
|
const FName GeometryCoatNormal = TEXT("geometry_coat_normal");
|
|
const FName GeometryTangent = TEXT("geometry_tangent");
|
|
}
|
|
|
|
namespace SubstrateMaterial
|
|
{
|
|
namespace Outputs
|
|
{
|
|
const FName FrontMaterial = TEXT("OpenPBR_FrontMaterial");
|
|
const FName OpacityMask = TEXT("OpacityMask");
|
|
}
|
|
}
|
|
}
|
|
|
|
namespace Phong
|
|
{
|
|
namespace Parameters
|
|
{
|
|
using namespace Lambert::Parameters;
|
|
|
|
const FName SpecularColor = TEXT("SpecularColor"); // Type: linear color
|
|
const FName Shininess = TEXT("Shininess"); // Type: float, this is the specular exponent, expected range: 2-100
|
|
const FName AmbientColor = TEXT("AmbientColor"); // Type: linear color
|
|
}
|
|
}
|
|
|
|
/** PBR Specular/Glossiness model */
|
|
namespace PBRSG
|
|
{
|
|
namespace Parameters
|
|
{
|
|
using namespace Common::Parameters;
|
|
|
|
const FName DiffuseColor = TEXT("DiffuseColor"); // Type: vector3
|
|
const FName SpecularColor = TEXT("SpecularColor"); // Type: vector3
|
|
const FName Glossiness = TEXT("Glossiness"); // Type: float
|
|
}
|
|
}
|
|
|
|
/** PBR Metallic/Roughness model */
|
|
namespace PBRMR
|
|
{
|
|
namespace Parameters
|
|
{
|
|
using namespace Common::Parameters;
|
|
|
|
const FName BaseColor = TEXT("BaseColor"); // Type: vector3
|
|
const FName Metallic = TEXT("Metallic"); // Type: float
|
|
const FName Specular = TEXT("Specular"); // Type: float
|
|
const FName Roughness = TEXT("Roughness"); // Type: float
|
|
}
|
|
}
|
|
|
|
namespace ClearCoat
|
|
{
|
|
namespace Parameters
|
|
{
|
|
const FName ClearCoat = TEXT("ClearCoat"); // Type: float
|
|
const FName ClearCoatRoughness = TEXT("ClearCoatRoughness"); // Type: float
|
|
const FName ClearCoatNormal = TEXT("ClearCoatNormal"); // Type: vector3
|
|
}
|
|
}
|
|
|
|
namespace ThinTranslucent
|
|
{
|
|
namespace Parameters
|
|
{
|
|
const FName TransmissionColor = TEXT("TransmissionColor"); // Type: vector3
|
|
const FName SurfaceCoverage = TEXT("SurfaceCoverage"); // Type: float
|
|
}
|
|
}
|
|
|
|
namespace Sheen
|
|
{
|
|
namespace Parameters
|
|
{
|
|
const FName SheenColor = TEXT("SheenColor"); // Type: vector3
|
|
const FName SheenRoughness = TEXT("SheenRoughness"); // Type: float
|
|
}
|
|
}
|
|
|
|
namespace Subsurface
|
|
{
|
|
namespace Parameters
|
|
{
|
|
const FName SubsurfaceColor = TEXT("SubsurfaceColor"); // Type: linear color
|
|
}
|
|
}
|
|
|
|
namespace StandardSurface
|
|
{
|
|
const FName Name = TEXT("standard_surface");
|
|
|
|
namespace Parameters
|
|
{
|
|
const FName Base = TEXT("base");
|
|
const FName BaseColor = TEXT("base_color");
|
|
const FName DiffuseRoughness = TEXT("diffuse_roughness");
|
|
const FName Metalness = TEXT("metalness");
|
|
const FName Specular = TEXT("specular");
|
|
const FName SpecularColor = TEXT("specular_color");
|
|
const FName SpecularRoughness = TEXT("specular_roughness");
|
|
const FName SpecularIOR = TEXT("specular_IOR");
|
|
const FName SpecularAnisotropy = TEXT("specular_anisotropy");
|
|
const FName SpecularRotation = TEXT("specular_rotation");
|
|
const FName Transmission = TEXT("transmission");
|
|
const FName TransmissionColor = TEXT("transmission_color");
|
|
const FName TransmissionDepth = TEXT("transmission_depth");
|
|
const FName TransmissionScatter = TEXT("transmission_scatter");
|
|
const FName TransmissionScatterAnisotropy = TEXT("transmission_scatter_anisotropy");
|
|
const FName TransmissionDispersion = TEXT("transmission_dispersion");
|
|
const FName TransmissionExtraRoughness = TEXT("transmission_extra_roughness");
|
|
const FName Subsurface = TEXT("subsurface");
|
|
const FName SubsurfaceColor = TEXT("subsurface_color");
|
|
const FName SubsurfaceRadius = TEXT("subsurface_radius");
|
|
const FName SubsurfaceScale = TEXT("subsurface_scale");
|
|
const FName SubsurfaceAnisotropy = TEXT("subsurface_anisotropy");
|
|
const FName Sheen = TEXT("sheen");
|
|
const FName SheenColor = TEXT("sheen_color");
|
|
const FName SheenRoughness = TEXT("sheen_roughness");
|
|
const FName Coat = TEXT("coat");
|
|
const FName CoatColor = TEXT("coat_color");
|
|
const FName CoatRoughness = TEXT("coat_roughness");
|
|
const FName CoatAnisotropy = TEXT("coat_anisotropy");
|
|
const FName CoatRotation = TEXT("coat_rotation");
|
|
const FName CoatIOR = TEXT("coat_IOR");
|
|
const FName CoatNormal = TEXT("coat_normal");
|
|
const FName CoatAffectColor = TEXT("coat_affect_color");
|
|
const FName CoatAffectRoughness = TEXT("coat_affect_roughness");
|
|
const FName ThinFilmThickness = TEXT("thin_film_thickness");
|
|
const FName ThinFilmIOR = TEXT("thin_film_IOR");
|
|
const FName Emission = TEXT("emission");
|
|
const FName EmissionColor = TEXT("emission_color");
|
|
const FName Opacity = TEXT("opacity");
|
|
const FName ThinWalled = TEXT("thin_walled");
|
|
const FName Normal = TEXT("normal");
|
|
const FName Tangent = TEXT("tangent");
|
|
}
|
|
|
|
// These outputs are only used for Substrate
|
|
namespace SubstrateMaterial
|
|
{
|
|
namespace Outputs
|
|
{
|
|
const FName Opaque = TEXT("Substrate StandardSurface Opaque");
|
|
const FName Translucent = TEXT("Substrate StandardSurface Translucent");
|
|
const FName Opacity = TEXT("Geometry Opacity");
|
|
}
|
|
}
|
|
}
|
|
|
|
namespace Surface
|
|
{
|
|
const FName Name = TEXT("surface");
|
|
|
|
namespace Parameters
|
|
{
|
|
const FName BSDF = TEXT("bsdf");
|
|
const FName EDF = TEXT("edf");
|
|
const FName Opacity = TEXT("opacity");
|
|
}
|
|
|
|
namespace Outputs
|
|
{
|
|
const FName Surface = TEXT("Surface");
|
|
}
|
|
|
|
namespace Substrate
|
|
{
|
|
namespace Outputs
|
|
{
|
|
using namespace Surface::Outputs;
|
|
const FName Opacity = TEXT("Opacity");
|
|
}
|
|
}
|
|
}
|
|
|
|
namespace SurfaceUnlit
|
|
{
|
|
const FName Name = TEXT("surface_unlit");
|
|
|
|
namespace Parameters
|
|
{
|
|
const FName Emission = TEXT("emission");
|
|
const FName EmissionColor = TEXT("emission_color");
|
|
const FName Transmission = TEXT("transmission");
|
|
const FName TransmissionColor = TEXT("transmission_color");
|
|
const FName Opacity = TEXT("opacity");
|
|
}
|
|
|
|
namespace Outputs
|
|
{
|
|
const FName OpacityMask = TEXT("OpacityMask");
|
|
}
|
|
|
|
namespace Substrate
|
|
{
|
|
namespace Outputs
|
|
{
|
|
using namespace SurfaceUnlit::Outputs;
|
|
const FName SurfaceUnlit = TEXT("Surface Unlit");
|
|
}
|
|
}
|
|
}
|
|
|
|
namespace UsdPreviewSurface
|
|
{
|
|
const FName Name = TEXT("UsdPreviewSurface");
|
|
|
|
namespace Parameters
|
|
{
|
|
const FName DiffuseColor = TEXT("diffuseColor");
|
|
const FName EmissiveColor = TEXT("emissiveColor");
|
|
const FName SpecularColor = TEXT("specularColor");
|
|
const FName Metallic = TEXT("metallic");
|
|
const FName Roughness = TEXT("roughness");
|
|
const FName Clearcoat = TEXT("clearcoat");
|
|
const FName ClearcoatRoughness = TEXT("clearcoatRoughness");
|
|
const FName Opacity = TEXT("opacity");
|
|
const FName OpacityThreshold = TEXT("opacityThreshold");
|
|
const FName IOR = TEXT("ior");
|
|
const FName Normal = TEXT("normal");
|
|
const FName Displacement = TEXT("displacement");
|
|
const FName Occlusion = TEXT("occlusion");
|
|
}
|
|
|
|
// These outputs are only used for Substrate
|
|
namespace SubstrateMaterial
|
|
{
|
|
namespace Outputs
|
|
{
|
|
const FName FrontMaterial = TEXT("Substrate UsdPreviewSurface");
|
|
const FName Displacement = TEXT("Displacement");
|
|
const FName Occlusion = TEXT("Occlusion");
|
|
}
|
|
}
|
|
}
|
|
|
|
namespace Unlit
|
|
{
|
|
namespace Parameters
|
|
{
|
|
const FName UnlitColor = TEXT("UnlitColor"); // Type: linear color
|
|
}
|
|
}
|
|
|
|
namespace SubstrateMaterial
|
|
{
|
|
const FName SpecularProfile = TEXT("SpecularProfile"); // Used by MaterialInstances otherwise look at SubstrateSlabBSDF
|
|
|
|
namespace Parameters
|
|
{
|
|
const FName FrontMaterial = TEXT("Front Material");
|
|
const FName OpacityMask = TEXT("Opacity Mask");
|
|
const FName Displacement = TEXT("Displacement");
|
|
const FName Occlusion = TEXT("Occlusion");
|
|
}
|
|
}
|
|
|
|
namespace Factory
|
|
{
|
|
namespace Expression
|
|
{
|
|
const FName Path = TEXT("MaterialExpressionPath"); // Attribute used by the factory to store the path of a UMaterialExpression
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|