misc changes and cleanup
This commit is contained in:
Родитель
a836c51ae2
Коммит
bfde2a4352
|
@ -4,6 +4,7 @@ using UnityEngine;
|
|||
using UnityEngine.Rendering;
|
||||
using Unity.Collections;
|
||||
using Unity.Collections.LowLevel.Unsafe;
|
||||
using Unity.Mathematics;
|
||||
|
||||
namespace Unity.DemoTeam.Hair
|
||||
{
|
||||
|
@ -38,19 +39,18 @@ namespace Unity.DemoTeam.Hair
|
|||
{
|
||||
public enum Renderer
|
||||
{
|
||||
Lines1px,
|
||||
PrimitiveLines,
|
||||
}
|
||||
|
||||
public enum Scaling
|
||||
{
|
||||
NoScaling,
|
||||
LocalUniformScaling,
|
||||
PreserveScale,
|
||||
ApplyUniformScale,
|
||||
}
|
||||
|
||||
public Scaling strandScaling;
|
||||
public float strandDiameter;
|
||||
public Material strandMaterial;
|
||||
public Renderer strandRenderer;
|
||||
public Scaling strandScaling;
|
||||
public bool simulate;
|
||||
}
|
||||
|
||||
public GroomAsset groomAsset;
|
||||
|
@ -88,7 +88,7 @@ namespace Unity.DemoTeam.Hair
|
|||
|
||||
void OnValidate()
|
||||
{
|
||||
volumeSettings.volumeResolution = (Mathf.Max(8, volumeSettings.volumeResolution) / 8) * 8;
|
||||
volumeSettings.volumeGridResolution = (Mathf.Max(8, volumeSettings.volumeGridResolution) / 8) * 8;
|
||||
|
||||
if (boundaries.Count > HairSim.MAX_BOUNDARIES)
|
||||
{
|
||||
|
@ -108,9 +108,7 @@ namespace Unity.DemoTeam.Hair
|
|||
InitializeContainers();
|
||||
}
|
||||
|
||||
public static Bounds GetRootBounds(MeshFilter rootFilter, Space space = Space.World)
|
||||
{
|
||||
if (space == Space.World)
|
||||
public static Bounds GetRootBounds(MeshFilter rootFilter)
|
||||
{
|
||||
var rootBounds = rootFilter.sharedMesh.bounds;
|
||||
var rootTransform = rootFilter.transform;
|
||||
|
@ -127,18 +125,13 @@ namespace Unity.DemoTeam.Hair
|
|||
|
||||
return new Bounds(worldCenter, 2.0f * worldExtent);
|
||||
}
|
||||
else
|
||||
{
|
||||
return rootFilter.sharedMesh.bounds;
|
||||
}
|
||||
}
|
||||
|
||||
public Bounds GetSimulationBounds(Space space = Space.World)
|
||||
public Bounds GetSimulationBounds()
|
||||
{
|
||||
Debug.Assert(groomAsset != null);
|
||||
Debug.Assert(groomAsset.strandGroups != null);
|
||||
|
||||
var worldBounds = GetRootBounds(groomContainers[0].rootFilter, space);
|
||||
var worldBounds = GetRootBounds(groomContainers[0].rootFilter);
|
||||
var worldMargin = groomAsset.strandGroups[0].strandLengthMax;
|
||||
|
||||
for (int i = 1; i != groomContainers.Length; i++)
|
||||
|
@ -153,38 +146,51 @@ namespace Unity.DemoTeam.Hair
|
|||
return new Bounds(worldBounds.center, worldBounds.size);
|
||||
}
|
||||
|
||||
public Bounds GetSimulationBoundsSquare(Space space = Space.World)
|
||||
public Bounds GetSimulationBoundsSquare()
|
||||
{
|
||||
var worldBounds = GetSimulationBounds(space);
|
||||
var worldBounds = GetSimulationBounds();
|
||||
var worldExtent = worldBounds.extents;
|
||||
|
||||
return new Bounds(worldBounds.center, Vector3.one * (2.0f * Mathf.Max(worldExtent.x, worldExtent.y, worldExtent.z)));
|
||||
}
|
||||
|
||||
public float GetSimulationStrandScale()
|
||||
{
|
||||
switch (settingsStrands.strandScaling)
|
||||
{
|
||||
default:
|
||||
case SettingsStrands.Scaling.PreserveScale:
|
||||
return 1.0f;
|
||||
|
||||
case SettingsStrands.Scaling.ApplyUniformScale:
|
||||
return math.cmin(this.transform.localScale);
|
||||
}
|
||||
}
|
||||
|
||||
public void DispatchStep(CommandBuffer cmd, float dt)
|
||||
{
|
||||
if (!InitializeRuntimeData(cmd))
|
||||
return;
|
||||
|
||||
// apply settings
|
||||
var strandScale = GetSimulationStrandScale();
|
||||
var volumeBounds = GetSimulationBoundsSquare();
|
||||
|
||||
for (int i = 0; i != solverData.Length; i++)
|
||||
{
|
||||
HairSim.UpdateSolverData(ref solverData[i], solverSettings, dt);
|
||||
HairSim.UpdateSolverRoots(cmd, groomContainers[i].rootFilter.sharedMesh, groomContainers[i].rootFilter.transform.localToWorldMatrix, solverData[i]);
|
||||
}
|
||||
|
||||
var volumeBounds = GetSimulationBoundsSquare();
|
||||
{
|
||||
volumeSettings.volumeWorldCenter = volumeBounds.center;
|
||||
volumeSettings.volumeWorldExtent = volumeBounds.extents;
|
||||
}
|
||||
|
||||
HairSim.UpdateVolumeData(ref volumeData, volumeSettings, boundaries);
|
||||
//TODO this needs to happen after stepping solver
|
||||
//TODO ^^ this needs to happen after stepping solver
|
||||
//TODO split boundary data update from volume data update
|
||||
|
||||
// pre-step volume if resolution changed
|
||||
if (HairSim.PrepareVolumeData(ref volumeData, volumeSettings.volumeResolution, halfPrecision: false))
|
||||
if (HairSim.PrepareVolumeData(ref volumeData, volumeSettings.volumeGridResolution, halfPrecision: false))
|
||||
{
|
||||
HairSim.StepVolumeData(cmd, ref volumeData, volumeSettings, solverData);
|
||||
}
|
||||
|
@ -275,23 +281,8 @@ namespace Unity.DemoTeam.Hair
|
|||
var rootFilter = groomContainers[i].rootFilter;
|
||||
var rootTransform = rootFilter.transform.localToWorldMatrix;
|
||||
|
||||
var strandTransform = Matrix4x4.TRS(rootFilter.transform.position, rootFilter.transform.rotation, Vector3.one);
|
||||
var strandScale = 1.0f;
|
||||
|
||||
switch (settingsStrands.strandScaling)
|
||||
{
|
||||
case SettingsStrands.Scaling.NoScaling:
|
||||
break;
|
||||
|
||||
case SettingsStrands.Scaling.LocalUniformScaling:
|
||||
{
|
||||
var localScale = rootFilter.transform.localScale;
|
||||
var localScaleMin = Mathf.Min(localScale.x, localScale.y, localScale.z);
|
||||
strandTransform = strandTransform * Matrix4x4.Scale(Vector3.one * localScaleMin);
|
||||
strandScale = localScaleMin;
|
||||
}
|
||||
break;
|
||||
}
|
||||
var strandScale = GetSimulationStrandScale();
|
||||
var strandTransform = Matrix4x4.TRS(rootFilter.transform.position, rootFilter.transform.rotation, Vector3.one * strandScale);
|
||||
|
||||
HairSim.PrepareSolverData(ref solverData[i], strandGroup.strandCount, strandGroup.strandParticleCount);
|
||||
|
||||
|
@ -337,7 +328,7 @@ namespace Unity.DemoTeam.Hair
|
|||
HairSim.UpdateSolverData(ref solverData[i], solverSettings, 1.0f);
|
||||
HairSim.UpdateSolverRoots(cmd, groomContainers[i].rootFilter.sharedMesh, rootTransform, solverData[i]);
|
||||
{
|
||||
HairSim.InitSolverData(cmd, ref solverData[i], strandTransform);
|
||||
HairSim.InitSolverParticles(cmd, solverData[i], strandTransform);
|
||||
}
|
||||
|
||||
// initialize the renderer
|
||||
|
@ -352,7 +343,7 @@ namespace Unity.DemoTeam.Hair
|
|||
groomContainers[i].lineRenderer.SetPropertyBlock(groomContainers[i].lineRendererMPB);
|
||||
}
|
||||
|
||||
HairSim.PrepareVolumeData(ref volumeData, volumeSettings.volumeResolution, halfPrecision: false);
|
||||
HairSim.PrepareVolumeData(ref volumeData, volumeSettings.volumeGridResolution, halfPrecision: false);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -56,11 +56,10 @@ namespace Unity.DemoTeam.Hair
|
|||
public static ProfilingSampler DrawVolumeData;
|
||||
}
|
||||
|
||||
//TODO remove public
|
||||
public static class UniformIDs
|
||||
static class UniformIDs
|
||||
{
|
||||
// solver
|
||||
public static int SolverParams;
|
||||
public static int SolverCBuffer;
|
||||
|
||||
public static int _Length;
|
||||
public static int _RootPosition;
|
||||
|
@ -73,7 +72,7 @@ namespace Unity.DemoTeam.Hair
|
|||
public static int _ParticleVelocityPrev;
|
||||
|
||||
// volume
|
||||
public static int VolumeParams;
|
||||
public static int VolumeCBuffer;
|
||||
|
||||
public static int _AccuDensity;
|
||||
public static int _AccuVelocityX;
|
||||
|
@ -169,8 +168,8 @@ namespace Unity.DemoTeam.Hair
|
|||
public enum Compare
|
||||
{
|
||||
Equals,
|
||||
LessThan,
|
||||
GreaterThan,
|
||||
EqualsOrLessThan,
|
||||
EqualsOrGreaterThan,
|
||||
}
|
||||
|
||||
[Range(0.070f, 100.0f), Tooltip("Strand diameter in millimeters")]
|
||||
|
@ -178,6 +177,9 @@ namespace Unity.DemoTeam.Hair
|
|||
[Range(0.0f, 9.0f)]
|
||||
public float strandParticleContrib;// TODO move elsewhere
|
||||
|
||||
[Space]
|
||||
|
||||
|
||||
[Space]
|
||||
|
||||
public Method method;
|
||||
|
@ -190,14 +192,14 @@ namespace Unity.DemoTeam.Hair
|
|||
|
||||
[Space]
|
||||
|
||||
[Range(-1.0f, 1.0f), Tooltip("Scaling factor for gravity")]
|
||||
public float gravity;
|
||||
[Range(0.0f, 1.0f), Tooltip("Damping factor")]
|
||||
public float damping;
|
||||
[Range(0.0f, 1.0f), Tooltip("Scaling factor for volume pressure impulse")]
|
||||
public float volumeResponse;
|
||||
public float cellPressure;
|
||||
[Range(0.0f, 1.0f), Tooltip("Scaling factor for volume velocity impulse (0 == FLIP, 1 == PIC)")]
|
||||
public float volumeFriction;
|
||||
public float cellVelocity;
|
||||
[Range(0.0f, 1.0f), Tooltip("Velocity damping factor")]
|
||||
public float damping;
|
||||
[Range(-1.0f, 1.0f), Tooltip("Scaling factor for gravity (Physics.gravity)")]
|
||||
public float gravity;
|
||||
|
||||
[Space]
|
||||
|
||||
|
@ -230,10 +232,10 @@ namespace Unity.DemoTeam.Hair
|
|||
stiffness = 1.0f,
|
||||
kSOR = 1.0f,
|
||||
|
||||
gravity = 1.0f,
|
||||
cellPressure = 1.0f,
|
||||
cellVelocity = 0.05f,
|
||||
damping = 0.0f,
|
||||
volumeResponse = 1.0f,
|
||||
volumeFriction = 0.05f,
|
||||
gravity = 1.0f,
|
||||
|
||||
distance = true,
|
||||
distanceLRA = true,
|
||||
|
@ -242,13 +244,13 @@ namespace Unity.DemoTeam.Hair
|
|||
boundary = true,
|
||||
boundaryFriction = 0.5f,
|
||||
curvature = false,
|
||||
curvatureCompare = Compare.LessThan,
|
||||
curvatureCompare = Compare.EqualsOrLessThan,
|
||||
curvatureCompareTo = 0.1f,
|
||||
};
|
||||
}
|
||||
[Serializable] public struct VolumeSettings
|
||||
{
|
||||
public enum Method : uint
|
||||
public enum SplatMethod
|
||||
{
|
||||
None,
|
||||
Compute,
|
||||
|
@ -257,28 +259,49 @@ namespace Unity.DemoTeam.Hair
|
|||
RasterizationNoGS,
|
||||
}
|
||||
|
||||
[Range(8, 160)]
|
||||
public int volumeResolution;
|
||||
public Method volumeSplatMethod;
|
||||
[Range(0, 100)]
|
||||
public int pressureIterations;
|
||||
[Range(0.0f, 1.0f)]
|
||||
public float weighIncompressibleFlow;
|
||||
[Range(0.0f, 1.0f)]
|
||||
public float weighTargetDensity;
|
||||
public bool supportContraction;
|
||||
//public enum PressureMode
|
||||
//{
|
||||
// Repulsion,
|
||||
// RepulsionAndAttraction,
|
||||
//}
|
||||
|
||||
public enum TargetDensity
|
||||
{
|
||||
Uniform,
|
||||
//InitialPose,
|
||||
//InitialPoseInParticles,
|
||||
}
|
||||
|
||||
[HideInInspector] public Vector3 volumeWorldCenter;
|
||||
[HideInInspector] public Vector3 volumeWorldExtent;
|
||||
|
||||
public SplatMethod volumeSplatMethod;
|
||||
[Range(8, 160)]
|
||||
public int volumeGridResolution;
|
||||
|
||||
[Space]
|
||||
|
||||
[Range(0, 100)]
|
||||
public int pressureIterations;
|
||||
[Tooltip("Enable this to support attraction of strands")]
|
||||
public bool pressureAllowsAttraction;
|
||||
public TargetDensity targetDensity;
|
||||
[Range(0.0f, 2.0f)]
|
||||
public float targetDensityFactor;
|
||||
|
||||
[Space]
|
||||
|
||||
public bool boundariesFromPhysics;
|
||||
|
||||
public static readonly VolumeSettings defaults = new VolumeSettings()
|
||||
{
|
||||
volumeResolution = 48,
|
||||
volumeSplatMethod = Method.Compute,
|
||||
volumeGridResolution = 48,
|
||||
volumeSplatMethod = SplatMethod.Compute,
|
||||
pressureIterations = 10,
|
||||
weighIncompressibleFlow = 1.0f,
|
||||
weighTargetDensity = 1.0f,
|
||||
supportContraction = true,
|
||||
pressureAllowsAttraction = true,
|
||||
targetDensity = TargetDensity.Uniform,
|
||||
targetDensityFactor = 1.0f,
|
||||
boundariesFromPhysics = false,
|
||||
};
|
||||
}
|
||||
[Serializable] public struct DebugSettings
|
||||
|
@ -501,12 +524,12 @@ namespace Unity.DemoTeam.Hair
|
|||
cbuffer._DT = dt;
|
||||
cbuffer._Iterations = (uint)solverSettings.iterations;
|
||||
cbuffer._Stiffness = solverSettings.stiffness;
|
||||
cbuffer._Damping = solverSettings.damping;
|
||||
cbuffer._Relaxation = solverSettings.kSOR;
|
||||
|
||||
cbuffer._Damping = solverSettings.damping;
|
||||
cbuffer._Gravity = solverSettings.gravity * -Vector3.Magnitude(Physics.gravity);
|
||||
cbuffer._VolumePressureScale = solverSettings.volumeResponse;
|
||||
cbuffer._VolumeFrictionScale = solverSettings.volumeFriction;
|
||||
cbuffer._VolumePressureScale = solverSettings.cellPressure;
|
||||
cbuffer._VolumeFrictionScale = solverSettings.cellVelocity;
|
||||
|
||||
cbuffer._BoundaryFriction = solverSettings.boundaryFriction;
|
||||
cbuffer._BendingCurvature = solverSettings.curvatureCompareTo * 0.5f * cbuffer._StrandParticleInterval;
|
||||
|
@ -520,8 +543,8 @@ namespace Unity.DemoTeam.Hair
|
|||
keywords.ENABLE_BOUNDARY = (solverSettings.boundary && solverSettings.boundaryFriction == 0.0f);
|
||||
keywords.ENABLE_BOUNDARY_FRICTION = (solverSettings.boundary && solverSettings.boundaryFriction != 0.0f);
|
||||
keywords.ENABLE_CURVATURE_EQ = (solverSettings.curvature && solverSettings.curvatureCompare == SolverSettings.Compare.Equals);
|
||||
keywords.ENABLE_CURVATURE_GEQ = (solverSettings.curvature && solverSettings.curvatureCompare == SolverSettings.Compare.GreaterThan);
|
||||
keywords.ENABLE_CURVATURE_LEQ = (solverSettings.curvature && solverSettings.curvatureCompare == SolverSettings.Compare.LessThan);
|
||||
keywords.ENABLE_CURVATURE_GEQ = (solverSettings.curvature && solverSettings.curvatureCompare == SolverSettings.Compare.EqualsOrGreaterThan);
|
||||
keywords.ENABLE_CURVATURE_LEQ = (solverSettings.curvature && solverSettings.curvatureCompare == SolverSettings.Compare.EqualsOrLessThan);
|
||||
}
|
||||
|
||||
public static void UpdateVolumeData(ref VolumeData volumeData, in VolumeSettings volumeSettings, List<HairSimBoundary> boundaries)
|
||||
|
@ -530,12 +553,11 @@ namespace Unity.DemoTeam.Hair
|
|||
ref var keywords = ref volumeData.keywords;
|
||||
|
||||
// update volume parameters
|
||||
cbuffer._VolumeCells = volumeSettings.volumeResolution * Vector3.one;
|
||||
cbuffer._VolumeCells = volumeSettings.volumeGridResolution * Vector3.one;
|
||||
cbuffer._VolumeWorldMin = volumeSettings.volumeWorldCenter - volumeSettings.volumeWorldExtent;
|
||||
cbuffer._VolumeWorldMax = volumeSettings.volumeWorldCenter + volumeSettings.volumeWorldExtent;
|
||||
|
||||
cbuffer._PressureFromVelocity = volumeSettings.weighIncompressibleFlow;
|
||||
cbuffer._PressureFromDensity = volumeSettings.weighTargetDensity;
|
||||
cbuffer._TargetDensityFactor = volumeSettings.targetDensityFactor;
|
||||
|
||||
// update boundary shapes
|
||||
cbuffer._BoundaryCapsuleCount = 0;
|
||||
|
@ -631,12 +653,12 @@ namespace Unity.DemoTeam.Hair
|
|||
}
|
||||
|
||||
// update keywords
|
||||
keywords.VOLUME_SUPPORT_CONTRACTION = volumeSettings.supportContraction;
|
||||
keywords.VOLUME_SUPPORT_CONTRACTION = volumeSettings.pressureAllowsAttraction;
|
||||
}
|
||||
|
||||
public static void PushSolverData(CommandBuffer cmd, ComputeShader cs, int kernel, in SolverData solverData)
|
||||
{
|
||||
ConstantBuffer.Push(cmd, solverData.cbuffer, cs, UniformIDs.SolverParams);
|
||||
ConstantBuffer.Push(cmd, solverData.cbuffer, cs, UniformIDs.SolverCBuffer);
|
||||
|
||||
cmd.SetComputeBufferParam(cs, kernel, UniformIDs._Length, solverData.length);
|
||||
cmd.SetComputeBufferParam(cs, kernel, UniformIDs._RootPosition, solverData.rootPosition);
|
||||
|
@ -661,7 +683,7 @@ namespace Unity.DemoTeam.Hair
|
|||
|
||||
public static void PushSolverData(CommandBuffer cmd, Material mat, MaterialPropertyBlock mpb, in SolverData solverData)
|
||||
{
|
||||
ConstantBuffer.Push(cmd, solverData.cbuffer, mat, UniformIDs.SolverParams);
|
||||
ConstantBuffer.Push(cmd, solverData.cbuffer, mat, UniformIDs.SolverCBuffer);
|
||||
|
||||
mpb.SetBuffer(UniformIDs._Length, solverData.length);
|
||||
mpb.SetBuffer(UniformIDs._RootPosition, solverData.rootPosition);
|
||||
|
@ -686,7 +708,7 @@ namespace Unity.DemoTeam.Hair
|
|||
|
||||
public static void PushVolumeData(CommandBuffer cmd, ComputeShader cs, int kernel, in VolumeData volumeData)
|
||||
{
|
||||
ConstantBuffer.Push(cmd, volumeData.cbuffer, cs, UniformIDs.VolumeParams);
|
||||
ConstantBuffer.Push(cmd, volumeData.cbuffer, cs, UniformIDs.VolumeCBuffer);
|
||||
|
||||
cmd.SetComputeBufferParam(cs, kernel, UniformIDs._BoundaryPack, volumeData.boundaryPack);
|
||||
cmd.SetComputeBufferParam(cs, kernel, UniformIDs._BoundaryMatrix, volumeData.boundaryMatrix);
|
||||
|
@ -711,7 +733,7 @@ namespace Unity.DemoTeam.Hair
|
|||
|
||||
public static void PushVolumeData(CommandBuffer cmd, Material mat, MaterialPropertyBlock mpb, in VolumeData volumeData)
|
||||
{
|
||||
ConstantBuffer.Push(cmd, volumeData.cbuffer, mat, UniformIDs.VolumeParams);
|
||||
ConstantBuffer.Push(cmd, volumeData.cbuffer, mat, UniformIDs.VolumeCBuffer);
|
||||
|
||||
mpb.SetBuffer(UniformIDs._BoundaryPack, volumeData.boundaryPack);
|
||||
mpb.SetBuffer(UniformIDs._BoundaryMatrix, volumeData.boundaryMatrix);
|
||||
|
@ -734,7 +756,7 @@ namespace Unity.DemoTeam.Hair
|
|||
CoreUtils.SetKeyword(mat, "VOLUME_SUPPORT_CONTRACTION", volumeData.keywords.VOLUME_SUPPORT_CONTRACTION);
|
||||
}
|
||||
|
||||
public static void InitSolverData(CommandBuffer cmd, ref SolverData solverData, Matrix4x4 rootTransform)
|
||||
public static void InitSolverParticles(CommandBuffer cmd, in SolverData solverData, Matrix4x4 rootTransform)
|
||||
{
|
||||
var solverDataCopy = solverData;
|
||||
{
|
||||
|
@ -821,9 +843,9 @@ namespace Unity.DemoTeam.Hair
|
|||
|
||||
private static void StepVolumeData_Clear(CommandBuffer cmd, ref VolumeData volumeData, in VolumeSettings volumeSettings)
|
||||
{
|
||||
int numX = volumeSettings.volumeResolution / 8;
|
||||
int numY = volumeSettings.volumeResolution / 8;
|
||||
int numZ = volumeSettings.volumeResolution;
|
||||
int numX = volumeSettings.volumeGridResolution / 8;
|
||||
int numY = volumeSettings.volumeGridResolution / 8;
|
||||
int numZ = volumeSettings.volumeGridResolution;
|
||||
|
||||
// clear
|
||||
using (new ProfilingScope(cmd, MarkersGPU.Volume_0_Clear))
|
||||
|
@ -844,7 +866,7 @@ namespace Unity.DemoTeam.Hair
|
|||
// accumulate
|
||||
switch (volumeSettings.volumeSplatMethod)
|
||||
{
|
||||
case VolumeSettings.Method.Compute:
|
||||
case VolumeSettings.SplatMethod.Compute:
|
||||
{
|
||||
using (new ProfilingScope(cmd, MarkersGPU.Volume_1_Splat))
|
||||
{
|
||||
|
@ -855,7 +877,7 @@ namespace Unity.DemoTeam.Hair
|
|||
}
|
||||
break;
|
||||
|
||||
case VolumeSettings.Method.ComputeSplit:
|
||||
case VolumeSettings.SplatMethod.ComputeSplit:
|
||||
{
|
||||
using (new ProfilingScope(cmd, MarkersGPU.Volume_1_SplatDensity))
|
||||
{
|
||||
|
@ -881,7 +903,7 @@ namespace Unity.DemoTeam.Hair
|
|||
}
|
||||
break;
|
||||
|
||||
case VolumeSettings.Method.Rasterization:
|
||||
case VolumeSettings.SplatMethod.Rasterization:
|
||||
{
|
||||
using (new ProfilingScope(cmd, MarkersGPU.Volume_1_SplatByRasterization))
|
||||
{
|
||||
|
@ -893,7 +915,7 @@ namespace Unity.DemoTeam.Hair
|
|||
}
|
||||
break;
|
||||
|
||||
case VolumeSettings.Method.RasterizationNoGS:
|
||||
case VolumeSettings.SplatMethod.RasterizationNoGS:
|
||||
{
|
||||
using (new ProfilingScope(cmd, MarkersGPU.Volume_1_SplatByRasterizationNoGS))
|
||||
{
|
||||
|
@ -909,15 +931,15 @@ namespace Unity.DemoTeam.Hair
|
|||
|
||||
private static void StepVolumeData_Resolve(CommandBuffer cmd, ref VolumeData volumeData, in VolumeSettings volumeSettings)
|
||||
{
|
||||
int numX = volumeSettings.volumeResolution / 8;
|
||||
int numY = volumeSettings.volumeResolution / 8;
|
||||
int numZ = volumeSettings.volumeResolution;
|
||||
int numX = volumeSettings.volumeGridResolution / 8;
|
||||
int numY = volumeSettings.volumeGridResolution / 8;
|
||||
int numZ = volumeSettings.volumeGridResolution;
|
||||
|
||||
// resolve accumulated
|
||||
switch (volumeSettings.volumeSplatMethod)
|
||||
{
|
||||
case VolumeSettings.Method.Compute:
|
||||
case VolumeSettings.Method.ComputeSplit:
|
||||
case VolumeSettings.SplatMethod.Compute:
|
||||
case VolumeSettings.SplatMethod.ComputeSplit:
|
||||
{
|
||||
using (new ProfilingScope(cmd, MarkersGPU.Volume_2_Resolve))
|
||||
{
|
||||
|
@ -927,8 +949,8 @@ namespace Unity.DemoTeam.Hair
|
|||
}
|
||||
break;
|
||||
|
||||
case VolumeSettings.Method.Rasterization:
|
||||
case VolumeSettings.Method.RasterizationNoGS:
|
||||
case VolumeSettings.SplatMethod.Rasterization:
|
||||
case VolumeSettings.SplatMethod.RasterizationNoGS:
|
||||
{
|
||||
using (new ProfilingScope(cmd, MarkersGPU.Volume_2_ResolveFromRasterization))
|
||||
{
|
||||
|
@ -1070,7 +1092,7 @@ namespace Unity.DemoTeam.Hair
|
|||
//TODO move elsewhere
|
||||
//maybe 'HairSimDataUtility' ?
|
||||
|
||||
public static Vector3 GetCellSize(in VolumeParams volumeParams)
|
||||
public static Vector3 GetCellSize(in VolumeCBuffer volumeParams)
|
||||
{
|
||||
var cellSize = new Vector3(
|
||||
(volumeParams._VolumeWorldMax.x - volumeParams._VolumeWorldMin.x) / volumeParams._VolumeCells.x,
|
||||
|
@ -1079,23 +1101,23 @@ namespace Unity.DemoTeam.Hair
|
|||
return cellSize;
|
||||
}
|
||||
|
||||
public static float GetCellVolume(in VolumeParams volumeParams)
|
||||
public static float GetCellVolume(in VolumeCBuffer volumeParams)
|
||||
{
|
||||
var cellSize = GetCellSize(volumeParams);
|
||||
return cellSize.x * cellSize.y * cellSize.z;
|
||||
}
|
||||
|
||||
public static int GetCellCount(in VolumeParams volumeParams)
|
||||
public static int GetCellCount(in VolumeCBuffer volumeParams)
|
||||
{
|
||||
return (int)volumeParams._VolumeCells.x * (int)volumeParams._VolumeCells.y * (int)volumeParams._VolumeCells.z;
|
||||
}
|
||||
|
||||
public static Vector3 GetVolumeCenter(in VolumeParams volumeParams)
|
||||
public static Vector3 GetVolumeCenter(in VolumeCBuffer volumeParams)
|
||||
{
|
||||
return (volumeParams._VolumeWorldMax + volumeParams._VolumeWorldMin) * 0.5f;
|
||||
}
|
||||
|
||||
public static Vector3 GetVolumeExtent(in VolumeParams volumeParams)
|
||||
public static Vector3 GetVolumeExtent(in VolumeCBuffer volumeParams)
|
||||
{
|
||||
return (volumeParams._VolumeWorldMax - volumeParams._VolumeWorldMin) * 0.5f;
|
||||
}
|
||||
|
|
|
@ -421,9 +421,9 @@ void KVolumeDivergence(
|
|||
_VolumeDivergence[worldIdx] = 0.0;
|
||||
#elif VOLUME_AIR_CELL_ZERO_DIVERGENCE
|
||||
#if VOLUME_REST_AT_ZERO
|
||||
_VolumeDivergence[worldIdx] = 0.0 - max(0.0, rho / rho0 - 1.0) * (_PressureFromDensity);
|
||||
_VolumeDivergence[worldIdx] = 0.0 - max(0.0, rho / rho0 - 1.0) * (_TargetDensityFactor);
|
||||
#else
|
||||
_VolumeDivergence[worldIdx] = 0.0 - (rho / rho0 - 1.0) * (_PressureFromDensity);
|
||||
_VolumeDivergence[worldIdx] = 0.0 - (rho / rho0 - 1.0) * (_TargetDensityFactor);
|
||||
#endif
|
||||
#else
|
||||
_VolumeDivergence[worldIdx] = div;
|
||||
|
@ -433,9 +433,9 @@ void KVolumeDivergence(
|
|||
#endif
|
||||
{
|
||||
#if VOLUME_REST_AT_ZERO
|
||||
_VolumeDivergence[worldIdx] = min(0.0, div - (rho / rho0 - 1.0) * (_PressureFromDensity));
|
||||
_VolumeDivergence[worldIdx] = min(0.0, div - (rho / rho0 - 1.0) * (_TargetDensityFactor));
|
||||
#else
|
||||
_VolumeDivergence[worldIdx] = div - (rho / rho0 - 1.0) * (_PressureFromDensity);
|
||||
_VolumeDivergence[worldIdx] = div - (rho / rho0 - 1.0) * (_TargetDensityFactor);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -466,9 +466,9 @@ void KVolumePressureEOS(
|
|||
#endif
|
||||
{
|
||||
#if VOLUME_REST_AT_ZERO
|
||||
_VolumePressure[worldIdx] = max(0.0, rho / rho0 - 1.0) * (_PressureFromDensity * VolumeWorldCellSize().x * VolumeWorldCellSize().x);;
|
||||
_VolumePressure[worldIdx] = max(0.0, rho / rho0 - 1.0) * (_TargetDensityFactor * VolumeWorldCellSize().x * VolumeWorldCellSize().x);;
|
||||
#else
|
||||
_VolumePressure[worldIdx] = (rho / rho0 - 1.0) * (_PressureFromDensity * VolumeWorldCellSize().x * VolumeWorldCellSize().x);
|
||||
_VolumePressure[worldIdx] = (rho / rho0 - 1.0) * (_TargetDensityFactor * VolumeWorldCellSize().x * VolumeWorldCellSize().x);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ namespace Unity.DemoTeam.Hair
|
|||
{
|
||||
public struct SolverData
|
||||
{
|
||||
public SolverParams cbuffer;
|
||||
public SolverCBuffer cbuffer;
|
||||
|
||||
public ComputeBuffer length;
|
||||
public ComputeBuffer rootPosition;
|
||||
|
@ -28,7 +28,7 @@ namespace Unity.DemoTeam.Hair
|
|||
|
||||
public struct VolumeData
|
||||
{
|
||||
public VolumeParams cbuffer;
|
||||
public VolumeCBuffer cbuffer;
|
||||
|
||||
public RenderTexture accuDensity;
|
||||
public RenderTexture accuVelocityX;
|
||||
|
@ -55,7 +55,7 @@ namespace Unity.DemoTeam.Hair
|
|||
}
|
||||
|
||||
[GenerateHLSL(needAccessors = false, generateCBuffer = true)]
|
||||
public struct SolverParams
|
||||
public struct SolverCBuffer
|
||||
{
|
||||
public Matrix4x4 _LocalToWorld;
|
||||
public Matrix4x4 _LocalToWorldInvT;
|
||||
|
@ -82,7 +82,7 @@ namespace Unity.DemoTeam.Hair
|
|||
}
|
||||
|
||||
[GenerateHLSL(needAccessors = false, generateCBuffer = true)]
|
||||
public struct VolumeParams
|
||||
public struct VolumeCBuffer
|
||||
{
|
||||
public Vector3 _VolumeCells;
|
||||
public uint __pad1;
|
||||
|
@ -107,8 +107,7 @@ namespace Unity.DemoTeam.Hair
|
|||
_VolumeWorldMax = Q
|
||||
*/
|
||||
|
||||
public float _PressureFromVelocity;
|
||||
public float _PressureFromDensity;
|
||||
public float _TargetDensityFactor;
|
||||
|
||||
public int _BoundaryCapsuleCount;
|
||||
public int _BoundarySphereCount;
|
||||
|
|
|
@ -4,9 +4,9 @@
|
|||
|
||||
#ifndef HAIRSIMDATA_CS_HLSL
|
||||
#define HAIRSIMDATA_CS_HLSL
|
||||
// Generated from Unity.DemoTeam.Hair.HairSim+SolverParams
|
||||
// Generated from Unity.DemoTeam.Hair.HairSim+SolverCBuffer
|
||||
// PackingRules = Exact
|
||||
CBUFFER_START(SolverParams)
|
||||
CBUFFER_START(SolverCBuffer)
|
||||
float4x4 _LocalToWorld;
|
||||
float4x4 _LocalToWorldInvT;
|
||||
uint _StrandCount;
|
||||
|
@ -27,17 +27,16 @@ CBUFFER_START(SolverParams)
|
|||
float _BendingCurvature;
|
||||
CBUFFER_END
|
||||
|
||||
// Generated from Unity.DemoTeam.Hair.HairSim+VolumeParams
|
||||
// Generated from Unity.DemoTeam.Hair.HairSim+VolumeCBuffer
|
||||
// PackingRules = Exact
|
||||
CBUFFER_START(VolumeParams)
|
||||
CBUFFER_START(VolumeCBuffer)
|
||||
float3 _VolumeCells;
|
||||
uint __pad1;
|
||||
float3 _VolumeWorldMin;
|
||||
uint __pad2;
|
||||
float3 _VolumeWorldMax;
|
||||
uint __pad3;
|
||||
float _PressureFromVelocity;
|
||||
float _PressureFromDensity;
|
||||
float _TargetDensityFactor;
|
||||
int _BoundaryCapsuleCount;
|
||||
int _BoundarySphereCount;
|
||||
int _BoundaryTorusCount;
|
||||
|
|
Двоичные данные
Samples/HairSim_Demo/HairStyles/Groom.asset
Двоичные данные
Samples/HairSim_Demo/HairStyles/Groom.asset
Двоичный файл не отображается.
|
@ -415,13 +415,13 @@ Transform:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 88329051}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.8, z: -4}
|
||||
m_LocalRotation: {x: -0, y: -0.9669057, z: -0, w: -0.255134}
|
||||
m_LocalPosition: {x: -0.546, y: 0.469, z: 1.335}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: -209.563, z: 0}
|
||||
--- !u!114 &88329055
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -1038,45 +1038,6 @@ MonoBehaviour:
|
|||
position: 65.778755
|
||||
extent: {x: 0, y: 0, z: 0.2}
|
||||
period: 1.5707963
|
||||
--- !u!1 &382623229
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 382623230}
|
||||
- component: {fileID: 382623231}
|
||||
m_Layer: 0
|
||||
m_Name: Roots:0
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &382623230
|
||||
Transform:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 382623229}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1558196476}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &382623231
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 382623229}
|
||||
m_Mesh: {fileID: -454972750445034546, guid: 1926e250fa4207b458e46ea322aa682e, type: 2}
|
||||
--- !u!1 &412194662
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -1490,295 +1451,13 @@ Transform:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 435694557}
|
||||
m_LocalRotation: {x: 0.546275, y: 0.3696522, z: -0.75162214, w: -0.0022282538}
|
||||
m_LocalPosition: {x: -0.685, y: 1.068, z: -3.007}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_LocalRotation: {x: 0.91893464, y: 0.1726537, z: 0.13751717, w: 0.32686207}
|
||||
m_LocalPosition: {x: -1.203, y: 0.547, z: -1.985}
|
||||
m_LocalScale: {x: 0.49978, y: 0.49978, z: 0.49978}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 693103309}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 33.59, y: -81.03, z: -209.264}
|
||||
--- !u!21 &583229243
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: HairMaterial
|
||||
m_Shader: {fileID: -6465566751694194690, guid: 2fa8c2da3a58a3b49be5441117c20876, type: 3}
|
||||
m_ShaderKeywords: ENABLE_DISTANCE ENABLE_DISTANCE_LRA HAIRSIMVERTEX_ENABLE_POSITION
|
||||
LAYOUT_INTERLEAVED _DISABLE_SSR_TRANSPARENT
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 2225
|
||||
stringTagMap:
|
||||
MotionVector: User
|
||||
disabledShaderPasses:
|
||||
- DistortionVectors
|
||||
- RayTracingPrepass
|
||||
- TransparentDepthPrepass
|
||||
- TransparentDepthPostpass
|
||||
- TransparentBackface
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _AnisotropyMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BaseColorMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BentNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BentNormalMapOS:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _CoatMaskMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DistortionVectorMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissiveColorMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _HeightMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _IridescenceMaskMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _IridescenceThicknessMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MaskMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _NormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _NormalMapOS:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecularColorMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SubsurfaceMaskMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _TangentMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _TangentMapOS:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ThicknessMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _TransmittanceColorMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- BOOLEAN_58B50922201C4296ADCD3604F1135012: 1
|
||||
- BOOLEAN_69B014B20E2848539F679A29B317D5BD: 0
|
||||
- Boolean_f904f09dbf504d518c3d225aff57a5df: 1
|
||||
- Vector1_20a47d405fd34354a347258fdfeff805: 0
|
||||
- Vector1_2e12ccf506a14853b660778272a7d4f1: 0
|
||||
- Vector1_3c480a7375e14916a17cfbcc2326c547: 0
|
||||
- Vector1_4fc16fc45ab340f28a9dc98fc33b1c20: 0.666
|
||||
- Vector1_89223a4ebb3c4ef4a2f9ad915e0c716e: 1
|
||||
- Vector1_918d42749deb40f889304b01221663a8: 0.666
|
||||
- Vector1_db946e576f5a49df85d4ab11669cc45a: -0.234
|
||||
- Vector1_fa9e7a8f18104e3b8d84eda52db629c8: 0.5
|
||||
- _AORemapMax: 1
|
||||
- _AORemapMin: 0
|
||||
- _ATDistance: 1
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlbedoAffectEmissive: 0
|
||||
- _AlphaCutoff: 0.453
|
||||
- _AlphaCutoffEnable: 0
|
||||
- _AlphaCutoffPostpass: 0.5
|
||||
- _AlphaCutoffPrepass: 0.5
|
||||
- _AlphaCutoffShadow: 0.5
|
||||
- _AlphaDstBlend: 0
|
||||
- _AlphaSrcBlend: 1
|
||||
- _AlphaToMask: 0
|
||||
- _AlphaToMaskInspectorValue: 0
|
||||
- _Anisotropy: 0
|
||||
- _BlendMode: 0
|
||||
- _CoatMask: 0
|
||||
- _CullMode: 2
|
||||
- _CullModeForward: 2
|
||||
- _Cutoff: 0.453
|
||||
- _DepthOffsetEnable: 0
|
||||
- _DetailAlbedoScale: 1
|
||||
- _DetailNormalScale: 1
|
||||
- _DetailSmoothnessScale: 1
|
||||
- _DiffusionProfile: 0
|
||||
- _DiffusionProfileHash: 2.969268
|
||||
- _DisplacementLockObjectScale: 1
|
||||
- _DisplacementLockTilingScale: 1
|
||||
- _DisplacementMode: 0
|
||||
- _DistortionBlendMode: 0
|
||||
- _DistortionBlurBlendMode: 0
|
||||
- _DistortionBlurDstBlend: 1
|
||||
- _DistortionBlurRemapMax: 1
|
||||
- _DistortionBlurRemapMin: 0
|
||||
- _DistortionBlurScale: 1
|
||||
- _DistortionBlurSrcBlend: 1
|
||||
- _DistortionDepthTest: 1
|
||||
- _DistortionDstBlend: 1
|
||||
- _DistortionEnable: 0
|
||||
- _DistortionScale: 1
|
||||
- _DistortionSrcBlend: 1
|
||||
- _DistortionVectorBias: -1
|
||||
- _DistortionVectorScale: 2
|
||||
- _DoubleSidedEnable: 0
|
||||
- _DoubleSidedNormalMode: 2
|
||||
- _DstBlend: 0
|
||||
- _EmissiveColorMode: 1
|
||||
- _EmissiveExposureWeight: 1
|
||||
- _EmissiveIntensity: 1
|
||||
- _EmissiveIntensityUnit: 0
|
||||
- _EnableBlendModePreserveSpecularLighting: 1
|
||||
- _EnableFogOnTransparent: 1
|
||||
- _EnableGeometricSpecularAA: 0
|
||||
- _EnergyConservingSpecularColor: 1
|
||||
- _HeightAmplitude: 0.02
|
||||
- _HeightCenter: 0.5
|
||||
- _HeightMapParametrization: 0
|
||||
- _HeightMax: 1
|
||||
- _HeightMin: -1
|
||||
- _HeightOffset: 0
|
||||
- _HeightPoMAmplitude: 2
|
||||
- _HeightTessAmplitude: 2
|
||||
- _HeightTessCenter: 0.5
|
||||
- _InvTilingScale: 1
|
||||
- _Ior: 1.5
|
||||
- _IridescenceMask: 1
|
||||
- _IridescenceThickness: 1
|
||||
- _LinkDetailsWithBase: 1
|
||||
- _MaterialID: 1
|
||||
- _Metallic: 0.227
|
||||
- _NormalMapSpace: 0
|
||||
- _NormalScale: 2.64
|
||||
- _OpaqueCullMode: 2
|
||||
- _PPDLodThreshold: 5
|
||||
- _PPDMaxSamples: 15
|
||||
- _PPDMinSamples: 5
|
||||
- _PPDPrimitiveLength: 1
|
||||
- _PPDPrimitiveWidth: 1
|
||||
- _RayTracing: 0
|
||||
- _ReceivesSSR: 1
|
||||
- _ReceivesSSRTransparent: 0
|
||||
- _RefractionModel: 0
|
||||
- _RenderQueueType: 1
|
||||
- _RequireSplitLighting: 0
|
||||
- _SSRefractionProjectionModel: 0
|
||||
- _Smoothness: 0.329
|
||||
- _SmoothnessRemapMax: 1
|
||||
- _SmoothnessRemapMin: 0
|
||||
- _SpecularAAScreenSpaceVariance: 0.1
|
||||
- _SpecularAAThreshold: 0.2
|
||||
- _SpecularOcclusionMode: 1
|
||||
- _SrcBlend: 1
|
||||
- _StencilRef: 0
|
||||
- _StencilRefDepth: 8
|
||||
- _StencilRefDistortionVec: 4
|
||||
- _StencilRefGBuffer: 10
|
||||
- _StencilRefMV: 40
|
||||
- _StencilWriteMask: 6
|
||||
- _StencilWriteMaskDepth: 8
|
||||
- _StencilWriteMaskDistortionVec: 4
|
||||
- _StencilWriteMaskGBuffer: 14
|
||||
- _StencilWriteMaskMV: 40
|
||||
- _SubsurfaceMask: 1
|
||||
- _SupportDecals: 1
|
||||
- _SurfaceType: 0
|
||||
- _TexWorldScale: 1
|
||||
- _TexWorldScaleEmissive: 1
|
||||
- _Thickness: 1
|
||||
- _TransmissionEnable: 1
|
||||
- _TransparentBackfaceEnable: 0
|
||||
- _TransparentCullMode: 2
|
||||
- _TransparentDepthPostpassEnable: 0
|
||||
- _TransparentDepthPrepassEnable: 0
|
||||
- _TransparentSortPriority: 0
|
||||
- _TransparentWritingMotionVec: 0
|
||||
- _TransparentZWrite: 0
|
||||
- _UVBase: 0
|
||||
- _UVDetail: 0
|
||||
- _UVEmissive: 0
|
||||
- _UseEmissiveIntensity: 0
|
||||
- _UseShadowThreshold: 0
|
||||
- _ZTestDepthEqualForOpaque: 3
|
||||
- _ZTestGBuffer: 4
|
||||
- _ZTestModeDistortion: 4
|
||||
- _ZTestTransparent: 4
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- Color_176191224d9a4233962725cd1ff09079: {r: 1, g: 0.70980394, b: 0.40000004, a: 0}
|
||||
- Color_62c64135deeb4c0f8f8dd2dd4d258618: {r: 0.5254902, g: 0.34509805, b: 0.33333334, a: 1}
|
||||
- Color_808fa7985ea04aae8fd9e29e269a6cbe: {r: 1, g: 0.71, b: 0.39999998, a: 0}
|
||||
- Color_ef1f857a65f143afae0a6362fd9a650e: {r: 1, g: 0.70980394, b: 0.40000004, a: 1}
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _DiffusionProfileAsset: {r: 0.001549049, g: 6.537953e-17, b: 78.9151, a: 0.00037284626}
|
||||
- _DoubleSidedConstants: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _InvPrimScale: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0}
|
||||
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0}
|
||||
- _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
|
||||
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}
|
||||
- _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
m_LocalEulerAnglesHint: {x: 33.59, y: -206.033, z: -209.264}
|
||||
--- !u!1 &661927249
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -2195,6 +1874,288 @@ MonoBehaviour:
|
|||
m_EditorClassIdentifier:
|
||||
type: 1
|
||||
outerRadius: 0
|
||||
--- !u!21 &965861407
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: HairMaterial
|
||||
m_Shader: {fileID: -6465566751694194690, guid: 2fa8c2da3a58a3b49be5441117c20876, type: 3}
|
||||
m_ShaderKeywords: ENABLE_DISTANCE ENABLE_DISTANCE_LRA HAIRSIMVERTEX_ENABLE_POSITION
|
||||
LAYOUT_INTERLEAVED _DISABLE_SSR_TRANSPARENT
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 2225
|
||||
stringTagMap:
|
||||
MotionVector: User
|
||||
disabledShaderPasses:
|
||||
- DistortionVectors
|
||||
- RayTracingPrepass
|
||||
- TransparentDepthPrepass
|
||||
- TransparentDepthPostpass
|
||||
- TransparentBackface
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _AnisotropyMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BaseColorMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BentNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BentNormalMapOS:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _CoatMaskMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DistortionVectorMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissiveColorMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _HeightMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _IridescenceMaskMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _IridescenceThicknessMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MaskMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _NormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _NormalMapOS:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecularColorMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SubsurfaceMaskMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _TangentMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _TangentMapOS:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ThicknessMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _TransmittanceColorMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- BOOLEAN_58B50922201C4296ADCD3604F1135012: 1
|
||||
- BOOLEAN_69B014B20E2848539F679A29B317D5BD: 0
|
||||
- Boolean_f904f09dbf504d518c3d225aff57a5df: 1
|
||||
- Vector1_20a47d405fd34354a347258fdfeff805: 0
|
||||
- Vector1_2e12ccf506a14853b660778272a7d4f1: 0
|
||||
- Vector1_3c480a7375e14916a17cfbcc2326c547: 0
|
||||
- Vector1_4fc16fc45ab340f28a9dc98fc33b1c20: 0.666
|
||||
- Vector1_89223a4ebb3c4ef4a2f9ad915e0c716e: 1
|
||||
- Vector1_918d42749deb40f889304b01221663a8: 0.666
|
||||
- Vector1_db946e576f5a49df85d4ab11669cc45a: -0.234
|
||||
- Vector1_fa9e7a8f18104e3b8d84eda52db629c8: 0.5
|
||||
- _AORemapMax: 1
|
||||
- _AORemapMin: 0
|
||||
- _ATDistance: 1
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlbedoAffectEmissive: 0
|
||||
- _AlphaCutoff: 0.453
|
||||
- _AlphaCutoffEnable: 0
|
||||
- _AlphaCutoffPostpass: 0.5
|
||||
- _AlphaCutoffPrepass: 0.5
|
||||
- _AlphaCutoffShadow: 0.5
|
||||
- _AlphaDstBlend: 0
|
||||
- _AlphaSrcBlend: 1
|
||||
- _AlphaToMask: 0
|
||||
- _AlphaToMaskInspectorValue: 0
|
||||
- _Anisotropy: 0
|
||||
- _BlendMode: 0
|
||||
- _CoatMask: 0
|
||||
- _CullMode: 2
|
||||
- _CullModeForward: 2
|
||||
- _Cutoff: 0.453
|
||||
- _DepthOffsetEnable: 0
|
||||
- _DetailAlbedoScale: 1
|
||||
- _DetailNormalScale: 1
|
||||
- _DetailSmoothnessScale: 1
|
||||
- _DiffusionProfile: 0
|
||||
- _DiffusionProfileHash: 2.969268
|
||||
- _DisplacementLockObjectScale: 1
|
||||
- _DisplacementLockTilingScale: 1
|
||||
- _DisplacementMode: 0
|
||||
- _DistortionBlendMode: 0
|
||||
- _DistortionBlurBlendMode: 0
|
||||
- _DistortionBlurDstBlend: 1
|
||||
- _DistortionBlurRemapMax: 1
|
||||
- _DistortionBlurRemapMin: 0
|
||||
- _DistortionBlurScale: 1
|
||||
- _DistortionBlurSrcBlend: 1
|
||||
- _DistortionDepthTest: 1
|
||||
- _DistortionDstBlend: 1
|
||||
- _DistortionEnable: 0
|
||||
- _DistortionScale: 1
|
||||
- _DistortionSrcBlend: 1
|
||||
- _DistortionVectorBias: -1
|
||||
- _DistortionVectorScale: 2
|
||||
- _DoubleSidedEnable: 0
|
||||
- _DoubleSidedNormalMode: 2
|
||||
- _DstBlend: 0
|
||||
- _EmissiveColorMode: 1
|
||||
- _EmissiveExposureWeight: 1
|
||||
- _EmissiveIntensity: 1
|
||||
- _EmissiveIntensityUnit: 0
|
||||
- _EnableBlendModePreserveSpecularLighting: 1
|
||||
- _EnableFogOnTransparent: 1
|
||||
- _EnableGeometricSpecularAA: 0
|
||||
- _EnergyConservingSpecularColor: 1
|
||||
- _HeightAmplitude: 0.02
|
||||
- _HeightCenter: 0.5
|
||||
- _HeightMapParametrization: 0
|
||||
- _HeightMax: 1
|
||||
- _HeightMin: -1
|
||||
- _HeightOffset: 0
|
||||
- _HeightPoMAmplitude: 2
|
||||
- _HeightTessAmplitude: 2
|
||||
- _HeightTessCenter: 0.5
|
||||
- _InvTilingScale: 1
|
||||
- _Ior: 1.5
|
||||
- _IridescenceMask: 1
|
||||
- _IridescenceThickness: 1
|
||||
- _LinkDetailsWithBase: 1
|
||||
- _MaterialID: 1
|
||||
- _Metallic: 0.227
|
||||
- _NormalMapSpace: 0
|
||||
- _NormalScale: 2.64
|
||||
- _OpaqueCullMode: 2
|
||||
- _PPDLodThreshold: 5
|
||||
- _PPDMaxSamples: 15
|
||||
- _PPDMinSamples: 5
|
||||
- _PPDPrimitiveLength: 1
|
||||
- _PPDPrimitiveWidth: 1
|
||||
- _RayTracing: 0
|
||||
- _ReceivesSSR: 1
|
||||
- _ReceivesSSRTransparent: 0
|
||||
- _RefractionModel: 0
|
||||
- _RenderQueueType: 1
|
||||
- _RequireSplitLighting: 0
|
||||
- _SSRefractionProjectionModel: 0
|
||||
- _Smoothness: 0.329
|
||||
- _SmoothnessRemapMax: 1
|
||||
- _SmoothnessRemapMin: 0
|
||||
- _SpecularAAScreenSpaceVariance: 0.1
|
||||
- _SpecularAAThreshold: 0.2
|
||||
- _SpecularOcclusionMode: 1
|
||||
- _SrcBlend: 1
|
||||
- _StencilRef: 0
|
||||
- _StencilRefDepth: 8
|
||||
- _StencilRefDistortionVec: 4
|
||||
- _StencilRefGBuffer: 10
|
||||
- _StencilRefMV: 40
|
||||
- _StencilWriteMask: 6
|
||||
- _StencilWriteMaskDepth: 8
|
||||
- _StencilWriteMaskDistortionVec: 4
|
||||
- _StencilWriteMaskGBuffer: 14
|
||||
- _StencilWriteMaskMV: 40
|
||||
- _SubsurfaceMask: 1
|
||||
- _SupportDecals: 1
|
||||
- _SurfaceType: 0
|
||||
- _TexWorldScale: 1
|
||||
- _TexWorldScaleEmissive: 1
|
||||
- _Thickness: 1
|
||||
- _TransmissionEnable: 1
|
||||
- _TransparentBackfaceEnable: 0
|
||||
- _TransparentCullMode: 2
|
||||
- _TransparentDepthPostpassEnable: 0
|
||||
- _TransparentDepthPrepassEnable: 0
|
||||
- _TransparentSortPriority: 0
|
||||
- _TransparentWritingMotionVec: 0
|
||||
- _TransparentZWrite: 0
|
||||
- _UVBase: 0
|
||||
- _UVDetail: 0
|
||||
- _UVEmissive: 0
|
||||
- _UseEmissiveIntensity: 0
|
||||
- _UseShadowThreshold: 0
|
||||
- _ZTestDepthEqualForOpaque: 3
|
||||
- _ZTestGBuffer: 4
|
||||
- _ZTestModeDistortion: 4
|
||||
- _ZTestTransparent: 4
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- Color_176191224d9a4233962725cd1ff09079: {r: 1, g: 0.70980394, b: 0.40000004, a: 0}
|
||||
- Color_62c64135deeb4c0f8f8dd2dd4d258618: {r: 0.5254902, g: 0.34509805, b: 0.33333334, a: 1}
|
||||
- Color_808fa7985ea04aae8fd9e29e269a6cbe: {r: 1, g: 0.71, b: 0.39999998, a: 0}
|
||||
- Color_ef1f857a65f143afae0a6362fd9a650e: {r: 1, g: 0.70980394, b: 0.40000004, a: 1}
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _DiffusionProfileAsset: {r: 0.001549049, g: 6.537953e-17, b: 78.9151, a: 0.00037284626}
|
||||
- _DoubleSidedConstants: {r: 1, g: 1, b: 1, a: 0}
|
||||
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _InvPrimScale: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0}
|
||||
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0}
|
||||
- _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
|
||||
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}
|
||||
- _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
--- !u!1 &1011175219
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -2680,7 +2641,7 @@ Transform:
|
|||
m_Father: {fileID: 693103309}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: -488.577, z: 0}
|
||||
--- !u!1 &1558196475
|
||||
--- !u!1 &1426011974
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
|
@ -2688,7 +2649,46 @@ GameObject:
|
|||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1558196476}
|
||||
- component: {fileID: 1426011975}
|
||||
- component: {fileID: 1426011976}
|
||||
m_Layer: 0
|
||||
m_Name: Roots:0
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1426011975
|
||||
Transform:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1426011974}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1478803479}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &1426011976
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1426011974}
|
||||
m_Mesh: {fileID: -7005794540788253560, guid: 1926e250fa4207b458e46ea322aa682e, type: 2}
|
||||
--- !u!1 &1478803478
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1478803479}
|
||||
m_Layer: 0
|
||||
m_Name: Group:0
|
||||
m_TagString: Untagged
|
||||
|
@ -2696,22 +2696,103 @@ GameObject:
|
|||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1558196476
|
||||
--- !u!4 &1478803479
|
||||
Transform:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1558196475}
|
||||
m_GameObject: {fileID: 1478803478}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 2038281359}
|
||||
- {fileID: 382623230}
|
||||
- {fileID: 1593862055}
|
||||
- {fileID: 1426011975}
|
||||
m_Father: {fileID: 2037350749}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1593862053
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1593862055}
|
||||
- component: {fileID: 1593862056}
|
||||
- component: {fileID: 1593862054}
|
||||
m_Layer: 0
|
||||
m_Name: Lines:0
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!23 &1593862054
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1593862053}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 257
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 965861407}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!4 &1593862055
|
||||
Transform:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1593862053}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1478803479}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &1593862056
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1593862053}
|
||||
m_Mesh: {fileID: -9484199191433736, guid: 1926e250fa4207b458e46ea322aa682e, type: 2}
|
||||
--- !u!1 &1851342448
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -2998,30 +3079,29 @@ MonoBehaviour:
|
|||
groomAsset: {fileID: 11400000, guid: 1926e250fa4207b458e46ea322aa682e, type: 2}
|
||||
groomAssetQuickEdit: 0
|
||||
groomContainers:
|
||||
- group: {fileID: 1558196475}
|
||||
rootFilter: {fileID: 382623231}
|
||||
lineFilter: {fileID: 2038281360}
|
||||
lineRenderer: {fileID: 2038281358}
|
||||
groomContainersChecksum: 9ad95f84528cc2d1e9359664c31a9380
|
||||
- group: {fileID: 1478803478}
|
||||
rootFilter: {fileID: 1426011976}
|
||||
lineFilter: {fileID: 1593862056}
|
||||
lineRenderer: {fileID: 1593862054}
|
||||
groomContainersChecksum: c0feb65c1c1e14cd277f410c90cdc406
|
||||
settingsRoots:
|
||||
rootsTarget: {fileID: 0}
|
||||
rootsAttached: 0
|
||||
settingsStrands:
|
||||
strandScaling: 0
|
||||
strandDiameter: 0
|
||||
strandMaterial: {fileID: 0}
|
||||
strandRenderer: 0
|
||||
strandScaling: 1
|
||||
simulate: 0
|
||||
solverSettings:
|
||||
strandDiameter: 16.7
|
||||
strandParticleContrib: 2.15
|
||||
strandDiameter: 0.1
|
||||
strandParticleContrib: 0
|
||||
method: 1
|
||||
iterations: 15
|
||||
stiffness: 1
|
||||
kSOR: 1
|
||||
gravity: 1
|
||||
cellPressure: 1
|
||||
cellVelocity: 0.05
|
||||
damping: 0
|
||||
volumeResponse: 1
|
||||
volumeFriction: 0.05
|
||||
gravity: 0.716
|
||||
distance: 1
|
||||
distanceLRA: 1
|
||||
distanceFTL: 0
|
||||
|
@ -3030,16 +3110,17 @@ MonoBehaviour:
|
|||
boundaryFriction: 0.5
|
||||
curvature: 0
|
||||
curvatureCompare: 0
|
||||
curvatureCompareTo: 0
|
||||
curvatureCompareTo: 0.626
|
||||
volumeSettings:
|
||||
volumeResolution: 32
|
||||
volumeSplatMethod: 2
|
||||
pressureIterations: 10
|
||||
weighIncompressibleFlow: 1
|
||||
weighTargetDensity: 1
|
||||
supportContraction: 1
|
||||
volumeWorldCenter: {x: 0.21901168, y: 0.577, z: -0.19486868}
|
||||
volumeWorldExtent: {x: 0.7999063, y: 0.7999063, z: 0.7999063}
|
||||
volumeWorldCenter: {x: 0.28298324, y: 0.577, z: -0.116787575}
|
||||
volumeWorldExtent: {x: 1.3685832, y: 1.3685832, z: 1.3685832}
|
||||
volumeSplatMethod: 1
|
||||
volumeGridResolution: 48
|
||||
pressureIterations: 42
|
||||
pressureAllowsAttraction: 1
|
||||
targetDensity: 0
|
||||
targetDensityFactor: 1
|
||||
boundariesFromPhysics: 1
|
||||
debugSettings:
|
||||
drawParticles: 0
|
||||
drawStrands: 0
|
||||
|
@ -3051,7 +3132,7 @@ MonoBehaviour:
|
|||
drawSliceOffsetX: 0.843
|
||||
drawSliceOffsetY: 0.254
|
||||
drawSliceOffsetZ: 0.496
|
||||
drawSliceDivider: 0.47
|
||||
drawSliceDivider: 0
|
||||
boundaries: []
|
||||
--- !u!4 &2037350749
|
||||
Transform:
|
||||
|
@ -3060,95 +3141,14 @@ Transform:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2037350747}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.219, y: 0.577, z: -0.195}
|
||||
m_LocalScale: {x: 0.1, y: 1, z: 0.1}
|
||||
m_LocalRotation: {x: -0, y: -0.59954786, z: -0, w: 0.8003389}
|
||||
m_LocalPosition: {x: 0.285, y: 0.577, z: -0.1175}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 1558196476}
|
||||
- {fileID: 1478803479}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 10
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &2038281357
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2038281359}
|
||||
- component: {fileID: 2038281360}
|
||||
- component: {fileID: 2038281358}
|
||||
m_Layer: 0
|
||||
m_Name: Lines:0
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!23 &2038281358
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2038281357}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 583229243}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!4 &2038281359
|
||||
Transform:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2038281357}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1558196476}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &2038281360
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 8
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2038281357}
|
||||
m_Mesh: {fileID: -4650721940403172821, guid: 1926e250fa4207b458e46ea322aa682e, type: 2}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: -73.675, z: 0}
|
||||
--- !u!1 &2046897697
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
Загрузка…
Ссылка в новой задаче