1
This commit is contained in:
@@ -7,35 +7,36 @@ using UnityEngine.Experimental.Rendering;
|
||||
|
||||
namespace TriLibCore.HDRP.Mappers
|
||||
{
|
||||
/// <summary>Represents a Material Mapper that converts TriLib Materials into Unity HDRP Materials.</summary>
|
||||
/// <summary>
|
||||
/// Converts TriLib virtual materials into Unity High Definition Render Pipeline (HDRP) materials
|
||||
/// by processing various texture maps and material properties through an asynchronous coroutine pipeline.
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
[CreateAssetMenu(menuName = "TriLib/Mappers/Material/HDRP Material Mapper", fileName = "HDRPMaterialMapper")]
|
||||
public class HDRPMaterialMapper : MaterialMapper
|
||||
{
|
||||
private bool _isCompatible;
|
||||
public bool ForceShaderVariantCollection;
|
||||
|
||||
public override bool UseShaderVariantCollection => ForceShaderVariantCollection;
|
||||
|
||||
#region Standard
|
||||
public override Material MaterialPreset => Resources.Load<Material>("Materials/TriLib/HDRP/TriLibHDRP");
|
||||
public override Material MaterialPreset => Resources.Load<Material>("Materials/HDRP/Standard/TriLibHDRP");
|
||||
|
||||
public override Material CutoutMaterialPreset => Resources.Load<Material>("Materials/TriLib/HDRP/TriLibHDRPAlphaCutout");
|
||||
public override Material CutoutMaterialPreset => Resources.Load<Material>("Materials/HDRP/Standard/TriLibHDRPAlphaCutout");
|
||||
|
||||
public override Material TransparentMaterialPreset => Resources.Load<Material>("Materials/TriLib/HDRP/TriLibHDRPAlpha");
|
||||
public override Material TransparentMaterialPreset => Resources.Load<Material>("Materials/HDRP/Standard/TriLibHDRPAlpha");
|
||||
|
||||
public override Material TransparentComposeMaterialPreset => Resources.Load<Material>("Materials/TriLib/HDRP/TriLibHDRPAlpha");
|
||||
public override Material TransparentComposeMaterialPreset => Resources.Load<Material>("Materials/HDRP/Standard/TriLibHDRPAlpha");
|
||||
#endregion
|
||||
|
||||
public override Material LoadingMaterial => Resources.Load<Material>("Materials/TriLib/HDRP/TriLibHDRPLoading");
|
||||
public override Material LoadingMaterial => Resources.Load<Material>("Materials/HDRP/TriLibHDRPLoading");
|
||||
|
||||
public override bool ExtractMetallicAndSmoothness => false;
|
||||
public override bool UsesCoroutines => true;
|
||||
|
||||
public override bool IsCompatible(MaterialMapperContext materialMapperContext)
|
||||
{
|
||||
return _isCompatible;
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_isCompatible = TriLibSettings.GetBool("HDRPMaterialMapper");
|
||||
return TriLibSettings.GetBool("HDRPMaterialMapper", false);
|
||||
}
|
||||
|
||||
public override IEnumerable MapCoroutine(MaterialMapperContext materialMapperContext)
|
||||
@@ -90,7 +91,6 @@ namespace TriLibCore.HDRP.Mappers
|
||||
{
|
||||
yield return item;
|
||||
}
|
||||
|
||||
BuildMaterial(materialMapperContext);
|
||||
foreach (var item in BuildHDRPMask(materialMapperContext))
|
||||
{
|
||||
@@ -120,7 +120,7 @@ namespace TriLibCore.HDRP.Mappers
|
||||
|
||||
private IEnumerable CheckGlossinessValue(MaterialMapperContext materialMapperContext)
|
||||
{
|
||||
var value = materialMapperContext.Material.GetGenericFloatValueMultiplied(GenericMaterialProperty.Glossiness, materialMapperContext);
|
||||
var value = materialMapperContext.Material.GetGenericFloatValueMultiplied(GenericMaterialProperty.GlossinessOrRoughness, materialMapperContext);
|
||||
materialMapperContext.VirtualMaterial.SetProperty("_Smoothness", value);
|
||||
yield break;
|
||||
}
|
||||
|
||||
@@ -9,3 +9,10 @@ MonoImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 157548
|
||||
packageName: TriLib 2 - Model Loading Package
|
||||
packageVersion: 2.5.5
|
||||
assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibHDRP/HDRPMaterialMapper.cs
|
||||
uploadId: 752923
|
||||
|
||||
@@ -12,7 +12,6 @@ namespace TriLibCore.HDRP
|
||||
public Texture MetallicTexture;
|
||||
public Texture OcclusionTexture;
|
||||
public Texture DetailMaskTexture;
|
||||
[Obsolete("Not used anymore.")]
|
||||
public Texture SmoothnessTexture;
|
||||
}
|
||||
}
|
||||
@@ -9,3 +9,10 @@ MonoImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 157548
|
||||
packageName: TriLib 2 - Model Loading Package
|
||||
packageVersion: 2.5.5
|
||||
assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibHDRP/HDRPVirtualMaterial.cs
|
||||
uploadId: 752923
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 804833547f2ca6a4b9a9948fa9227104
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fd73fa0f26c88164584e4b22dd5b6083
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,17 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 09e91867e63346c408b6a9e5c98cd665, type: 3}
|
||||
m_Name: HDRPMaterialMapper
|
||||
m_EditorClassIdentifier:
|
||||
CheckingOrder: 0
|
||||
DisableAlpha: 0
|
||||
ForceShaderVariantCollection: 0
|
||||
@@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d05b00696a114b342806419be3cb4e55
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 157548
|
||||
packageName: TriLib 2 - Model Loading Package
|
||||
packageVersion: 2.5.5
|
||||
assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibHDRP/Resources/Mappers/HDRPMaterialMapper.asset
|
||||
uploadId: 752923
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e47031ff7fd410449952c98efc677ab0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,58 @@
|
||||
Shader "Hidden/TriLib/BuildHDRPMask"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
_MetallicTex("_MetallicTex", 2D) = "black" {}
|
||||
_OcclusionTex("_OcclusionTex", 2D) = "white" {}
|
||||
_DetailMaskTex("_DetailMaskTex", 2D) = "black" {}
|
||||
_SmoothnessTex("_SmoothnessTex", 2D) = "gray" {}
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
// No culling or depth
|
||||
Cull Off ZWrite Off ZTest Always
|
||||
|
||||
Pass
|
||||
{
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float2 uv : TEXCOORD0;
|
||||
float4 vertex : SV_POSITION;
|
||||
};
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = v.uv;
|
||||
return o;
|
||||
}
|
||||
|
||||
sampler2D _MetallicTex;
|
||||
sampler2D _OcclusionTex;
|
||||
sampler2D _DetailMaskTex;
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
fixed metallic = tex2D(_MetallicTex, i.uv).x;
|
||||
fixed occlusion = tex2D(_OcclusionTex, i.uv).x;
|
||||
fixed detail = tex2D(_DetailMaskTex, i.uv).x;
|
||||
fixed smoothness = tex2D(_MetallicTex, i.uv).w;
|
||||
return fixed4(metallic, occlusion, detail, smoothness);
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a58f867ca8ebbb748955274e7cdbf8b3
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 157548
|
||||
packageName: TriLib 2 - Model Loading Package
|
||||
packageVersion: 2.5.5
|
||||
assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibHDRP/Resources/Shaders/BuildHDRPMask.shader
|
||||
uploadId: 752923
|
||||
Reference in New Issue
Block a user