Files
2025-11-30 08:35:03 +02:00

636 lines
20 KiB
C#

using UnityEngine;
namespace UnityGLTF
{
public class PBRGraphMap : BaseGraphMap, IMetalRoughUniformMap, IVolumeMap, ITransmissionMap, IIORMap, IIridescenceMap, ISpecularMap, IClearcoatMap, IDispersionMap, ISheenMap
{
internal const string PBRGraphGuid = "478ce3626be7a5f4ea58d6b13f05a2e4";
public PBRGraphMap() : this("UnityGLTF/PBRGraph") {}
protected PBRGraphMap(string shaderName) : base(shaderName, PBRGraphGuid) { }
#if !UNITY_2021_1_OR_NEWER
private const string PBRGraphTransparentGuid = "0a931320a74ca574b91d2d7d4557dcf1";
private const string PBRGraphTransparentDoubleGuid = "54352a53405971b41a6587615f947085";
private const string PBRGraphDoubleGuid = "8bc739b14fe811644abb82057b363ba8";
public PBRGraphMap(bool transparent, bool doubleSided) : base(
"UnityGLTF/PBRGraph" + (transparent ? "-Transparent" : "") + (doubleSided ? "-Double" : ""),
(transparent && doubleSided ? PBRGraphTransparentDoubleGuid : transparent ? PBRGraphTransparentGuid : doubleSided ? PBRGraphDoubleGuid : PBRGraphGuid)) { }
#endif
public PBRGraphMap(Material mat) : base(mat) { }
public override IUniformMap Clone()
{
var clone = new PBRGraphMap(new Material(_material));
clone.Material.shaderKeywords = _material.shaderKeywords;
return clone;
}
public Texture NormalTexture
{
get => _material.GetTexture("normalTexture");
set => _material.SetTexture("normalTexture", value);
}
public int NormalTexCoord
{
get => (int) _material.GetFloat("normalTextureTexCoord");
set => _material.SetFloat("normalTextureTexCoord", Mathf.RoundToInt(value));
}
public double NormalTexScale
{
get => _material.GetFloat("normalScale");
set => _material.SetFloat("normalScale", (float) value);
}
public Vector2 NormalXOffset
{
get => _material.GetTextureOffset("normalTexture");
set => _material.SetTextureOffset("normalTexture", value);
}
public double NormalXRotation
{
get => _material.GetFloat("normalTextureRotation");
set => _material.SetFloat("normalTextureRotation", (float) value);
}
public Vector2 NormalXScale
{
get => _material.GetTextureScale("normalTexture");
set => _material.SetTextureScale("normalTexture", value);
}
public int NormalXTexCoord
{
get => (int) _material.GetFloat("normalTextureTexCoord");
set => _material.SetFloat("normalTextureTexCoord", Mathf.RoundToInt(value));
}
public Texture OcclusionTexture
{
get => _material.GetTexture("occlusionTexture");
set => _material.SetTexture("occlusionTexture", value);
}
public int OcclusionTexCoord
{
get => (int) _material.GetFloat("occlusionTextureTexCoord");
set => _material.SetFloat("occlusionTextureTexCoord", Mathf.RoundToInt(value));
}
public double OcclusionTexStrength
{
get => _material.GetFloat("occlusionStrength");
set => _material.SetFloat("occlusionStrength", (float) value);
}
public Vector2 OcclusionXOffset
{
get => _material.GetTextureOffset("occlusionTexture");
set => _material.SetTextureOffset("occlusionTexture", value);
}
public double OcclusionXRotation
{
get => _material.GetFloat("occlusionTextureRotation");
set => _material.SetFloat("occlusionTextureRotation", (float) value);
}
public Vector2 OcclusionXScale
{
get => _material.GetTextureScale("occlusionTexture");
set => _material.SetTextureScale("occlusionTexture", value);
}
public int OcclusionXTexCoord
{
get => (int) _material.GetFloat("occlusionTextureTexCoord");
set => _material.SetFloat("occlusionTextureTexCoord", Mathf.RoundToInt(value));
}
public Texture EmissiveTexture
{
get => _material.GetTexture("emissiveTexture");
set => _material.SetTexture("emissiveTexture", value);
}
public int EmissiveTexCoord
{
get => (int)_material.GetFloat("emissiveTextureTexCoord");
set => _material.SetFloat("emissiveTextureTexCoord", (float) value);
}
public Color EmissiveFactor
{
get => _material.GetColor("emissiveFactor");
set => _material.SetColor("emissiveFactor", value);
}
public Vector2 EmissiveXOffset
{
get => _material.GetTextureOffset("emissiveTexture");
set => _material.SetTextureOffset("emissiveTexture", value);
}
public double EmissiveXRotation
{
get => _material.GetFloat("emissiveTextureRotation");
set => _material.SetFloat("emissiveTextureRotation", (float) value);
}
public Vector2 EmissiveXScale
{
get => _material.GetTextureScale("emissiveTexture");
set => _material.SetTextureScale("emissiveTexture", value);
}
public int EmissiveXTexCoord
{
get => (int)_material.GetFloat("emissiveTextureTexCoord");
set => _material.SetFloat("emissiveTextureTexCoord", (float) value);
}
public Texture MetallicRoughnessTexture
{
get => _material.GetTexture("metallicRoughnessTexture");
set => _material.SetTexture("metallicRoughnessTexture", value);
}
public int MetallicRoughnessTexCoord
{
get => (int)_material.GetFloat("metallicRoughnessTextureTexCoord");
set => _material.SetFloat("metallicRoughnessTextureTexCoord", (float) value);
}
public Vector2 MetallicRoughnessXOffset
{
get => _material.GetTextureOffset("metallicRoughnessTexture");
set => _material.SetTextureOffset("metallicRoughnessTexture", value);
}
public double MetallicRoughnessXRotation
{
get => _material.GetFloat("metallicRoughnessTextureRotation");
set => _material.SetFloat("metallicRoughnessTextureRotation", (float) value);
}
public Vector2 MetallicRoughnessXScale
{
get => _material.GetTextureScale("metallicRoughnessTexture");
set => _material.SetTextureScale("metallicRoughnessTexture", value);
}
public int MetallicRoughnessXTexCoord
{
get => (int)_material.GetFloat("metallicRoughnessTextureTexCoord");
set => _material.SetFloat("metallicRoughnessTextureTexCoord", (float) value);
}
public double MetallicFactor
{
get => _material.GetFloat("metallicFactor");
set => _material.SetFloat("metallicFactor", (float) value);
}
public double RoughnessFactor
{
get => _material.GetFloat("roughnessFactor");
set => _material.SetFloat("roughnessFactor", (float) value);
}
public double ThicknessFactor
{
get => _material.GetFloat("thicknessFactor");
set => _material.SetFloat("thicknessFactor", (float) value);
}
public Texture ThicknessTexture
{
get => _material.GetTexture("thicknessTexture");
set => _material.SetTexture("thicknessTexture", value);
}
public double ThicknessTextureRotation
{
get => _material.GetFloat("thicknessTextureRotation");
set => _material.SetFloat("thicknessTextureRotation", (float) value);
}
public Vector2 ThicknessTextureOffset
{
get => _material.GetTextureOffset("thicknessTexture");
set => _material.SetTextureOffset("thicknessTexture", value);
}
public Vector2 ThicknessTextureScale
{
get => _material.GetTextureScale("thicknessTexture");
set => _material.SetTextureScale("thicknessTexture", value);
}
public int ThicknessTextureTexCoord
{
get => (int)_material.GetFloat("thicknessTextureTexCoord");
set => _material.SetFloat("thicknessTextureTexCoord", (float) value);
}
public double AttenuationDistance
{
get => _material.GetFloat("attenuationDistance");
set => _material.SetFloat("attenuationDistance", (float) value);
}
public Color AttenuationColor
{
get => _material.GetColor("attenuationColor");
set => _material.SetColor("attenuationColor", value);
}
public double TransmissionFactor
{
get => _material.GetFloat("transmissionFactor");
set => _material.SetFloat("transmissionFactor", (float) value);
}
public Texture TransmissionTexture
{
get => _material.GetTexture("transmissionTexture");
set => _material.SetTexture("transmissionTexture", value);
}
public double TransmissionTextureRotation
{
get => _material.GetFloat("transmissionTextureRotation");
set => _material.SetFloat("transmissionTextureRotation", (float) value);
}
public Vector2 TransmissionTextureOffset
{
get => _material.GetTextureOffset("transmissionTexture");
set => _material.SetTextureOffset("transmissionTexture", value);
}
public Vector2 TransmissionTextureScale
{
get => _material.GetTextureScale("transmissionTexture");
set => _material.SetTextureScale("transmissionTexture", value);
}
public int TransmissionTextureTexCoord
{
get => (int)_material.GetFloat("transmissionTextureTexCoord");
set => _material.SetFloat("transmissionTextureTexCoord", (float) value);
}
public double IOR
{
get => _material.GetFloat("ior");
set => _material.SetFloat("ior", (float) value);
}
public double IridescenceFactor
{
get => _material.GetFloat("iridescenceFactor");
set => _material.SetFloat("iridescenceFactor", (float) value);
}
public double IridescenceIor
{
get => _material.GetFloat("iridescenceIor");
set => _material.SetFloat("iridescenceIor", (float) value);
}
public double IridescenceThicknessMinimum
{
get => _material.GetFloat("iridescenceThicknessMinimum");
set => _material.SetFloat("iridescenceThicknessMinimum", (float) value);
}
public double IridescenceThicknessMaximum
{
get => _material.GetFloat("iridescenceThicknessMaximum");
set => _material.SetFloat("iridescenceThicknessMaximum", (float) value);
}
public Texture IridescenceTexture
{
get => _material.GetTexture("iridescenceTexture");
set => _material.SetTexture("iridescenceTexture", value);
}
public double IridescenceTextureRotation
{
get => _material.GetFloat("iridescenceTextureRotation");
set => _material.SetFloat("iridescenceTextureRotation", (float) value);
}
public Vector2 IridescenceTextureOffset
{
get => _material.GetTextureOffset("iridescenceTexture");
set => _material.SetTextureOffset("iridescenceTexture", value);
}
public Vector2 IridescenceTextureScale
{
get => _material.GetTextureScale("iridescenceTexture");
set => _material.SetTextureScale("iridescenceTexture", value);
}
public int IridescenceTextureTexCoord
{
get => (int)_material.GetFloat("iridescenceTextureTexCoord");
set => _material.SetFloat("iridescenceTextureTexCoord", (float) value);
}
public Texture IridescenceThicknessTexture
{
get => _material.GetTexture("iridescenceThicknessTexture");
set => _material.SetTexture("iridescenceThicknessTexture", value);
}
public double IridescenceThicknessTextureRotation
{
get => _material.GetFloat("iridescenceThicknessTextureRotation");
set => _material.SetFloat("iridescenceThicknessTextureRotation", (float) value);
}
public Vector2 IridescenceThicknessTextureOffset
{
get => _material.GetTextureOffset("iridescenceThicknessTexture");
set => _material.SetTextureOffset("iridescenceThicknessTexture", value);
}
public Vector2 IridescenceThicknessTextureScale
{
get => _material.GetTextureScale("iridescenceThicknessTexture");
set => _material.SetTextureScale("iridescenceThicknessTexture", value);
}
public int IridescenceThicknessTextureTexCoord
{
get => (int)_material.GetFloat("iridescenceThicknessTextureTexCoord");
set => _material.SetFloat("iridescenceThicknessTextureTexCoord", (float) value);
}
public double SpecularFactor
{
get => _material.GetFloat("specularFactor");
set => _material.SetFloat("specularFactor", (float) value);
}
public Texture SpecularTexture
{
get => _material.GetTexture("specularTexture");
set=> _material.SetTexture("specularTexture", value);
}
public double SpecularTextureRotation
{
get => _material.GetFloat("specularTextureRotation");
set => _material.SetFloat("specularTextureRotation", (float) value);
}
public Vector2 SpecularTextureOffset
{
get => _material.GetTextureOffset("specularTexture");
set => _material.SetTextureOffset("specularTexture", value);
}
public Vector2 SpecularTextureScale
{
get => _material.GetTextureScale("specularTexture");
set => _material.SetTextureScale("specularTexture", value);
}
public int SpecularTextureTexCoord
{
get => (int)_material.GetFloat("specularTextureTexCoord");
set => _material.SetFloat("specularTextureTexCoord", (float) value);
}
public Color SpecularColorFactor
{
get => _material.GetColor("specularColorFactor");
set => _material.SetColor("specularColorFactor", value);
}
public Texture SpecularColorTexture
{
get => _material.GetTexture("specularColorTexture");
set => _material.SetTexture("specularColorTexture", value);
}
public double SpecularColorTextureRotation
{
get => _material.GetFloat("specularColorTextureRotation");
set => _material.SetFloat("specularColorTextureRotation", (float) value);
}
public Vector2 SpecularColorTextureOffset
{
get => _material.GetTextureOffset("specularColorTexture");
set => _material.SetTextureOffset("specularColorTexture", value);
}
public Vector2 SpecularColorTextureScale
{
get => _material.GetTextureScale("specularColorTexture");
set => _material.SetTextureScale("specularColorTexture", value);
}
public int SpecularColorTextureTexCoord
{
get => (int)_material.GetFloat("specularColorTextureTexCoord");
set => _material.SetFloat("specularColorTextureTexCoord", (float) value);
}
public double ClearcoatFactor
{
get => _material.GetFloat("clearcoatFactor");
set => _material.SetFloat("clearcoatFactor", (float) value);
}
public Texture ClearcoatTexture
{
get => _material.GetTexture("clearcoatTexture");
set => _material.SetTexture("clearcoatTexture", value);
}
public double ClearcoatTextureRotation
{
get => _material.GetFloat("clearcoatTextureRotation");
set => _material.SetFloat("clearcoatTextureRotation", (float) value);
}
public Vector2 ClearcoatTextureOffset
{
get => _material.GetTextureOffset("clearcoatTexture");
set => _material.SetTextureOffset("clearcoatTexture", value);
}
public Vector2 ClearcoatTextureScale
{
get => _material.GetTextureScale("clearcoatTexture");
set => _material.SetTextureScale("clearcoatTexture", value);
}
public int ClearcoatTextureTexCoord
{
get => (int)_material.GetFloat("clearcoatTextureTexCoord");
set => _material.SetFloat("clearcoatTextureTexCoord", (float) value);
}
public double ClearcoatRoughnessFactor
{
get => _material.GetFloat("clearcoatRoughnessFactor");
set => _material.SetFloat("clearcoatRoughnessFactor", (float) value);
}
public Texture ClearcoatRoughnessTexture
{
get => _material.GetTexture("clearcoatRoughnessTexture");
set => _material.SetTexture("clearcoatRoughnessTexture", value);
}
public double ClearcoatRoughnessTextureRotation
{
get => _material.GetFloat("clearcoatRoughnessTextureRotation");
set => _material.SetFloat("clearcoatRoughnessTextureRotation", (float) value);
}
public Vector2 ClearcoatRoughnessTextureOffset
{
get => _material.GetTextureOffset("clearcoatRoughnessTexture");
set => _material.SetTextureOffset("clearcoatRoughnessTexture", value);
}
public Vector2 ClearcoatRoughnessTextureScale
{
get => _material.GetTextureScale("clearcoatRoughnessTexture");
set => _material.SetTextureScale("clearcoatRoughnessTexture", value);
}
public int ClearcoatRoughnessTextureTexCoord
{
get => (int)_material.GetFloat("clearcoatRoughnessTextureTexCoord");
set => _material.SetFloat("clearcoatRoughnessTextureTexCoord", (float) value);
}
public float Dispersion
{
get => _material.GetFloat("dispersion");
set => _material.SetFloat("dispersion", value);
}
public float SheenRoughnessFactor
{
get => _material.GetFloat("sheenRoughnessFactor");
set => _material.SetFloat("sheenRoughnessFactor", value);
}
public Color SheenColorFactor
{
get => _material.GetColor("sheenColorFactor");
set => _material.SetColor("sheenColorFactor", value);
}
public Texture SheenColorTexture
{
get => _material.GetTexture("sheenColorTexture");
set => _material.SetTexture("sheenColorTexture", value);
}
public double SheenColorTextureRotation
{
get => _material.GetFloat("sheenColorTextureRotation");
set => _material.SetFloat("sheenColorTextureRotation", (float) value);
}
public Vector2 SheenColorTextureOffset
{
get => _material.GetTextureOffset("sheenColorTexture");
set => _material.SetTextureOffset("sheenColorTexture", value);
}
public Vector2 SheenColorTextureScale
{
get => _material.GetTextureScale("sheenColorTexture");
set => _material.SetTextureScale("sheenColorTexture", value);
}
public int SheenColorTextureTexCoord
{
get => (int)_material.GetFloat("sheenColorTextureTexCoord");
set => _material.SetFloat("sheenColorTextureTexCoord", (float) value);
}
public Texture SheenRoughnessTexture
{
get => _material.GetTexture("sheenRoughnessTexture");
set => _material.SetTexture("sheenRoughnessTexture", value);
}
public double SheenRoughnessTextureRotation
{
get => _material.GetFloat("sheenRoughnessTextureRotation");
set => _material.SetFloat("sheenRoughnessTextureRotation", (float) value);
}
public Vector2 SheenRoughnessTextureOffset
{
get => _material.GetTextureOffset("sheenRoughnessTexture");
set => _material.SetTextureOffset("sheenRoughnessTexture", value);
}
public Vector2 SheenRoughnessTextureScale
{
get => _material.GetTextureScale("sheenRoughnessTexture");
set => _material.SetTextureScale("sheenRoughnessTexture", value);
}
public int SheenRoughnessTextureTexCoord
{
get => (int)_material.GetFloat("sheenRoughnessTextureTexCoord");
set => _material.SetFloat("sheenRoughnessTextureTexCoord", (float) value);
}
/* Clearcoat Normal Texture currently not supported
public Texture ClearcoatNormalTexture
{
get => _material.GetTexture("clearcoatNormalTexture");
set => _material.SetTexture("clearcoatNormalTexture", value);
}
public double ClearcoatNormalTextureRotation
{
get => _material.GetFloat("clearcoatNormalTextureRotation");
set => _material.SetFloat("clearcoatNormalTextureRotation", (float) value);
}
public Vector2 ClearcoatNormalTextureOffset
{
get => _material.GetTextureOffset("clearcoatNormalTexture");
set => _material.SetTextureOffset("clearcoatNormalTexture", value);
}
public Vector2 ClearcoatNormalTextureScale
{
get => _material.GetTextureScale("clearcoatNormalTexture");
set => _material.SetTextureScale("clearcoatNormalTexture", value);
}
public int ClearcoatNormalTextureTexCoord
{
get => (int)_material.GetFloat("clearcoatNormalTextureTexCoord");
set => _material.SetFloat("clearcoatNormalTextureTexCoord", (float) value);
}
*/
}
}