mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
Use IRenderer in LightingDataProcessor
This commit is contained in:
parent
b72259cb98
commit
0a666bbdda
@ -10,7 +10,7 @@ using AssetRipper.SourceGenerated.Classes.ClassID_108;
|
|||||||
using AssetRipper.SourceGenerated.Classes.ClassID_1120;
|
using AssetRipper.SourceGenerated.Classes.ClassID_1120;
|
||||||
using AssetRipper.SourceGenerated.Classes.ClassID_157;
|
using AssetRipper.SourceGenerated.Classes.ClassID_157;
|
||||||
using AssetRipper.SourceGenerated.Classes.ClassID_218;
|
using AssetRipper.SourceGenerated.Classes.ClassID_218;
|
||||||
using AssetRipper.SourceGenerated.Classes.ClassID_23;
|
using AssetRipper.SourceGenerated.Classes.ClassID_25;
|
||||||
using AssetRipper.SourceGenerated.Classes.ClassID_258;
|
using AssetRipper.SourceGenerated.Classes.ClassID_258;
|
||||||
using AssetRipper.SourceGenerated.Extensions;
|
using AssetRipper.SourceGenerated.Extensions;
|
||||||
using AssetRipper.SourceGenerated.Subclasses.LightmapData;
|
using AssetRipper.SourceGenerated.Subclasses.LightmapData;
|
||||||
@ -90,10 +90,10 @@ namespace AssetRipper.Processing
|
|||||||
|
|
||||||
foreach (IUnityObjectBase asset in collection)
|
foreach (IUnityObjectBase asset in collection)
|
||||||
{
|
{
|
||||||
if (asset is IMeshRenderer meshRenderer) //Need to do all renderer types
|
if (asset is IRenderer renderer) //Need to do all renderer types
|
||||||
{
|
{
|
||||||
if ((meshRenderer.LightmapIndex_C23_Byte == byte.MaxValue || meshRenderer.LightmapIndex_C23_UInt16 == ushort.MaxValue)
|
ushort lightmapIndex = renderer.GetLightmapIndex();
|
||||||
&& meshRenderer.LightmapIndexDynamic_C23 == ushort.MaxValue)
|
if (lightmapIndex == ushort.MaxValue && renderer.LightmapIndexDynamic_C25 == ushort.MaxValue)
|
||||||
{
|
{
|
||||||
// No lightmap data associated with renderer
|
// No lightmap data associated with renderer
|
||||||
continue;
|
continue;
|
||||||
@ -105,12 +105,12 @@ namespace AssetRipper.Processing
|
|||||||
|
|
||||||
//The lightmap index, lightmap uv scale/offset value, etc
|
//The lightmap index, lightmap uv scale/offset value, etc
|
||||||
IRendererData rendererData = lightingDataAsset.LightmappedRendererData_C1120.AddNew();
|
IRendererData rendererData = lightingDataAsset.LightmappedRendererData_C1120.AddNew();
|
||||||
rendererData.LightmapIndex = Math.Max(meshRenderer.LightmapIndex_C23_Byte, meshRenderer.LightmapIndex_C23_UInt16);
|
rendererData.LightmapIndex = lightmapIndex;
|
||||||
rendererData.LightmapIndexDynamic = meshRenderer.LightmapIndexDynamic_C23;
|
rendererData.LightmapIndexDynamic = renderer.LightmapIndexDynamic_C25;
|
||||||
rendererData.LightmapST.CopyValues(meshRenderer.LightmapTilingOffset_C23);
|
rendererData.LightmapST.CopyValues(renderer.LightmapTilingOffset_C25);
|
||||||
if (meshRenderer.Has_LightmapTilingOffsetDynamic_C23())
|
if (renderer.Has_LightmapTilingOffsetDynamic_C25())
|
||||||
{
|
{
|
||||||
rendererData.LightmapSTDynamic.CopyValues(meshRenderer.LightmapTilingOffsetDynamic_C23);
|
rendererData.LightmapSTDynamic.CopyValues(renderer.LightmapTilingOffsetDynamic_C25);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (asset is ITerrain terrain)
|
else if (asset is ITerrain terrain)
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
using AssetRipper.SourceGenerated.Classes.ClassID_21;
|
using AssetRipper.SourceGenerated.Classes.ClassID_21;
|
||||||
using AssetRipper.SourceGenerated.Classes.ClassID_25;
|
using AssetRipper.SourceGenerated.Classes.ClassID_25;
|
||||||
using AssetRipper.SourceGenerated.Enums;
|
using AssetRipper.SourceGenerated.Enums;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace AssetRipper.SourceGenerated.Extensions
|
namespace AssetRipper.SourceGenerated.Extensions
|
||||||
{
|
{
|
||||||
@ -63,5 +64,19 @@ namespace AssetRipper.SourceGenerated.Extensions
|
|||||||
renderer.AutoUVMaxAngle_C25 = 89.0f;
|
renderer.AutoUVMaxAngle_C25 = 89.0f;
|
||||||
renderer.LightmapParameters_C25P = null;
|
renderer.LightmapParameters_C25P = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ushort GetLightmapIndex(this IRenderer renderer)
|
||||||
|
{
|
||||||
|
if (renderer.Has_LightmapIndex_C25_UInt16())
|
||||||
|
{
|
||||||
|
return renderer.LightmapIndex_C25_UInt16;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.Assert(renderer.Has_LightmapIndex_C25_Byte());
|
||||||
|
byte value = renderer.LightmapIndex_C25_Byte;
|
||||||
|
return value == byte.MaxValue ? ushort.MaxValue : value;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user