Skip to content

Commit

Permalink
chore: move alpha_texture from PBRMaterial to UnlitMaterial (#2482)
Browse files Browse the repository at this point in the history
Implemented support for alpha texture on SDK unlit material component
  • Loading branch information
AlejandroAlvarezMelucciDCL authored Oct 21, 2024
1 parent 50fbf7d commit dde6404
Show file tree
Hide file tree
Showing 10 changed files with 185 additions and 62 deletions.
117 changes: 84 additions & 33 deletions Explorer/Assets/Protocol/DecentralandProtocol/Material.gen.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,46 +27,48 @@ static MaterialReflection() {
"CipkZWNlbnRyYWxhbmQvc2RrL2NvbXBvbmVudHMvbWF0ZXJpYWwucHJvdG8S",
"G2RlY2VudHJhbGFuZC5zZGsuY29tcG9uZW50cxogZGVjZW50cmFsYW5kL2Nv",
"bW1vbi9jb2xvcnMucHJvdG8aIWRlY2VudHJhbGFuZC9jb21tb24vdGV4dHVy",
"ZS5wcm90byKGCwoKUEJNYXRlcmlhbBJGCgV1bmxpdBgBIAEoCzI1LmRlY2Vu",
"ZS5wcm90byLXCwoKUEJNYXRlcmlhbBJGCgV1bmxpdBgBIAEoCzI1LmRlY2Vu",
"dHJhbGFuZC5zZGsuY29tcG9uZW50cy5QQk1hdGVyaWFsLlVubGl0TWF0ZXJp",
"YWxIABJCCgNwYnIYAiABKAsyMy5kZWNlbnRyYWxhbmQuc2RrLmNvbXBvbmVu",
"dHMuUEJNYXRlcmlhbC5QYnJNYXRlcmlhbEgAGvMBCg1VbmxpdE1hdGVyaWFs",
"dHMuUEJNYXRlcmlhbC5QYnJNYXRlcmlhbEgAGsQCCg1VbmxpdE1hdGVyaWFs",
"EjcKB3RleHR1cmUYASABKAsyIS5kZWNlbnRyYWxhbmQuY29tbW9uLlRleHR1",
"cmVVbmlvbkgAiAEBEhcKCmFscGhhX3Rlc3QYAiABKAJIAYgBARIZCgxjYXN0",
"X3NoYWRvd3MYAyABKAhIAogBARI3Cg1kaWZmdXNlX2NvbG9yGAQgASgLMhsu",
"ZGVjZW50cmFsYW5kLmNvbW1vbi5Db2xvcjRIA4gBAUIKCghfdGV4dHVyZUIN",
"CgtfYWxwaGFfdGVzdEIPCg1fY2FzdF9zaGFkb3dzQhAKDl9kaWZmdXNlX2Nv",
"bG9yGukHCgtQYnJNYXRlcmlhbBI3Cgd0ZXh0dXJlGAEgASgLMiEuZGVjZW50",
"cmFsYW5kLmNvbW1vbi5UZXh0dXJlVW5pb25IAIgBARIXCgphbHBoYV90ZXN0",
"GAIgASgCSAGIAQESGQoMY2FzdF9zaGFkb3dzGAMgASgISAKIAQESPQoNYWxw",
"aGFfdGV4dHVyZRgEIAEoCzIhLmRlY2VudHJhbGFuZC5jb21tb24uVGV4dHVy",
"ZVVuaW9uSAOIAQESQAoQZW1pc3NpdmVfdGV4dHVyZRgFIAEoCzIhLmRlY2Vu",
"dHJhbGFuZC5jb21tb24uVGV4dHVyZVVuaW9uSASIAQESPAoMYnVtcF90ZXh0",
"dXJlGAYgASgLMiEuZGVjZW50cmFsYW5kLmNvbW1vbi5UZXh0dXJlVW5pb25I",
"BYgBARI2CgxhbGJlZG9fY29sb3IYByABKAsyGy5kZWNlbnRyYWxhbmQuY29t",
"bW9uLkNvbG9yNEgGiAEBEjgKDmVtaXNzaXZlX2NvbG9yGAggASgLMhsuZGVj",
"ZW50cmFsYW5kLmNvbW1vbi5Db2xvcjNIB4gBARI8ChJyZWZsZWN0aXZpdHlf",
"Y29sb3IYCSABKAsyGy5kZWNlbnRyYWxhbmQuY29tbW9uLkNvbG9yM0gIiAEB",
"ElUKEXRyYW5zcGFyZW5jeV9tb2RlGAogASgOMjUuZGVjZW50cmFsYW5kLnNk",
"ay5jb21wb25lbnRzLk1hdGVyaWFsVHJhbnNwYXJlbmN5TW9kZUgJiAEBEhUK",
"CG1ldGFsbGljGAsgASgCSAqIAQESFgoJcm91Z2huZXNzGAwgASgCSAuIAQES",
"HwoSc3BlY3VsYXJfaW50ZW5zaXR5GA4gASgCSAyIAQESHwoSZW1pc3NpdmVf",
"aW50ZW5zaXR5GA8gASgCSA2IAQESHQoQZGlyZWN0X2ludGVuc2l0eRgQIAEo",
"AkgOiAEBQgoKCF90ZXh0dXJlQg0KC19hbHBoYV90ZXN0Qg8KDV9jYXN0X3No",
"YWRvd3NCEAoOX2FscGhhX3RleHR1cmVCEwoRX2VtaXNzaXZlX3RleHR1cmVC",
"DwoNX2J1bXBfdGV4dHVyZUIPCg1fYWxiZWRvX2NvbG9yQhEKD19lbWlzc2l2",
"ZV9jb2xvckIVChNfcmVmbGVjdGl2aXR5X2NvbG9yQhQKEl90cmFuc3BhcmVu",
"Y3lfbW9kZUILCglfbWV0YWxsaWNCDAoKX3JvdWdobmVzc0IVChNfc3BlY3Vs",
"YXJfaW50ZW5zaXR5QhUKE19lbWlzc2l2ZV9pbnRlbnNpdHlCEwoRX2RpcmVj",
"dF9pbnRlbnNpdHlKBAgNEA5CCgoIbWF0ZXJpYWwqhQEKGE1hdGVyaWFsVHJh",
"bnNwYXJlbmN5TW9kZRIOCgpNVE1fT1BBUVVFEAASEgoOTVRNX0FMUEhBX1RF",
"U1QQARITCg9NVE1fQUxQSEFfQkxFTkQQAhIiCh5NVE1fQUxQSEFfVEVTVF9B",
"TkRfQUxQSEFfQkxFTkQQAxIMCghNVE1fQVVUTxAEQhSqAhFEQ0wuRUNTQ29t",
"cG9uZW50c2IGcHJvdG8z"));
"ZGVjZW50cmFsYW5kLmNvbW1vbi5Db2xvcjRIA4gBARI9Cg1hbHBoYV90ZXh0",
"dXJlGAUgASgLMiEuZGVjZW50cmFsYW5kLmNvbW1vbi5UZXh0dXJlVW5pb25I",
"BIgBAUIKCghfdGV4dHVyZUINCgtfYWxwaGFfdGVzdEIPCg1fY2FzdF9zaGFk",
"b3dzQhAKDl9kaWZmdXNlX2NvbG9yQhAKDl9hbHBoYV90ZXh0dXJlGukHCgtQ",
"YnJNYXRlcmlhbBI3Cgd0ZXh0dXJlGAEgASgLMiEuZGVjZW50cmFsYW5kLmNv",
"bW1vbi5UZXh0dXJlVW5pb25IAIgBARIXCgphbHBoYV90ZXN0GAIgASgCSAGI",
"AQESGQoMY2FzdF9zaGFkb3dzGAMgASgISAKIAQESPQoNYWxwaGFfdGV4dHVy",
"ZRgEIAEoCzIhLmRlY2VudHJhbGFuZC5jb21tb24uVGV4dHVyZVVuaW9uSAOI",
"AQESQAoQZW1pc3NpdmVfdGV4dHVyZRgFIAEoCzIhLmRlY2VudHJhbGFuZC5j",
"b21tb24uVGV4dHVyZVVuaW9uSASIAQESPAoMYnVtcF90ZXh0dXJlGAYgASgL",
"MiEuZGVjZW50cmFsYW5kLmNvbW1vbi5UZXh0dXJlVW5pb25IBYgBARI2Cgxh",
"bGJlZG9fY29sb3IYByABKAsyGy5kZWNlbnRyYWxhbmQuY29tbW9uLkNvbG9y",
"NEgGiAEBEjgKDmVtaXNzaXZlX2NvbG9yGAggASgLMhsuZGVjZW50cmFsYW5k",
"LmNvbW1vbi5Db2xvcjNIB4gBARI8ChJyZWZsZWN0aXZpdHlfY29sb3IYCSAB",
"KAsyGy5kZWNlbnRyYWxhbmQuY29tbW9uLkNvbG9yM0gIiAEBElUKEXRyYW5z",
"cGFyZW5jeV9tb2RlGAogASgOMjUuZGVjZW50cmFsYW5kLnNkay5jb21wb25l",
"bnRzLk1hdGVyaWFsVHJhbnNwYXJlbmN5TW9kZUgJiAEBEhUKCG1ldGFsbGlj",
"GAsgASgCSAqIAQESFgoJcm91Z2huZXNzGAwgASgCSAuIAQESHwoSc3BlY3Vs",
"YXJfaW50ZW5zaXR5GA4gASgCSAyIAQESHwoSZW1pc3NpdmVfaW50ZW5zaXR5",
"GA8gASgCSA2IAQESHQoQZGlyZWN0X2ludGVuc2l0eRgQIAEoAkgOiAEBQgoK",
"CF90ZXh0dXJlQg0KC19hbHBoYV90ZXN0Qg8KDV9jYXN0X3NoYWRvd3NCEAoO",
"X2FscGhhX3RleHR1cmVCEwoRX2VtaXNzaXZlX3RleHR1cmVCDwoNX2J1bXBf",
"dGV4dHVyZUIPCg1fYWxiZWRvX2NvbG9yQhEKD19lbWlzc2l2ZV9jb2xvckIV",
"ChNfcmVmbGVjdGl2aXR5X2NvbG9yQhQKEl90cmFuc3BhcmVuY3lfbW9kZUIL",
"CglfbWV0YWxsaWNCDAoKX3JvdWdobmVzc0IVChNfc3BlY3VsYXJfaW50ZW5z",
"aXR5QhUKE19lbWlzc2l2ZV9pbnRlbnNpdHlCEwoRX2RpcmVjdF9pbnRlbnNp",
"dHlKBAgNEA5CCgoIbWF0ZXJpYWwqhQEKGE1hdGVyaWFsVHJhbnNwYXJlbmN5",
"TW9kZRIOCgpNVE1fT1BBUVVFEAASEgoOTVRNX0FMUEhBX1RFU1QQARITCg9N",
"VE1fQUxQSEFfQkxFTkQQAhIiCh5NVE1fQUxQSEFfVEVTVF9BTkRfQUxQSEFf",
"QkxFTkQQAxIMCghNVE1fQVVUTxAEQhSqAhFEQ0wuRUNTQ29tcG9uZW50c2IG",
"cHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Decentraland.Common.ColorsReflection.Descriptor, global::Decentraland.Common.TextureReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::DCL.ECSComponents.MaterialTransparencyMode), }, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::DCL.ECSComponents.PBMaterial), global::DCL.ECSComponents.PBMaterial.Parser, new[]{ "Unlit", "Pbr" }, new[]{ "Material" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::DCL.ECSComponents.PBMaterial.Types.UnlitMaterial), global::DCL.ECSComponents.PBMaterial.Types.UnlitMaterial.Parser, new[]{ "Texture", "AlphaTest", "CastShadows", "DiffuseColor" }, new[]{ "Texture", "AlphaTest", "CastShadows", "DiffuseColor" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::DCL.ECSComponents.PBMaterial), global::DCL.ECSComponents.PBMaterial.Parser, new[]{ "Unlit", "Pbr" }, new[]{ "Material" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::DCL.ECSComponents.PBMaterial.Types.UnlitMaterial), global::DCL.ECSComponents.PBMaterial.Types.UnlitMaterial.Parser, new[]{ "Texture", "AlphaTest", "CastShadows", "DiffuseColor", "AlphaTexture" }, new[]{ "Texture", "AlphaTest", "CastShadows", "DiffuseColor", "AlphaTexture" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::DCL.ECSComponents.PBMaterial.Types.PbrMaterial), global::DCL.ECSComponents.PBMaterial.Types.PbrMaterial.Parser, new[]{ "Texture", "AlphaTest", "CastShadows", "AlphaTexture", "EmissiveTexture", "BumpTexture", "AlbedoColor", "EmissiveColor", "ReflectivityColor", "TransparencyMode", "Metallic", "Roughness", "SpecularIntensity", "EmissiveIntensity", "DirectIntensity" }, new[]{ "Texture", "AlphaTest", "CastShadows", "AlphaTexture", "EmissiveTexture", "BumpTexture", "AlbedoColor", "EmissiveColor", "ReflectivityColor", "TransparencyMode", "Metallic", "Roughness", "SpecularIntensity", "EmissiveIntensity", "DirectIntensity" }, null, null, null)})
}));
}
Expand Down Expand Up @@ -413,6 +415,7 @@ public UnlitMaterial(UnlitMaterial other) : this() {
alphaTest_ = other.alphaTest_;
castShadows_ = other.castShadows_;
diffuseColor_ = other.diffuseColor_ != null ? other.diffuseColor_.Clone() : null;
alphaTexture_ = other.alphaTexture_ != null ? other.alphaTexture_.Clone() : null;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

Expand Down Expand Up @@ -508,6 +511,21 @@ public void ClearCastShadows() {
}
}

/// <summary>Field number for the "alpha_texture" field.</summary>
public const int AlphaTextureFieldNumber = 5;
private global::Decentraland.Common.TextureUnion alphaTexture_;
/// <summary>
/// default = null
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Decentraland.Common.TextureUnion AlphaTexture {
get { return alphaTexture_; }
set {
alphaTexture_ = value;
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
Expand All @@ -527,6 +545,7 @@ public bool Equals(UnlitMaterial other) {
if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(AlphaTest, other.AlphaTest)) return false;
if (CastShadows != other.CastShadows) return false;
if (!object.Equals(DiffuseColor, other.DiffuseColor)) return false;
if (!object.Equals(AlphaTexture, other.AlphaTexture)) return false;
return Equals(_unknownFields, other._unknownFields);
}

Expand All @@ -538,6 +557,7 @@ public override int GetHashCode() {
if (HasAlphaTest) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(AlphaTest);
if (HasCastShadows) hash ^= CastShadows.GetHashCode();
if (diffuseColor_ != null) hash ^= DiffuseColor.GetHashCode();
if (alphaTexture_ != null) hash ^= AlphaTexture.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
Expand Down Expand Up @@ -572,6 +592,10 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(34);
output.WriteMessage(DiffuseColor);
}
if (alphaTexture_ != null) {
output.WriteRawTag(42);
output.WriteMessage(AlphaTexture);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
Expand All @@ -598,6 +622,10 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(34);
output.WriteMessage(DiffuseColor);
}
if (alphaTexture_ != null) {
output.WriteRawTag(42);
output.WriteMessage(AlphaTexture);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
Expand All @@ -620,6 +648,9 @@ public int CalculateSize() {
if (diffuseColor_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(DiffuseColor);
}
if (alphaTexture_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(AlphaTexture);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
Expand Down Expand Up @@ -650,6 +681,12 @@ public void MergeFrom(UnlitMaterial other) {
}
DiffuseColor.MergeFrom(other.DiffuseColor);
}
if (other.alphaTexture_ != null) {
if (alphaTexture_ == null) {
AlphaTexture = new global::Decentraland.Common.TextureUnion();
}
AlphaTexture.MergeFrom(other.AlphaTexture);
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}

Expand Down Expand Up @@ -687,6 +724,13 @@ public void MergeFrom(pb::CodedInputStream input) {
input.ReadMessage(DiffuseColor);
break;
}
case 42: {
if (alphaTexture_ == null) {
AlphaTexture = new global::Decentraland.Common.TextureUnion();
}
input.ReadMessage(AlphaTexture);
break;
}
}
}
#endif
Expand Down Expand Up @@ -724,6 +768,13 @@ public void MergeFrom(pb::CodedInputStream input) {
input.ReadMessage(DiffuseColor);
break;
}
case 42: {
if (alphaTexture_ == null) {
AlphaTexture = new global::Decentraland.Common.TextureUnion();
}
input.ReadMessage(AlphaTexture);
break;
}
}
}
}
Expand Down Expand Up @@ -866,7 +917,7 @@ public void ClearCastShadows() {
public const int AlphaTextureFieldNumber = 4;
private global::Decentraland.Common.TextureUnion alphaTexture_;
/// <summary>
/// default = null
/// @deprecated Alpha textures are no longer supported on PBRMaterial and UnlitMaterial.alphaTexture should be used instead.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,11 @@ internal MaterialData(bool isPbrMaterial, TextureComponent? albedoTexture, Textu
DirectIntensity = directIntensity;
}

internal static MaterialData CreateBasicMaterial(TextureComponent? albedoTexture, float alphaTest, Color diffuseColor, bool castShadows)
internal static MaterialData CreateBasicMaterial(TextureComponent? albedoTexture, TextureComponent? alphaTexture, float alphaTest, Color diffuseColor, bool castShadows)
{
Color defaultColor = Color.white;

return new MaterialData(false, albedoTexture, null, null, null,
return new MaterialData(false, albedoTexture, alphaTexture, null, null,
alphaTest, castShadows, defaultColor, diffuseColor, defaultColor, defaultColor, MaterialTransparencyMode.Auto,
0, 0, 0, 0, 0);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: BasicShapeMaterial
m_Shader: {fileID: 4800000, guid: 56a9743f8d94f684190dc11bb521fb78, type: 3}
m_Shader: {fileID: 4800000, guid: d77b7a7570974707a3c094386b19c6bc, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
Expand All @@ -17,12 +17,17 @@ Material:
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AlphaTexture:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
Expand Down Expand Up @@ -61,6 +66,7 @@ Material:
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BlendOp: 0
- _BumpScale: 1
- _Cull: 2
- _CullYPlane: 0
Expand Down Expand Up @@ -93,6 +99,7 @@ Material:
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _PlaneClipping: {r: -2.1474836e+9, g: 2.1474836e+9, b: -2.1474836e+9, a: 2.1474836e+9}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
- _VerticalClipping: {r: -2.1474836e+9, g: 2.1474836e+9, b: 0, a: 0}
m_BuildTextureStacks: []
--- !u!114 &5218572137218344763
MonoBehaviour:
Expand Down
Loading

0 comments on commit dde6404

Please sign in to comment.