mirror of
https://github.com/DCFApixels/Unity-DebugX.git
synced 2025-09-18 01:54:37 +08:00
stash
This commit is contained in:
parent
3d61f68830
commit
cc14a4f3f4
@ -1,6 +1,7 @@
|
||||
//#undef DEBUG
|
||||
using DCFApixels.DebugXCore;
|
||||
using DCFApixels.DebugXCore.Internal;
|
||||
using System.Runtime.InteropServices;
|
||||
using Unity.Collections.LowLevel.Unsafe;
|
||||
using Unity.Jobs;
|
||||
using UnityEngine;
|
||||
@ -190,7 +191,7 @@ namespace DCFApixels
|
||||
[IN(LINE)]
|
||||
public DrawHandler Line(Vector3 start, Vector3 end)
|
||||
{
|
||||
return Gizmo(new WireLineGizmo<UnlitMat>(start, end));
|
||||
return Gizmo(new WireLineGizmo<LineMat>(start, end));
|
||||
}
|
||||
private readonly struct WireLineGizmo<TMat> : IGizmo<WireLineGizmo<TMat>>
|
||||
where TMat : struct, IStaticMaterial
|
||||
@ -315,7 +316,7 @@ namespace DCFApixels
|
||||
}
|
||||
public void Render(CommandBuffer cb)
|
||||
{
|
||||
Material material = _material.GetMaterial();
|
||||
Material material = _material.GetMaterial_SupportCumputeShaders();
|
||||
var items = new GizmosList<UnmanagedGizmoData>(_gizmos.Array, _prepareCount).As<GizmoData>().Items;
|
||||
_materialPropertyBlock.Clear();
|
||||
_jobHandle.Complete();
|
||||
@ -414,7 +415,7 @@ namespace DCFApixels
|
||||
}
|
||||
protected void Render(CommandBuffer cb)
|
||||
{
|
||||
Material material = _material.GetMaterial();
|
||||
Material material = _material.GetMaterial_SupportCumputeShaders();
|
||||
Mesh mesh = _mesh.GetMesh();
|
||||
_materialPropertyBlock.Clear();
|
||||
_jobHandle.Complete();
|
||||
@ -443,14 +444,22 @@ namespace DCFApixels
|
||||
public readonly Vector3 Start;
|
||||
public readonly Vector3 End;
|
||||
}
|
||||
private readonly struct DrawData
|
||||
{
|
||||
public readonly Matrix4x4 Matrix;
|
||||
public readonly Color Color;
|
||||
public DrawData(Matrix4x4 matrix, Color color)
|
||||
{
|
||||
Matrix = matrix;
|
||||
Color = color;
|
||||
}
|
||||
}
|
||||
private struct PrepareJob : IJobParallelFor
|
||||
{
|
||||
[NativeDisableUnsafePtrRestriction]
|
||||
public Gizmo<GizmoData>* Items;
|
||||
[NativeDisableUnsafePtrRestriction]
|
||||
public Matrix4x4* ResultMatrices;
|
||||
[NativeDisableUnsafePtrRestriction]
|
||||
public Vector4* ResultColors;
|
||||
public DrawData* ResultData;
|
||||
public void Execute(int index)
|
||||
{
|
||||
ref readonly var item = ref Items[index];
|
||||
@ -458,18 +467,19 @@ namespace DCFApixels
|
||||
Vector3 halfDiff = (item.Value.End - item.Value.Start) * 0.5f;
|
||||
Vector3 position = item.Value.Start + halfDiff;
|
||||
|
||||
ResultMatrices[index] = Matrix4x4.TRS(position, Quaternion.identity, halfDiff);
|
||||
ResultColors[index] = item.Color;
|
||||
ResultData[index] = new DrawData(Matrix4x4.TRS(position, Quaternion.identity, halfDiff), item.Color);
|
||||
}
|
||||
}
|
||||
private readonly IStaticMesh _mesh = default(WireLineMesh);
|
||||
private readonly IStaticMaterial _material;
|
||||
private readonly MaterialPropertyBlock _materialPropertyBlock;
|
||||
private readonly uint[] _args = new uint[5] { 0, 0, 0, 0, 0 };
|
||||
private readonly GraphicsBuffer _argsBuffer;
|
||||
private GraphicsBuffer _graphicsBuffer;
|
||||
|
||||
private int _buffersLength = 0;
|
||||
|
||||
private PinnedArray<Matrix4x4> _matrices;
|
||||
private PinnedArray<Vector4> _colors;
|
||||
private PinnedArray<DrawData> _drawDatas;
|
||||
private PinnedArray<Gizmo<GizmoData>> _gizmos;
|
||||
|
||||
private JobHandle _jobHandle;
|
||||
@ -480,8 +490,9 @@ namespace DCFApixels
|
||||
_material = material;
|
||||
_materialPropertyBlock = new MaterialPropertyBlock();
|
||||
|
||||
_matrices = PinnedArray<Matrix4x4>.Pin(DummyArray<Matrix4x4>.Get());
|
||||
_colors = PinnedArray<Vector4>.Pin(DummyArray<Vector4>.Get());
|
||||
_drawDatas = PinnedArray<DrawData>.Pin(DummyArray<DrawData>.Get());
|
||||
|
||||
_argsBuffer = new GraphicsBuffer(GraphicsBuffer.Target.IndirectArguments, 1, _args.Length * sizeof(uint));
|
||||
}
|
||||
public virtual int ExecuteOrder => _material.GetExecuteOrder();
|
||||
public virtual bool IsStaticRender => true;
|
||||
@ -494,13 +505,12 @@ namespace DCFApixels
|
||||
|
||||
if (_buffersLength < count)
|
||||
{
|
||||
if (_matrices.Array != null)
|
||||
if (_drawDatas.Array != null)
|
||||
{
|
||||
_matrices.Dispose();
|
||||
_colors.Dispose();
|
||||
_drawDatas.Dispose();
|
||||
}
|
||||
_matrices = PinnedArray<Matrix4x4>.Pin(new Matrix4x4[DebugXUtility.NextPow2(count)]);
|
||||
_colors = PinnedArray<Vector4>.Pin(new Vector4[DebugXUtility.NextPow2(count)]);
|
||||
_drawDatas = PinnedArray<DrawData>.Pin(new DrawData[DebugXUtility.NextPow2(count)]);
|
||||
AllocateGraphicsBuffer(DebugXUtility.NextPow2(count));
|
||||
_buffersLength = count;
|
||||
}
|
||||
if (ReferenceEquals(_gizmos.Array, items) == false)
|
||||
@ -515,32 +525,56 @@ namespace DCFApixels
|
||||
var job = new PrepareJob
|
||||
{
|
||||
Items = _gizmos.Ptr,
|
||||
ResultMatrices = _matrices.Ptr,
|
||||
ResultColors = _colors.Ptr,
|
||||
ResultData = _drawDatas.Ptr,
|
||||
};
|
||||
_jobHandle = job.Schedule(count, 16);
|
||||
_jobHandle = job.Schedule(count, 64);
|
||||
}
|
||||
|
||||
|
||||
private readonly static int _BufferPropertyID = Shader.PropertyToID("_DataBuffer");
|
||||
public void Render(CommandBuffer cb)
|
||||
{
|
||||
Material material = _material.GetMaterial();
|
||||
Mesh mesh = _mesh.GetMesh();
|
||||
_materialPropertyBlock.Clear();
|
||||
_jobHandle.Complete();
|
||||
|
||||
if (IsSupportsComputeShaders)
|
||||
{
|
||||
_materialPropertyBlock.SetVectorArray(ColorPropertyID, _colors.Array);
|
||||
cb.DrawMeshInstanced(mesh, 0, material, -1, _matrices.Array, _prepareCount, _materialPropertyBlock);
|
||||
Material material = _material.GetMaterial_SupportCumputeShaders();
|
||||
//_materialPropertyBlock.SetVectorArray(ColorPropertyID, _colors.Array);
|
||||
//cb.DrawMeshInstanced(mesh, 0, material, -1, _matrices.Array, _prepareCount, _materialPropertyBlock);
|
||||
|
||||
//uint[] args = new uint[5] { mesh.GetIndexCount(0), (uint)_prepareCount, 0, 0, 0 };
|
||||
//_argsBuffer.SetData(args);
|
||||
|
||||
_graphicsBuffer.SetData(_drawDatas.Array);
|
||||
_materialPropertyBlock.SetBuffer(_BufferPropertyID, _graphicsBuffer);
|
||||
|
||||
//cb.DrawMeshInstancedIndirect(mesh, 0, material, -1, _argsBuffer, _prepareCount, _materialPropertyBlock);
|
||||
// _prepareCount, _materialPropertyBlock
|
||||
//cb.DrawMeshInstancedIndirect(mesh, 0, material, new Bounds(Vector3.zero, new Vector3(100.0f, 100.0f, 100.0f)), _argsBuffer);
|
||||
|
||||
|
||||
cb.DrawMeshInstancedProcedural(mesh, 0, material, -1, _prepareCount, _materialPropertyBlock);
|
||||
}
|
||||
else
|
||||
{
|
||||
Material material = _material.GetMaterial_Default();
|
||||
for (int i = 0; i < _prepareCount; i++)
|
||||
{
|
||||
_materialPropertyBlock.SetColor(ColorPropertyID, _colors.Ptr[i]);
|
||||
cb.DrawMesh(mesh, _matrices.Ptr[i], material, 0, -1, _materialPropertyBlock);
|
||||
_materialPropertyBlock.SetColor(ColorPropertyID, _drawDatas.Ptr[i].Color);
|
||||
cb.DrawMesh(mesh, _drawDatas.Ptr[i].Matrix, material, 0, -1, _materialPropertyBlock);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void AllocateGraphicsBuffer(int capacity)
|
||||
{
|
||||
_graphicsBuffer?.Dispose();
|
||||
_graphicsBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, capacity, Marshal.SizeOf<DrawData>());
|
||||
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
@ -202,7 +202,7 @@ namespace DCFApixels
|
||||
public void Render(Camera camera, GizmosList<WidthLineGizmo> list, CommandBuffer cb)
|
||||
{
|
||||
if (camera == null) { return; }
|
||||
default(UnlitOverwriteMat).GetMaterial().SetPass(0);
|
||||
default(UnlitOverwriteMat).GetMaterial_SupportCumputeShaders().SetPass(0);
|
||||
GL.Begin(GL.QUADS);
|
||||
Vector3 cameraPosition = camera.transform.position;
|
||||
foreach (ref readonly var item in list)
|
||||
@ -256,7 +256,7 @@ namespace DCFApixels
|
||||
public void Render(Camera camera, GizmosList<WidthOutLineGizmo> list, CommandBuffer cb)
|
||||
{
|
||||
if (camera == null) { return; }
|
||||
default(UnlitOverwriteMat).GetMaterial().SetPass(0);
|
||||
default(UnlitOverwriteMat).GetMaterial_SupportCumputeShaders().SetPass(0);
|
||||
GL.Begin(GL.LINES);
|
||||
var cameraPosition = camera.transform.position;
|
||||
foreach (ref readonly var item in list)
|
||||
@ -318,7 +318,7 @@ namespace DCFApixels
|
||||
{
|
||||
if (camera == null) { return; }
|
||||
GL.PushMatrix();
|
||||
default(UnlitOverwriteMat).GetMaterial().SetPass(0);
|
||||
default(UnlitOverwriteMat).GetMaterial_SupportCumputeShaders().SetPass(0);
|
||||
GL.Begin(GL.LINES);
|
||||
var cameraPosition = camera.transform.position;
|
||||
foreach (ref readonly var item in list)
|
||||
|
@ -392,6 +392,33 @@ namespace DCFApixels
|
||||
[IN(LINE)]
|
||||
public unsafe DrawHandler CubeGrid(Vector3 position, Quaternion rotation, Vector3 size, Vector3Int cells)
|
||||
{
|
||||
//float m, add;
|
||||
//int iMax;
|
||||
//
|
||||
//iMax = (cells.x + 1) / 2;
|
||||
//m = size.x / iMax;
|
||||
//add = (cells.x & 1) == 0 ? m * 0.5f : 0;
|
||||
//for (int i = 0; i < iMax; i++)
|
||||
//{
|
||||
// WireCube(position, rotation, new Vector3(add + i * m, size.y, size.z));
|
||||
//}
|
||||
//
|
||||
//iMax = (cells.y + 1) / 2;
|
||||
//m = size.y / iMax;
|
||||
//add = (cells.y & 1) == 0 ? 0 : m * 0.5f;
|
||||
//for (int i = 0; i < iMax; i++)
|
||||
//{
|
||||
// WireCube(position, rotation, new Vector3(size.x, add + i * m, size.z));
|
||||
//}
|
||||
//
|
||||
//iMax = (cells.z + 1) / 2;
|
||||
//m = size.z / iMax;
|
||||
//add = (cells.z & 1) == 0 ? 0 : m * 0.5f;
|
||||
//for (int i = 0; i < iMax; i++)
|
||||
//{
|
||||
// WireCube(position, rotation, new Vector3(size.x, size.y, add + i * m));
|
||||
//}
|
||||
|
||||
Vector3 halfSize = size / 2f;
|
||||
|
||||
Vector3* vertices = stackalloc Vector3[]
|
||||
|
30
Runtime/Materials/Line.mat
Normal file
30
Runtime/Materials/Line.mat
Normal file
@ -0,0 +1,30 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Line
|
||||
m_Shader: {fileID: 4800000, guid: 4dc765b931552b54b957905b156bae66, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs: []
|
||||
m_Ints: []
|
||||
m_Floats: []
|
||||
m_Colors: []
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
8
Runtime/Materials/Line.mat.meta
Normal file
8
Runtime/Materials/Line.mat.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fce881fda18d0a44fb62c8375d3e2fd4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -172,6 +172,92 @@ MeshRenderer:
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &817216530089604692
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2185866943208229465}
|
||||
- component: {fileID: 7306071439557822573}
|
||||
- component: {fileID: 7642098115862499429}
|
||||
m_Layer: 0
|
||||
m_Name: Line
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2185866943208229465
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 817216530089604692}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -5, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2844384060761577604}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &7306071439557822573
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 817216530089604692}
|
||||
m_Mesh: {fileID: 4300000, guid: 873de0939b7f76947a258a8897199a8e, type: 2}
|
||||
--- !u!23 &7642098115862499429
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 817216530089604692}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: fce881fda18d0a44fb62c8375d3e2fd4, type: 2}
|
||||
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!1 &1299980064020930364
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -380,6 +466,7 @@ Transform:
|
||||
- {fileID: 5119875421667202613}
|
||||
- {fileID: 1046323005297189095}
|
||||
- {fileID: 7483746332942052062}
|
||||
- {fileID: 2185866943208229465}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &6318046265503597909
|
||||
|
73
Runtime/Shaders/HandlesLine.shader
Normal file
73
Runtime/Shaders/HandlesLine.shader
Normal file
@ -0,0 +1,73 @@
|
||||
Shader "DCFApixels/DebugX/Handles Line"
|
||||
{
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue"="Transparent" "RenderType"="Transparent" "IgnoreProjector"="True" "ForceNoShadowCasting"="True" }
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
ZWrite Off
|
||||
Fog { Mode Off }
|
||||
Lighting Off
|
||||
Offset -1, -1
|
||||
|
||||
ZTest On
|
||||
|
||||
CGINCLUDE
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_instancing
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct InstanceData
|
||||
{
|
||||
float4x4 m;
|
||||
float4 color;
|
||||
};
|
||||
|
||||
struct appdata_t
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 vertex : SV_POSITION;
|
||||
half4 color : COLOR;
|
||||
};
|
||||
|
||||
StructuredBuffer<InstanceData> _DataBuffer;
|
||||
float4 _DebugX_GlobalColor;
|
||||
|
||||
v2f vert (appdata_t v, uint instanceID : SV_InstanceID)
|
||||
{
|
||||
v2f o;
|
||||
InstanceData data = _DataBuffer[instanceID];
|
||||
|
||||
float4 pos = mul(data.m, v.vertex);
|
||||
o.vertex = UnityObjectToClipPos(pos);
|
||||
o.color = data.color * _DebugX_GlobalColor;
|
||||
return o;
|
||||
}
|
||||
ENDCG
|
||||
|
||||
Pass
|
||||
{
|
||||
ZTest LEqual
|
||||
CGPROGRAM
|
||||
half4 frag (v2f i) : SV_Target
|
||||
{
|
||||
return i.color;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
Pass
|
||||
{
|
||||
ZTest Greater
|
||||
CGPROGRAM
|
||||
half4 frag (v2f i) : SV_Target
|
||||
{
|
||||
return i.color * half4(1, 1, 1, 0.1);
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
9
Runtime/Shaders/HandlesLine.shader.meta
Normal file
9
Runtime/Shaders/HandlesLine.shader.meta
Normal file
@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4dc765b931552b54b957905b156bae66
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -44,6 +44,7 @@ namespace DCFApixels.DebugXCore
|
||||
{
|
||||
public readonly Material Lit;
|
||||
public readonly Material Unlit;
|
||||
public readonly Material Line;
|
||||
public readonly Material UnlitOverwrite;
|
||||
public readonly Material Billboard;
|
||||
public readonly Material Dot;
|
||||
|
@ -5,11 +5,13 @@ namespace DCFApixels.DebugXCore
|
||||
public interface IStaticMaterial : IStaticData
|
||||
{
|
||||
int GetExecuteOrder();
|
||||
Material GetMaterial();
|
||||
Material GetMaterial_SupportCumputeShaders();
|
||||
Material GetMaterial_Default();
|
||||
}
|
||||
public interface IStaticMesh : IStaticData
|
||||
{
|
||||
Mesh GetMesh();
|
||||
// int GetBufferWarmupSize();
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -17,37 +19,50 @@ namespace DCFApixels.DebugXCore
|
||||
public readonly struct LitMat : IStaticMaterial
|
||||
{
|
||||
public int GetExecuteOrder() => 0;
|
||||
public Material GetMaterial() => DebugXAssets.Materials.Lit;
|
||||
public Material GetMaterial_SupportCumputeShaders() => DebugXAssets.Materials.Lit;
|
||||
public Material GetMaterial_Default() => DebugXAssets.Materials.Lit;
|
||||
}
|
||||
public readonly struct UnlitMat : IStaticMaterial
|
||||
{
|
||||
public int GetExecuteOrder() => 100_000;
|
||||
public Material GetMaterial() => DebugXAssets.Materials.Unlit;
|
||||
public Material GetMaterial_SupportCumputeShaders() => DebugXAssets.Materials.Unlit;
|
||||
public Material GetMaterial_Default() => DebugXAssets.Materials.Unlit;
|
||||
}
|
||||
public readonly struct LineMat : IStaticMaterial
|
||||
{
|
||||
public int GetExecuteOrder() => 100_000;
|
||||
public Material GetMaterial_SupportCumputeShaders() => DebugXAssets.Materials.Line;
|
||||
public Material GetMaterial_Default() => DebugXAssets.Materials.Unlit;
|
||||
}
|
||||
public readonly struct BillboardMat : IStaticMaterial
|
||||
{
|
||||
public int GetExecuteOrder() => 200_000;
|
||||
public Material GetMaterial() => DebugXAssets.Materials.Billboard;
|
||||
public Material GetMaterial_SupportCumputeShaders() => DebugXAssets.Materials.Billboard;
|
||||
public Material GetMaterial_Default() => DebugXAssets.Materials.Billboard;
|
||||
}
|
||||
public readonly struct DotMat : IStaticMaterial
|
||||
{
|
||||
public int GetExecuteOrder() => 300_000;
|
||||
public Material GetMaterial() => DebugXAssets.Materials.Dot;
|
||||
public Material GetMaterial_SupportCumputeShaders() => DebugXAssets.Materials.Dot;
|
||||
public Material GetMaterial_Default() => DebugXAssets.Materials.Dot;
|
||||
}
|
||||
public readonly struct GeometryUnlitMat : IStaticMaterial
|
||||
{
|
||||
public int GetExecuteOrder() => 1_000_000;
|
||||
public Material GetMaterial() => DebugXAssets.Materials.Unlit;
|
||||
public Material GetMaterial_SupportCumputeShaders() => DebugXAssets.Materials.Unlit;
|
||||
public Material GetMaterial_Default() => DebugXAssets.Materials.Unlit;
|
||||
}
|
||||
public readonly struct UnlitOverwriteMat : IStaticMaterial
|
||||
{
|
||||
public int GetExecuteOrder() => 1_000_000;
|
||||
public Material GetMaterial() => DebugXAssets.Materials.UnlitOverwrite;
|
||||
public Material GetMaterial_SupportCumputeShaders() => DebugXAssets.Materials.UnlitOverwrite;
|
||||
public Material GetMaterial_Default() => DebugXAssets.Materials.UnlitOverwrite;
|
||||
}
|
||||
public readonly struct WireMat : IStaticMaterial
|
||||
{
|
||||
public int GetExecuteOrder() => 1_000_000;
|
||||
public Material GetMaterial() => DebugXAssets.Materials.Wire;
|
||||
public Material GetMaterial_SupportCumputeShaders() => DebugXAssets.Materials.Wire;
|
||||
public Material GetMaterial_Default() => DebugXAssets.Materials.Wire;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
Loading…
Reference in New Issue
Block a user