From a4e2e6c35d1e7b6ba176ea6e1fc2fe30a808f04e Mon Sep 17 00:00:00 2001 From: happyfire Date: Fri, 11 Mar 2022 19:57:13 +0800 Subject: [PATCH] - GPU Rasterizer working --- URasterizer/Assembly-CSharp.csproj | 1235 +++++++++-------- .../Assets/Samples/Scenes/TestScene01.unity | 859 ++++++++++++ ...cene.unity.meta => TestScene01.unity.meta} | 0 ...asterizerScene.unity => TestScene02.unity} | 196 +-- .../Samples/Scenes/TestScene02.unity.meta | 7 + .../Assets/URasterizer/Codes/CPURasterizer.cs | 4 + .../URasterizer/Codes/CameraRenderer.cs | 11 +- .../Assets/URasterizer/Codes/GPURasterizer.cs | 640 ++------- .../Assets/URasterizer/Codes/IRasterizer.cs | 3 + .../URasterizer/Codes/RenderingObject.cs | 40 +- .../DefaultAssets/URComputeShader.compute | 336 ++++- .../Assets/URasterizer/RenderingConfig.asset | 2 +- URasterizer/URasterizer.sln | 9 +- .../UserSettings/EditorUserSettings.asset | 6 + 14 files changed, 2014 insertions(+), 1334 deletions(-) create mode 100644 URasterizer/Assets/Samples/Scenes/TestScene01.unity rename URasterizer/Assets/Samples/Scenes/{URasterizerScene.unity.meta => TestScene01.unity.meta} (100%) rename URasterizer/Assets/Samples/Scenes/{URasterizerScene.unity => TestScene02.unity} (77%) create mode 100644 URasterizer/Assets/Samples/Scenes/TestScene02.unity.meta diff --git a/URasterizer/Assembly-CSharp.csproj b/URasterizer/Assembly-CSharp.csproj index f5da418..75c4d5a 100644 --- a/URasterizer/Assembly-CSharp.csproj +++ b/URasterizer/Assembly-CSharp.csproj @@ -2,6 +2,8 @@ latest + C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Tools\RoslynScripts + unity_csc.bat Debug @@ -9,7 +11,7 @@ 10.0.20506 2.0 - {463dc408-4d10-7b51-7865-ada4f8fb4d91} + {08C43D46-104D-517B-7865-ADA4F8FB4D91} Library Properties Assembly-CSharp @@ -21,13 +23,22 @@ true full false - Temp\bin\Debug\ + Temp\Bin\Debug\ DEBUG;TRACE;UNITY_2020_3_25;UNITY_2020_3;UNITY_2020;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;UNITY_2020_3_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_EVENT_QUEUE;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_VIRTUALTEXTURING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;ENABLE_MANAGED_UNITYTLS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE;PLATFORM_STANDALONE_WIN;UNITY_STANDALONE_WIN;UNITY_STANDALONE;UNITY_UGP_API;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP;GFXDEVICE_WAITFOREVENT_MESSAGEPUMP;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_STANDARD_2_0;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_IG;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_CLOUD_FEATURES;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_LEGACY_INPUT_MANAGER;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER prompt 4 0169 False + + pdbonly + true + Temp\bin\Release\ + prompt + 4 + 0169 + False + true true @@ -39,626 +50,626 @@ + + - - - - + + - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.AIModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.ARModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.AccessibilityModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.AndroidJNIModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.AnimationModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.AssetBundleModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.AudioModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.AutoStreamingModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.ClothModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CloudFoundationModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterInputModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterRendererModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CrashReportingModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.DSPGraphModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.DirectorModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.GIModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.GameCenterModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.GridModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.HotReloadModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.IMGUIModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.ImageConversionModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.InputModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.InputLegacyModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.JSONSerializeModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.LocalizationModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.ParticleSystemModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.PerformanceReportingModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.PhysicsModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.Physics2DModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.ProfilerModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.ScreenCaptureModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.SharedInternalsModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteMaskModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteShapeModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.StreamingModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.SubstanceModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.SubsystemsModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.TLSModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainPhysicsModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.TextCoreModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.TextRenderingModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.TilemapModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UIModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UIElementsModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UIElementsNativeModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UNETModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UmbraModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityAnalyticsModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityConnectModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityCurlModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityTestProtocolModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAssetBundleModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAudioModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestTextureModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestWWWModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.VFXModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.VRModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.VehiclesModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.VideoModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.VirtualTexturingModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.WindModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.XRModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEditor.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEditor.CoreModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEditor.GraphViewModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEditor.PackageManagerUIModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEditor.SceneTemplateModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEditor.UIElementsModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEditor.UIElementsSamplesModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEditor.UIServiceModule.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\Managed\UnityEngine\UnityEditor.UnityConnectModule.dll - - - E:\study\urasterizer\URasterizer\Library\PackageCache\com.unity.nuget.newtonsoft-json@2.0.0\Runtime\Newtonsoft.Json.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\ref\2.0.0\netstandard.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\Microsoft.Win32.Primitives.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.AppContext.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Collections.Concurrent.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Collections.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Collections.NonGeneric.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Collections.Specialized.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.ComponentModel.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.ComponentModel.EventBasedAsync.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.ComponentModel.Primitives.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.ComponentModel.TypeConverter.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Console.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Data.Common.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.Contracts.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.Debug.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.FileVersionInfo.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.Process.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.StackTrace.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.TextWriterTraceListener.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.Tools.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.TraceSource.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.Tracing.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Drawing.Primitives.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Dynamic.Runtime.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Globalization.Calendars.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Globalization.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Globalization.Extensions.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.Compression.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.Compression.ZipFile.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.FileSystem.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.FileSystem.DriveInfo.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.FileSystem.Primitives.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.FileSystem.Watcher.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.IsolatedStorage.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.MemoryMappedFiles.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.Pipes.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.UnmanagedMemoryStream.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Linq.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Linq.Expressions.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Linq.Parallel.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Linq.Queryable.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.Http.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.NameResolution.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.NetworkInformation.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.Ping.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.Primitives.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.Requests.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.Security.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.Sockets.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.WebHeaderCollection.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.WebSockets.Client.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.WebSockets.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.ObjectModel.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Reflection.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Reflection.Extensions.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Reflection.Primitives.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Resources.Reader.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Resources.ResourceManager.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Resources.Writer.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.CompilerServices.VisualC.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Extensions.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Handles.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.InteropServices.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.InteropServices.RuntimeInformation.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Numerics.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Serialization.Formatters.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Serialization.Json.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Serialization.Primitives.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Serialization.Xml.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Claims.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Cryptography.Algorithms.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Cryptography.Csp.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Cryptography.Encoding.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Cryptography.Primitives.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Cryptography.X509Certificates.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Principal.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.SecureString.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Text.Encoding.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Text.Encoding.Extensions.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Text.RegularExpressions.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.Overlapped.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.Tasks.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.Tasks.Parallel.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.Thread.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.ThreadPool.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.Timer.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.ValueTuple.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Xml.ReaderWriter.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Xml.XDocument.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Xml.XmlDocument.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Xml.XmlSerializer.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Xml.XPath.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Xml.XPath.XDocument.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\Extensions\2.0.0\System.Numerics.Vectors.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\Extensions\2.0.0\System.Runtime.InteropServices.WindowsRuntime.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\mscorlib.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.ComponentModel.Composition.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Core.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Data.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Drawing.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.IO.Compression.FileSystem.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Net.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Numerics.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Runtime.Serialization.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.ServiceModel.Web.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Transactions.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Web.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Windows.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Xml.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Xml.Linq.dll - - - C:\Program Files\Unity\Hub\Editor\Unity 2020.3.25f1c1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Xml.Serialization.dll - - - E:\study\urasterizer\URasterizer\Library\ScriptAssemblies\Unity.VSCode.Editor.dll - - - E:\study\urasterizer\URasterizer\Library\ScriptAssemblies\Unity.TextMeshPro.Editor.dll - - - E:\study\urasterizer\URasterizer\Library\ScriptAssemblies\Unity.VisualStudio.Editor.dll - - - E:\study\urasterizer\URasterizer\Library\ScriptAssemblies\Unity.Timeline.Editor.dll - - - E:\study\urasterizer\URasterizer\Library\ScriptAssemblies\Unity.Timeline.dll - - - E:\study\urasterizer\URasterizer\Library\ScriptAssemblies\Unity.TextMeshPro.dll - - - E:\study\urasterizer\URasterizer\Library\ScriptAssemblies\UnityEditor.UI.dll - - - E:\study\urasterizer\URasterizer\Library\ScriptAssemblies\Unity.PlasticSCM.Editor.dll - - - E:\study\urasterizer\URasterizer\Library\ScriptAssemblies\Unity.Rider.Editor.dll - - - E:\study\urasterizer\URasterizer\Library\ScriptAssemblies\UnityEngine.UI.dll - + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.AutoStreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.CloudFoundationModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.GIModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.SubsystemsModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsNativeModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityCurlModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.VirtualTexturingModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEditor.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEditor.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEditor.GraphViewModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEditor.PackageManagerUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEditor.SceneTemplateModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEditor.UIElementsSamplesModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEditor.UIServiceModule.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/Managed/UnityEngine/UnityEditor.UnityConnectModule.dll + + + E:/study/urasterizer/URasterizer/Library/PackageCache/com.unity.nuget.newtonsoft-json@2.0.0/Runtime/Newtonsoft.Json.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/ref/2.0.0/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Tracing.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.Compression.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XPath.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/Extensions/2.0.0/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/Extensions/2.0.0/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.ComponentModel.Composition.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Drawing.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.IO.Compression.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Net.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.ServiceModel.Web.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Transactions.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Web.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Windows.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/Unity 2020.3.25f1c1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Xml.Serialization.dll + + + E:/study/urasterizer/URasterizer/Library/ScriptAssemblies/Unity.VSCode.Editor.dll + + + E:/study/urasterizer/URasterizer/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll + + + E:/study/urasterizer/URasterizer/Library/ScriptAssemblies/Unity.VisualStudio.Editor.dll + + + E:/study/urasterizer/URasterizer/Library/ScriptAssemblies/Unity.Timeline.Editor.dll + + + E:/study/urasterizer/URasterizer/Library/ScriptAssemblies/Unity.Timeline.dll + + + E:/study/urasterizer/URasterizer/Library/ScriptAssemblies/Unity.TextMeshPro.dll + + + E:/study/urasterizer/URasterizer/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/study/urasterizer/URasterizer/Library/ScriptAssemblies/Unity.PlasticSCM.Editor.dll + + + E:/study/urasterizer/URasterizer/Library/ScriptAssemblies/Unity.Rider.Editor.dll + + + E:/study/urasterizer/URasterizer/Library/ScriptAssemblies/UnityEngine.UI.dll + diff --git a/URasterizer/Assets/Samples/Scenes/TestScene01.unity b/URasterizer/Assets/Samples/Scenes/TestScene01.unity new file mode 100644 index 0000000..0d00e49 --- /dev/null +++ b/URasterizer/Assets/Samples/Scenes/TestScene01.unity @@ -0,0 +1,859 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.44657874, g: 0.49641258, b: 0.5748172, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &14700134 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8164078558771037576, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + m_PrefabInstance: {fileID: 1559831303} + m_PrefabAsset: {fileID: 0} +--- !u!114 &14700138 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14700134} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 275ec1cd091f7d54cb532cf4c552b27a, type: 3} + m_Name: + m_EditorClassIdentifier: + mesh: {fileID: 0} + DoubleSideRendering: 0 +--- !u!4 &270156317 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + m_PrefabInstance: {fileID: 1817164937} + m_PrefabAsset: {fileID: 0} +--- !u!4 &280443493 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + m_PrefabInstance: {fileID: 1225451993} + m_PrefabAsset: {fileID: 0} +--- !u!1 &551146011 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8164078558771037576, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + m_PrefabInstance: {fileID: 578823582} + m_PrefabAsset: {fileID: 0} +--- !u!114 &551146013 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 551146011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 275ec1cd091f7d54cb532cf4c552b27a, type: 3} + m_Name: + m_EditorClassIdentifier: + mesh: {fileID: 0} + DoubleSideRendering: 0 +--- !u!1001 &578823582 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1651153439} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalPosition.x + value: 2.18 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7635826562936255635, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 09e62c4a29022d248a7454ef0dba37f3, type: 2} + - target: {fileID: 919132149155446097, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_Name + value: spot_triangulated_good (3) + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} +--- !u!1 &708288525 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8164078558771037576, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + m_PrefabInstance: {fileID: 1225451993} + m_PrefabAsset: {fileID: 0} +--- !u!114 &708288527 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 708288525} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 275ec1cd091f7d54cb532cf4c552b27a, type: 3} + m_Name: + m_EditorClassIdentifier: + mesh: {fileID: 0} + DoubleSideRendering: 0 +--- !u!4 &949938250 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + m_PrefabInstance: {fileID: 578823582} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1225451993 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1651153439} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_LocalPosition.x + value: 0.06 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_LocalPosition.y + value: -0.4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_LocalPosition.z + value: 3 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7635826562936255635, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: f9f96ee2bf6b64945b16abad7a676453, type: 2} + - target: {fileID: 919132149155446097, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_Name + value: rock + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} +--- !u!4 &1326646622 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + m_PrefabInstance: {fileID: 1737938891} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1405504422 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8164078558771037576, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + m_PrefabInstance: {fileID: 1817164937} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1405504424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1405504422} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 275ec1cd091f7d54cb532cf4c552b27a, type: 3} + m_Name: + m_EditorClassIdentifier: + mesh: {fileID: 0} + DoubleSideRendering: 0 +--- !u!1 &1543085583 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8164078558771037576, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + m_PrefabInstance: {fileID: 1737938891} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1543085585 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1543085583} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 275ec1cd091f7d54cb532cf4c552b27a, type: 3} + m_Name: + m_EditorClassIdentifier: + mesh: {fileID: 0} + DoubleSideRendering: 0 +--- !u!1001 &1559831303 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1651153439} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalPosition.x + value: -1.98 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7635826562936255635, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 09e62c4a29022d248a7454ef0dba37f3, type: 2} + - target: {fileID: 919132149155446097, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_Name + value: spot_triangulated_good + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} +--- !u!1 &1651153438 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1651153439} + m_Layer: 0 + m_Name: Objs + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1651153439 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1651153438} + 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: 1809435259} + - {fileID: 280443493} + - {fileID: 270156317} + - {fileID: 1326646622} + - {fileID: 949938250} + m_Father: {fileID: 1977655288} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1737938891 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1651153439} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalPosition.x + value: 2.17 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalPosition.z + value: -5.63 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7635826562936255635, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 09e62c4a29022d248a7454ef0dba37f3, type: 2} + - target: {fileID: 919132149155446097, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_Name + value: spot_triangulated_good (2) + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} +--- !u!4 &1809435259 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + m_PrefabInstance: {fileID: 1559831303} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1817164937 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1651153439} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalPosition.x + value: -1.98 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalPosition.z + value: -5.63 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7635826562936255635, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 09e62c4a29022d248a7454ef0dba37f3, type: 2} + - target: {fileID: 919132149155446097, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_Name + value: spot_triangulated_good (1) + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} +--- !u!1 &1933767904 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1933767906} + - component: {fileID: 1933767905} + - component: {fileID: 1933767907} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1933767905 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1933767904} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1933767906 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1933767904} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1977655288} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!95 &1933767907 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1933767904} + m_Enabled: 0 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: a5d59b3801cddbb458d4c0acecdf77ed, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!1 &1977655287 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1977655288} + m_Layer: 0 + m_Name: WorldRoot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1977655288 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977655287} + 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: 1933767906} + - {fileID: 1651153439} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &4433848260563764755 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4433848259306037124, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259306037124, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259306037124, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259306037124, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259660478445, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259660478445, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259660478445, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259660478445, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259660478445, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4433848259660478445, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259660478445, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259660478445, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259660478445, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259660478445, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259660478445, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259660478446, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_Name + value: ControlRoot + objectReference: {fileID: 0} + - target: {fileID: 4433848259774254025, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259774254025, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259774254025, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848259774254025, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848260333037378, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: _mainLight + value: + objectReference: {fileID: 1933767905} + - target: {fileID: 4433848260604526317, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848260604526317, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848260604526317, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4433848260604526317, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a82629e4c4c5e864994230f3f34bee0f, type: 3} diff --git a/URasterizer/Assets/Samples/Scenes/URasterizerScene.unity.meta b/URasterizer/Assets/Samples/Scenes/TestScene01.unity.meta similarity index 100% rename from URasterizer/Assets/Samples/Scenes/URasterizerScene.unity.meta rename to URasterizer/Assets/Samples/Scenes/TestScene01.unity.meta diff --git a/URasterizer/Assets/Samples/Scenes/URasterizerScene.unity b/URasterizer/Assets/Samples/Scenes/TestScene02.unity similarity index 77% rename from URasterizer/Assets/Samples/Scenes/URasterizerScene.unity rename to URasterizer/Assets/Samples/Scenes/TestScene02.unity index 722ad8f..114a2ed 100644 --- a/URasterizer/Assets/Samples/Scenes/URasterizerScene.unity +++ b/URasterizer/Assets/Samples/Scenes/TestScene02.unity @@ -123,26 +123,6 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &14700134 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8164078558771037576, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - m_PrefabInstance: {fileID: 1559831303} - m_PrefabAsset: {fileID: 0} ---- !u!114 &14700138 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 14700134} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 275ec1cd091f7d54cb532cf4c552b27a, type: 3} - m_Name: - m_EditorClassIdentifier: - mesh: {fileID: 0} - DoubleSideRendering: 0 - texture: {fileID: 0} --- !u!1 &256726191 GameObject: m_ObjectHideFlags: 0 @@ -181,7 +161,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: f9f96ee2bf6b64945b16abad7a676453, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -239,12 +219,6 @@ MonoBehaviour: m_EditorClassIdentifier: mesh: {fileID: 0} DoubleSideRendering: 0 - texture: {fileID: 0} ---- !u!4 &280443493 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - m_PrefabInstance: {fileID: 1225451993} - m_PrefabAsset: {fileID: 0} --- !u!1 &666679034 GameObject: m_ObjectHideFlags: 0 @@ -261,7 +235,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!114 &666679035 MonoBehaviour: m_ObjectHideFlags: 0 @@ -296,28 +270,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1651153439} - m_RootOrder: 5 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &708288525 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8164078558771037576, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - m_PrefabInstance: {fileID: 1225451993} - m_PrefabAsset: {fileID: 0} ---- !u!114 &708288527 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 708288525} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 275ec1cd091f7d54cb532cf4c552b27a, type: 3} - m_Name: - m_EditorClassIdentifier: - mesh: {fileID: 0} - DoubleSideRendering: 0 - texture: {fileID: 0} --- !u!1 &963210794 GameObject: m_ObjectHideFlags: 0 @@ -357,7 +311,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: f9f96ee2bf6b64945b16abad7a676453, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -416,7 +370,6 @@ MonoBehaviour: m_EditorClassIdentifier: mesh: {fileID: 0} DoubleSideRendering: 0 - texture: {fileID: 0} --- !u!95 &963210800 Animator: serializedVersion: 3 @@ -436,71 +389,6 @@ Animator: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorControllerStateOnDisable: 0 ---- !u!1001 &1225451993 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1651153439} - m_Modifications: - - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_LocalPosition.x - value: 1.79 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_LocalPosition.y - value: -2.93 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_LocalPosition.z - value: 3 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -7635826562936255635, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: f9f96ee2bf6b64945b16abad7a676453, type: 2} - - target: {fileID: 919132149155446097, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_Name - value: rock - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ce694dbb0170d7e439cd892f9f151786, type: 3} --- !u!1 &1297680259 GameObject: m_ObjectHideFlags: 0 @@ -521,7 +409,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!64 &1297680260 MeshCollider: m_ObjectHideFlags: 0 @@ -613,7 +501,6 @@ MonoBehaviour: m_EditorClassIdentifier: mesh: {fileID: 0} DoubleSideRendering: 0 - texture: {fileID: 0} --- !u!95 &1297680265 Animator: serializedVersion: 3 @@ -633,71 +520,6 @@ Animator: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorControllerStateOnDisable: 0 ---- !u!1001 &1559831303 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1651153439} - m_Modifications: - - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_LocalPosition.x - value: -1.98 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -7635826562936255635, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 09e62c4a29022d248a7454ef0dba37f3, type: 2} - - target: {fileID: 919132149155446097, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_Name - value: spot_triangulated_good - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} --- !u!1 &1651153438 GameObject: m_ObjectHideFlags: 0 @@ -728,17 +550,10 @@ Transform: - {fileID: 256726195} - {fileID: 1297680263} - {fileID: 963210798} - - {fileID: 1809435259} - - {fileID: 280443493} - {fileID: 666679036} m_Father: {fileID: 1977655288} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!4 &1809435259 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 0b4771b06a3a8614b822c760aaba2a18, type: 3} - m_PrefabInstance: {fileID: 1559831303} - m_PrefabAsset: {fileID: 0} --- !u!1 &1825649040 GameObject: m_ObjectHideFlags: 0 @@ -855,7 +670,6 @@ MonoBehaviour: m_EditorClassIdentifier: mesh: {fileID: 0} DoubleSideRendering: 0 - texture: {fileID: 0} --- !u!1 &1933767904 GameObject: m_ObjectHideFlags: 0 diff --git a/URasterizer/Assets/Samples/Scenes/TestScene02.unity.meta b/URasterizer/Assets/Samples/Scenes/TestScene02.unity.meta new file mode 100644 index 0000000..65921bc --- /dev/null +++ b/URasterizer/Assets/Samples/Scenes/TestScene02.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ef50ff8ef83643a42a03be5b19e5196d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/URasterizer/Assets/URasterizer/Codes/CPURasterizer.cs b/URasterizer/Assets/URasterizer/Codes/CPURasterizer.cs index f00541e..188a6cd 100644 --- a/URasterizer/Assets/URasterizer/Codes/CPURasterizer.cs +++ b/URasterizer/Assets/URasterizer/Codes/CPURasterizer.cs @@ -55,6 +55,10 @@ namespace URasterizer Vector4[] _tmpVector4s = new Vector4[3]; Vector3[] _tmpVector3s = new Vector3[3]; + public String Name { get=>"CPU"; } + + public Texture ColorTexture { get=>texture; } + public CPURasterizer(int w, int h, RenderingConfig config) { diff --git a/URasterizer/Assets/URasterizer/Codes/CameraRenderer.cs b/URasterizer/Assets/URasterizer/Codes/CameraRenderer.cs index e90b315..b93b8ac 100644 --- a/URasterizer/Assets/URasterizer/Codes/CameraRenderer.cs +++ b/URasterizer/Assets/URasterizer/Codes/CameraRenderer.cs @@ -80,14 +80,9 @@ namespace URasterizer if(_rasterizer != _lastRasterizer){ _lastRasterizer = _rasterizer; - if(_rasterizer == _cpuRasterizer){ - rawImg.texture = _cpuRasterizer.texture; - _statsPanel.SetRasterizerType("CPU"); - } - else if(_rasterizer == _gpuRasterizer){ - rawImg.texture = _gpuRasterizer.texture; - _statsPanel.SetRasterizerType("GPU Driven"); - } + + rawImg.texture = _rasterizer.ColorTexture; + _statsPanel.SetRasterizerType(_rasterizer.Name); } var r = _rasterizer; diff --git a/URasterizer/Assets/URasterizer/Codes/GPURasterizer.cs b/URasterizer/Assets/URasterizer/Codes/GPURasterizer.cs index 3c6279a..b1760f0 100644 --- a/URasterizer/Assets/URasterizer/Codes/GPURasterizer.cs +++ b/URasterizer/Assets/URasterizer/Codes/GPURasterizer.cs @@ -41,7 +41,7 @@ namespace URasterizer bool[] samplers_mask_MSAA; float[] samplers_depth_MSAA; - public Texture2D texture; + RenderTexture _colorTexture; public FragmentShader CurrentFragmentShader {get; set;} @@ -57,13 +57,26 @@ namespace URasterizer //Compute shader ComputeShader computeShader; + int kernelClearFrame; int kernelVertexProcess; + int kernelTriangleSetup; + int kernelRasterizeTriangle; + + //ids of compute shader variables + int frameColorTextureId; + int vertexBufferId; int normalBufferId; - int outBufferId; + int vertexOutBufferId; + int triangleBufferId; + int renderTriangleBufferId; int matMVPId; int matModelId; + public String Name { get=>"GPU"; } + + public Texture ColorTexture { get=>_colorTexture; } + public GPURasterizer(int w, int h, RenderingConfig config) { @@ -78,35 +91,30 @@ namespace URasterizer depth_buf = new float[w * h]; temp_buf = new Color[w * h]; - texture = new Texture2D(w, h); - texture.filterMode = FilterMode.Point; + _colorTexture = new RenderTexture(w, h, 0); + _colorTexture.enableRandomWrite = true; + _colorTexture.Create(); + _colorTexture.filterMode = FilterMode.Point; - if (_config.MSAA != MSAALevel.Disabled && !_config.WireframeMode) - { - AllocateMSAABuffers(); - } //init for compute shader computeShader = config.ComputeShader; + kernelClearFrame = computeShader.FindKernel("ClearFrame"); kernelVertexProcess = computeShader.FindKernel("VertexProcess"); + kernelTriangleSetup = computeShader.FindKernel("TriangleSetup"); + kernelRasterizeTriangle = computeShader.FindKernel("RasterizeTriangle"); + + frameColorTextureId = Shader.PropertyToID("frameColorTexture"); vertexBufferId = Shader.PropertyToID("vertexBuffer"); normalBufferId = Shader.PropertyToID("normalBuffer"); - outBufferId = Shader.PropertyToID("outBuffer"); + vertexOutBufferId = Shader.PropertyToID("vertexOutBuffer"); + triangleBufferId = Shader.PropertyToID("triangleBuffer"); + renderTriangleBufferId = Shader.PropertyToID("renderTriangleBuffer"); + matMVPId = Shader.PropertyToID("matMVP"); matModelId = Shader.PropertyToID("matModel"); } - - void AllocateMSAABuffers() - { - int MSAALevel = (int)_config.MSAA; - int bufSize = _width * _height * MSAALevel * MSAALevel; - if(samplers_color_MSAA==null || samplers_color_MSAA.Length != bufSize) - { - samplers_color_MSAA = new Color[bufSize]; - samplers_mask_MSAA = new bool[bufSize]; - samplers_depth_MSAA = new float[bufSize]; - } - } + public float Aspect { @@ -116,60 +124,24 @@ namespace URasterizer } } - void FillArray(T[] arr, T value) - { - int i = 0; - if(arr.Length > 16) - { - do - { - arr[i++] = value; - } while (i < arr.Length); - - while( i + 16 < arr.Length) - { - Array.Copy(arr, 0, arr, i, 16); - i += 16; - } - } - while (i < arr.Length) - { - arr[i++] = value; - } - } - public void Clear(BufferMask mask) { - ProfileManager.BeginSample("Rasterizer.Clear"); - - if (_config.MSAA != MSAALevel.Disabled && !_config.WireframeMode) - { - AllocateMSAABuffers(); - } - - if ((mask & BufferMask.Color) == BufferMask.Color) - { - FillArray(frame_buf, _config.ClearColor); - if (_config.MSAA != MSAALevel.Disabled && !_config.WireframeMode) - { - FillArray(samplers_color_MSAA, _config.ClearColor); - FillArray(samplers_mask_MSAA, false); - } - } - if((mask & BufferMask.Depth) == BufferMask.Depth) - { - FillArray(depth_buf, 0f); - if (_config.MSAA != MSAALevel.Disabled && !_config.WireframeMode) - { - FillArray(samplers_depth_MSAA, 0f); - } - } - + ProfileManager.BeginSample("Rasterizer.Clear GPU"); + var shader = _config.ComputeShader; + shader.SetTexture(kernelClearFrame, frameColorTextureId, _colorTexture); + var clearColor = _config.ClearColor; + shader.SetFloats("ClearColor", clearColor.r, clearColor.g, clearColor.b, clearColor.a); + + int groupX = Mathf.CeilToInt(_colorTexture.width/32f); + int groupY = Mathf.CeilToInt(_colorTexture.height/24f); + groupX = groupX==0? 1 : groupX; + groupY = groupY==0? 1 : groupY; + shader.Dispatch(kernelClearFrame, groupX, groupY, 1); + _trianglesAll = _trianglesRendered = 0; _verticesAll = 0; - ProfileManager.EndSample(); - + ProfileManager.EndSample(); } public void SetupViewProjectionMatrix(Camera camera) @@ -212,164 +184,63 @@ namespace URasterizer Matrix4x4 normalMat = _matModel.inverse.transpose; _verticesAll += mesh.vertexCount; - _trianglesAll += ro.MeshTriangles.Length / 3; + _trianglesAll += ro.MeshTriangles.Length / 3; - - //Unity模型本地坐标系也是左手系,需要转成我们使用的右手系 - //1. z轴反转 - //2. 三角形顶点环绕方向从顺时针改成逆时针 - - - /// ------------- Vertex Shader ------------------- - VSOutBuf[] vsOutput = ro.vsOutputBuffer; - - - ProfileManager.BeginSample("Rasterizer.VertexShader GPU"); + ProfileManager.BeginSample("GPURasterizer.VertexProcess"); var shader = _config.ComputeShader; shader.SetMatrix(matMVPId, mvp); shader.SetMatrix(matModelId, _matModel); shader.SetBuffer(kernelVertexProcess, vertexBufferId, ro.VertexBuffer); shader.SetBuffer(kernelVertexProcess, normalBufferId, ro.NormalBuffer); - shader.SetBuffer(kernelVertexProcess, outBufferId, ro.OutBuffer); + shader.SetBuffer(kernelVertexProcess, vertexOutBufferId, ro.VertexOutBuffer); int groupCnt = Mathf.CeilToInt(mesh.vertexCount/768f); groupCnt = groupCnt==0? 1: groupCnt; - shader.Dispatch(kernelVertexProcess, groupCnt, 1, 1); - - ro.OutBuffer.GetData(vsOutput); + shader.Dispatch(kernelVertexProcess, groupCnt, 1, 1); ProfileManager.EndSample(); - - - - ProfileManager.BeginSample("Rasterizer.PrimitiveAssembly"); - - var indices = ro.MeshTriangles; - for(int i=0; i< indices.Length; i+=3) - { - /// -------------- Primitive Assembly ----------------- - - //注意这儿对调了v0和v1的索引,因为原来的 0,1,2是顺时针的,对调后是 1,0,2是逆时针的 - //Unity Quard模型的两个三角形索引分别是 0,3,1,3,0,2 转换后为 3,0,1,0,3,2 - int idx0 = indices[i+1]; - int idx1 = indices[i]; - int idx2 = indices[i+2]; - - var v = _tmpVector4s; - - v[0] = vsOutput[idx0].clipPos; - v[1] = vsOutput[idx1].clipPos; - v[2] = vsOutput[idx2].clipPos; - - // ------ Clipping ------- - if (Clipped(_tmpVector4s)) - { - continue; - } - - // ------- Perspective division -------- - //clip space to NDC - for (int k=0; k<3; k++) - { - v[k].x /= v[k].w; - v[k].y /= v[k].w; - v[k].z /= v[k].w; - } - - //backface culling - if (_config.BackfaceCulling && !ro.DoubleSideRendering) - { - Vector3 v0 = new Vector3(v[0].x, v[0].y, v[0].z); - Vector3 v1 = new Vector3(v[1].x, v[1].y, v[1].z); - Vector3 v2 = new Vector3(v[2].x, v[2].y, v[2].z); - Vector3 e01 = v1 - v0; - Vector3 e02 = v2 - v0; - Vector3 cross = Vector3.Cross(e01, e02); - if (cross.z < 0) - { - continue; - } - } + + ProfileManager.BeginSample("GPURasterizer.TriangleSetup"); - ++_trianglesRendered; + shader.SetInts("FrameBufferSize", _colorTexture.width, _colorTexture.height); + ro.RenderTriangleBuffer.SetCounterValue(0); + shader.SetBuffer(kernelTriangleSetup, triangleBufferId, ro.TriangleBuffer); + shader.SetBuffer(kernelTriangleSetup, renderTriangleBufferId, ro.RenderTriangleBuffer); + shader.SetBuffer(kernelTriangleSetup, vertexOutBufferId, ro.VertexOutBuffer); - // ------- Viewport Transform ---------- - //NDC to screen space - for (int k = 0; k < 3; k++) - { - var vec = v[k]; - vec.x = 0.5f * _width * (vec.x + 1.0f); - vec.y = 0.5f * _height * (vec.y + 1.0f); - - //在硬件渲染中,NDC的z值经过硬件的透视除法之后就直接写入到depth buffer了,如果要调整需要在投影矩阵中调整 - //由于我们是软件渲染,所以可以在这里调整z值。 - - //GAMES101约定的NDC是右手坐标系,z值范围是[-1,1],但n为1,f为-1,因此值越大越靠近n。 - //为了可视化Depth buffer,将最终的z值从[-1,1]映射到[0,1]的范围,因此最终n为1, f为0。离n越近,深度值越大。 - //由于远处的z值为0,因此clear时深度要清除为0,然后深度测试时,使用GREATER测试。 - //(当然我们也可以在这儿反转z值,然后clear时使用float.MaxValue清除,并且深度测试时使用LESS_EQUAL测试) - //注意:这儿的z值调整并不是必要的,只是为了可视化时便于映射为颜色值。其实也可以在可视化的地方调整。 - //但是这么调整后,正好和Unity在DirectX平台的Reverse z一样,让near plane附近的z值的浮点数精度提高。 - vec.z = vec.z * 0.5f + 0.5f; - - v[k] = vec; - } + groupCnt = Mathf.CeilToInt((ro.MeshTriangles.Length/3)/768f); + groupCnt = groupCnt==0? 1: groupCnt; + shader.Dispatch(kernelTriangleSetup, groupCnt, 1, 1); + + ComputeBuffer tmpBuf = new ComputeBuffer(1, sizeof(uint), ComputeBufferType.IndirectArguments); - Triangle t = new Triangle(); - t.Vertex0.Position = v[0]; - t.Vertex1.Position = v[1]; - t.Vertex2.Position = v[2]; - - //set obj normal - t.Vertex0.Normal = vsOutput[idx0].objectNormal; - t.Vertex1.Normal = vsOutput[idx1].objectNormal; - t.Vertex2.Normal = vsOutput[idx2].objectNormal; - - if (ro.MeshUVs.Length > 0) - { - t.Vertex0.Texcoord = ro.MeshUVs[idx0]; - t.Vertex1.Texcoord = ro.MeshUVs[idx1]; - t.Vertex2.Texcoord = ro.MeshUVs[idx2]; - } + ComputeBuffer.CopyCount(ro.RenderTriangleBuffer, tmpBuf, 0); + uint[] tmpData = new uint[1]; + tmpBuf.GetData(tmpData); + _trianglesRendered = (int)tmpData[0]; + tmpBuf.Release(); + + ProfileManager.EndSample(); - //设置顶点色,使用config中的颜色数组循环设置 - if(_config.VertexColors != null && _config.VertexColors.Colors.Length > 0) - { - int vertexColorCount = _config.VertexColors.Colors.Length; + //对每个triangle进行光栅化 + for(int i=0; i < _trianglesRendered; ++i){ + shader.SetBuffer(kernelRasterizeTriangle, "renderCosumeBuffer", ro.RenderTriangleBuffer); + shader.SetBuffer(kernelRasterizeTriangle, vertexOutBufferId, ro.VertexOutBuffer); + shader.SetTexture(kernelRasterizeTriangle, frameColorTextureId, _colorTexture); + + int groupX = Mathf.CeilToInt(_colorTexture.width/32f); + int groupY = Mathf.CeilToInt(_colorTexture.height/24f); + groupX = groupX==0? 1 : groupX; + groupY = groupY==0? 1 : groupY; + shader.Dispatch(kernelRasterizeTriangle, groupX, groupY, 1); + } - t.Vertex0.Color = _config.VertexColors.Colors[idx0 % vertexColorCount]; - t.Vertex1.Color = _config.VertexColors.Colors[idx1 % vertexColorCount]; - t.Vertex2.Color = _config.VertexColors.Colors[idx2 % vertexColorCount]; - } - else - { - t.Vertex0.Color = Color.white; - t.Vertex1.Color = Color.white; - t.Vertex2.Color = Color.white; - } - //set world space pos & normal - t.Vertex0.WorldPos = vsOutput[idx0].worldPos; - t.Vertex1.WorldPos = vsOutput[idx1].worldPos; - t.Vertex2.WorldPos = vsOutput[idx2].worldPos; - t.Vertex0.WorldNormal = vsOutput[idx0].worldNormal; - t.Vertex1.WorldNormal = vsOutput[idx1].worldNormal; - t.Vertex2.WorldNormal = vsOutput[idx2].worldNormal; - - /// ---------- Rasterization ----------- - if (_config.WireframeMode) - { - RasterizeWireframe(t); - } - else - { - RasterizeTriangle(t, ro); - } - - } + + - ProfileManager.EndSample(); + //Resolve AA if(_config.MSAA != MSAALevel.Disabled && !_config.WireframeMode) @@ -377,190 +248,40 @@ namespace URasterizer int MSAALevel = (int)_config.MSAA; int SamplersPerPixel = MSAALevel * MSAALevel; - for (int y=0; y < _height; ++y) - { - for(int x=0; x < _width; ++x) - { - int index = GetIndex(x, y); - Color color = Color.clear; - float a = 0.0f; - for(int si=0; si < MSAALevel; ++si) - { - for(int sj=0; sj < MSAALevel; ++sj) - { - int xi = x * MSAALevel + si; - int yi = y * MSAALevel + sj; - int indexSamper = yi * _width * MSAALevel + xi; - if (samplers_mask_MSAA[indexSamper]) - { - color += samplers_color_MSAA[indexSamper]; - a += 1.0f; - } - } - } - if(a > 0.0f) - { - frame_buf[index] = color / SamplersPerPixel; - } - } - } + // for (int y=0; y < _height; ++y) + // { + // for(int x=0; x < _width; ++x) + // { + // int index = GetIndex(x, y); + // Color color = Color.clear; + // float a = 0.0f; + // for(int si=0; si < MSAALevel; ++si) + // { + // for(int sj=0; sj < MSAALevel; ++sj) + // { + // int xi = x * MSAALevel + si; + // int yi = y * MSAALevel + sj; + // int indexSamper = yi * _width * MSAALevel + xi; + // if (samplers_mask_MSAA[indexSamper]) + // { + // color += samplers_color_MSAA[indexSamper]; + // a += 1.0f; + // } + // } + // } + // if(a > 0.0f) + // { + // frame_buf[index] = color / SamplersPerPixel; + // } + // } + // } } ProfileManager.EndSample(); } - //三角形Clipping操作,对于部分在clipping volume中的图元, - //硬件实现时一般只对部分顶点z值在near,far之间的图元进行clipping操作, - //而部分顶点x,y值在x,y裁剪平面之间的图元则不进行裁剪,只是通过一个比viewport更大一些的guard-band区域进行整体剔除(相当于放大x,y的测试范围) - //这样x,y裁剪平面之间的图元最终在frame buffer上进行Scissor测试。 - //此处的实现简化为只整体剔除,不做任何clipping操作。对于x,y裁剪没问题,虽然没扩大region,也可以最后在frame buffer上裁剪掉。 - //对于z的裁剪由于没有处理,会看到整个三角形消失导致的边缘不齐整 - bool Clipped(Vector4[] v) - { - //Clip space使用GAMES101规范,右手坐标系,n为+1, f为-1 - //裁剪(仅整体剔除) - //实际的硬件是在Clip space裁剪,所以此处我们也使用clip space (当然由于我们不真正的裁剪,只是整体剔除,所以其实在NDC操作更方便) - for (int i = 0; i < 3; ++i) - { - var vertex = v[i]; - var w = vertex.w; - w = w >= 0 ? w : -w; //由于NDC中总是满足-1<=Zndc<=1, 而当 w < 0 时,-w >= Zclip = Zndc*w >= w。所以此时clip space的坐标范围是[w,-w], 为了比较时更明确,将w取正 - - bool inside = (vertex.x <= w && vertex.x >= -w - && vertex.y <= w && vertex.y >= -w - && vertex.z <= w && vertex.z >= -w); - if (inside) - { - //不裁剪三角形,只要有任意一点在clip space中则三角形整体保留 - return false; - } - } - - //三个顶点都不在三角形中则剔除 - return true; - } - - #region Wireframe mode - //Breshham算法画线,颜色使用线性插值(非透视校正) - private void DrawLine(Vector3 begin, Vector3 end, Color colorBegin, Color colorEnd) - { - int x1 = Mathf.FloorToInt(begin.x); - int y1 = Mathf.FloorToInt(begin.y); - int x2 = Mathf.FloorToInt(end.x); - int y2 = Mathf.FloorToInt(end.y); - - int x, y, dx, dy, dx1, dy1, px, py, xe, ye, i; - - dx = x2 - x1; - dy = y2 - y1; - dx1 = Math.Abs(dx); - dy1 = Math.Abs(dy); - px = 2 * dy1 - dx1; - py = 2 * dx1 - dy1; - - Color c1 = colorBegin; - Color c2 = colorEnd; - - if (dy1 <= dx1) - { - if (dx >= 0) - { - x = x1; - y = y1; - xe = x2; - } - else - { - x = x2; - y = y2; - xe = x1; - c1 = colorEnd; - c2 = colorBegin; - } - Vector3 point = new Vector3(x, y, 1.0f); - SetPixel(point, c1); - for (i = 0; x < xe; i++) - { - x++; - if (px < 0) - { - px += 2 * dy1; - } - else - { - if ((dx < 0 && dy < 0) || (dx > 0 && dy > 0)) - { - y++; - } - else - { - y--; - } - px += 2 * (dy1 - dx1); - } - - Vector3 pt = new Vector3(x, y, 1.0f); - float t = 1.0f - (float)(xe - x) / dx1; - Color line_color = Color.Lerp(c1, c2, t); - SetPixel(pt, line_color); - } - } - else - { - if (dy >= 0) - { - x = x1; - y = y1; - ye = y2; - } - else - { - x = x2; - y = y2; - ye = y1; - c1 = colorEnd; - c2 = colorBegin; - } - Vector3 point = new Vector3(x, y, 1.0f); - SetPixel(point, c1); - - for (i = 0; y < ye; i++) - { - y++; - if (py <= 0) - { - py += 2 * dx1; - } - else - { - if ((dx < 0 && dy < 0) || (dx > 0 && dy > 0)) - { - x++; - } - else - { - x--; - } - py += 2 * (dx1 - dy1); - } - Vector3 pt = new Vector3(x, y, 1.0f); - float t = 1.0f - (float)(ye - y) / dy1; - Color line_color = Color.Lerp(c1, c2, t); - SetPixel(pt, line_color); - } - } - } - - private void RasterizeWireframe(Triangle t) - { - ProfileManager.BeginSample("Rasterizer.RasterizeWireframe"); - DrawLine(t.Vertex0.Position, t.Vertex1.Position, t.Vertex0.Color, t.Vertex1.Color); - DrawLine(t.Vertex1.Position, t.Vertex2.Position, t.Vertex1.Color, t.Vertex2.Color); - DrawLine(t.Vertex2.Position, t.Vertex0.Position, t.Vertex2.Color, t.Vertex0.Color); - ProfileManager.EndSample(); - } - - #endregion + + @@ -668,94 +389,12 @@ namespace URasterizer } } } - else - { - int MSAALevel = (int)_config.MSAA; - float sampler_dis = 1.0f / MSAALevel; - float sampler_dis_half = sampler_dis * 0.5f; - - for (int y = minPY; y < maxPY; ++y) - { - for (int x = minPX; x < maxPX; ++x) - { - //检查每个子像素是否在三角形内,如果在进行重心坐标插值和深度测试 - for(int si=0; si samplers_depth_MSAA[index]) - { - samplers_depth_MSAA[index] = zp; - samplers_mask_MSAA[index] = true; - - //透视校正插值 - Color color_p = (alpha * t.Vertex0.Color / v[0].w + beta * t.Vertex1.Color / v[1].w + gamma * t.Vertex2.Color / v[2].w) * z; - samplers_color_MSAA[index] = color_p; - } - } - } - } - - } - } - } - - ProfileManager.EndSample(); - } - - bool IsInsideTriangle(int x, int y, Triangle t, float offsetX=0.5f, float offsetY=0.5f) - { - ProfileManager.BeginSample("Rasterizer.IsInsideTriangle"); - var v = _tmpVector3s; - v[0] = new Vector3(t.Vertex0.Position.x, t.Vertex0.Position.y, t.Vertex0.Position.z); - v[1] = new Vector3(t.Vertex1.Position.x, t.Vertex1.Position.y, t.Vertex1.Position.z); - v[2] = new Vector3(t.Vertex2.Position.x, t.Vertex2.Position.y, t.Vertex2.Position.z); - - //当前像素中心位置p - Vector3 p = new Vector3(x + offsetX, y + offsetY, 0); - Vector3 v0p = p - v[0]; v0p[2] = 0; - Vector3 v01 = v[1] - v[0]; v01[2] = 0; - Vector3 cross0p = Vector3.Cross(v0p, v01); - - Vector3 v1p = p - v[1]; v1p[2] = 0; - Vector3 v12 = v[2] - v[1]; v12[2] = 0; - Vector3 cross1p = Vector3.Cross(v1p, v12); - - if(cross0p.z * cross1p.z > 0) - { - Vector3 v2p = p - v[2]; v2p[2] = 0; - Vector3 v20 = v[0] - v[2]; v20[2] = 0; - Vector3 cross2p = Vector3.Cross(v2p, v20); - if(cross2p.z * cross1p.z > 0) - { - ProfileManager.EndSample(); - return true; - } - } - ProfileManager.EndSample(); - return false; } + + Vector3 ComputeBarycentric2D(float x, float y, Triangle t) { ProfileManager.BeginSample("Rasterizer.ComputeBarycentric2D"); @@ -777,46 +416,37 @@ namespace URasterizer return y * _width + x; } - public void SetPixel(Vector3 point, Color color) - { - if(point.x < 0 || point.x >= _width || point.y < 0 || point.y >= _height) - { - return; - } - int idx = (int)point.y * _width + (int)point.x; - frame_buf[idx] = color; - } public void UpdateFrame() { ProfileManager.BeginSample("CameraRenderer.UpdateFrame"); - switch (_config.DisplayBuffer) - { - case DisplayBufferType.Color: - texture.SetPixels(frame_buf); - break; - case DisplayBufferType.DepthRed: - case DisplayBufferType.DepthGray: - for (int i = 0; i < depth_buf.Length; ++i) - { - //depth_buf中的值范围是[0,1],且最近处为1,最远处为0。因此可视化后背景是黑色 - float c = depth_buf[i]; - if(_config.DisplayBuffer == DisplayBufferType.DepthRed) - { - temp_buf[i] = new Color(c, 0, 0); - } - else - { - temp_buf[i] = new Color(c, c, c); - } - } - texture.SetPixels(temp_buf); - break; - } + // switch (_config.DisplayBuffer) + // { + // case DisplayBufferType.Color: + // texture.SetPixels(frame_buf); + // break; + // case DisplayBufferType.DepthRed: + // case DisplayBufferType.DepthGray: + // for (int i = 0; i < depth_buf.Length; ++i) + // { + // //depth_buf中的值范围是[0,1],且最近处为1,最远处为0。因此可视化后背景是黑色 + // float c = depth_buf[i]; + // if(_config.DisplayBuffer == DisplayBufferType.DepthRed) + // { + // temp_buf[i] = new Color(c, 0, 0); + // } + // else + // { + // temp_buf[i] = new Color(c, c, c); + // } + // } + // texture.SetPixels(temp_buf); + // break; + // } - texture.Apply(); + // texture.Apply(); if (StatDelegate != null) { diff --git a/URasterizer/Assets/URasterizer/Codes/IRasterizer.cs b/URasterizer/Assets/URasterizer/Codes/IRasterizer.cs index a7465b6..ce494cf 100644 --- a/URasterizer/Assets/URasterizer/Codes/IRasterizer.cs +++ b/URasterizer/Assets/URasterizer/Codes/IRasterizer.cs @@ -4,9 +4,12 @@ namespace URasterizer { public interface IRasterizer { + string Name { get; } void Clear(BufferMask mask); void Draw(RenderingObject ro, Camera camera); + Texture ColorTexture { get; } + void UpdateFrame(); FragmentShader CurrentFragmentShader { get; set; } diff --git a/URasterizer/Assets/URasterizer/Codes/RenderingObject.cs b/URasterizer/Assets/URasterizer/Codes/RenderingObject.cs index 2dbdf27..cd730b5 100644 --- a/URasterizer/Assets/URasterizer/Codes/RenderingObject.cs +++ b/URasterizer/Assets/URasterizer/Codes/RenderingObject.cs @@ -7,6 +7,7 @@ namespace URasterizer { public Mesh mesh; public bool DoubleSideRendering; + [HideInInspector, System.NonSerialized] public Texture2D texture; //缓存避免在draw loop中从mesh copy @@ -23,7 +24,10 @@ namespace URasterizer public ComputeBuffer VertexBuffer; public ComputeBuffer NormalBuffer; - public ComputeBuffer OutBuffer; + public ComputeBuffer TriangleBuffer; + public ComputeBuffer VertexOutBuffer; + + public ComputeBuffer RenderTriangleBuffer; private void Start() @@ -47,23 +51,43 @@ namespace URasterizer //为了能在运行时动态切换是否使用 GPU Driven Rasterizer, 这里同时把GPU使用的Compute Buffer创建出来 int vertexCnt = mesh.vertexCount; - VertexBuffer = new ComputeBuffer(vertexCnt, 3*sizeof(float)); - VertexBuffer.name = "VertexBuffer"; + VertexBuffer = new ComputeBuffer(vertexCnt, 3*sizeof(float)); VertexBuffer.SetData(MeshVertices); - NormalBuffer = new ComputeBuffer(vertexCnt, 3*sizeof(float)); - NormalBuffer.name = "NormalBuffer"; + NormalBuffer = new ComputeBuffer(vertexCnt, 3*sizeof(float)); NormalBuffer.SetData(MeshNormals); + + //初始化三角形数组,每个三角形包含3个索引值 + //注意这儿对调了v0和v1的索引,因为原来的 0,1,2是顺时针的,对调后是 1,0,2是逆时针的 + //Unity Quard模型的两个三角形索引分别是 0,3,1,3,0,2 转换后为 3,0,1,0,3,2 + int idxCnt = MeshTriangles.Length; + Vector3Int[] triangles = new Vector3Int[idxCnt/3]; + for(int i=0; i < triangles.Length; ++i){ + triangles[i].x = MeshTriangles[i*3+1]; + triangles[i].y = MeshTriangles[i*3]; + triangles[i].z = MeshTriangles[i*3+2]; + } + + TriangleBuffer = new ComputeBuffer(triangles.Length, 3*sizeof(uint)); + TriangleBuffer.SetData(triangles); - OutBuffer = new ComputeBuffer(vertexCnt, 13*sizeof(float)); - OutBuffer.name = "OutBuffer"; + VertexOutBuffer = new ComputeBuffer(vertexCnt, 13*sizeof(float)); + + RenderTriangleBuffer = new ComputeBuffer(MeshTriangles.Length/3, sizeof(uint)*3, ComputeBufferType.Append); } void OnDestroy() { VertexBuffer.Release(); + VertexBuffer = null; NormalBuffer.Release(); - OutBuffer.Release(); + NormalBuffer = null; + VertexOutBuffer.Release(); + VertexOutBuffer = null; + TriangleBuffer.Release(); + TriangleBuffer = null; + RenderTriangleBuffer.Release(); + RenderTriangleBuffer = null; } diff --git a/URasterizer/Assets/URasterizer/DefaultAssets/URComputeShader.compute b/URasterizer/Assets/URasterizer/DefaultAssets/URComputeShader.compute index d4fd459..c465bf5 100644 --- a/URasterizer/Assets/URasterizer/DefaultAssets/URComputeShader.compute +++ b/URasterizer/Assets/URasterizer/DefaultAssets/URComputeShader.compute @@ -1,7 +1,10 @@ #pragma kernel VertexProcess +#pragma kernel ClearFrame +#pragma kernel TriangleSetup +#pragma kernel RasterizeTriangle -struct OutBuf +struct VertexOutBuf { float4 clipPos; float3 worldPos; @@ -9,22 +12,343 @@ struct OutBuf float3 worldNormal; }; +float4 ClearColor; +uint2 FrameBufferSize; float4x4 matMVP; float4x4 matModel; +uint currentRenderTriangle; + StructuredBuffer vertexBuffer; StructuredBuffer normalBuffer; -RWStructuredBuffer outBuffer; +RWStructuredBuffer vertexOutBuffer; + +StructuredBuffer triangleBuffer; // All triangles of the mesh +AppendStructuredBuffer renderTriangleBuffer; //triangles to render + +ConsumeStructuredBuffer renderCosumeBuffer; + +RWTexture2D frameColorTexture; + + +[numthreads(32,24,1)] +void ClearFrame(uint3 id : SV_DispatchThreadID) +{ + frameColorTexture[id.xy] = ClearColor; +} [numthreads(768,1,1)] void VertexProcess (uint3 id : SV_DispatchThreadID) { float4 pos = float4(vertexBuffer[id.x].x, vertexBuffer[id.x].y, -vertexBuffer[id.x].z, 1.0f); float3 normal = float3(normalBuffer[id.x].x, normalBuffer[id.x].y, -normalBuffer[id.x].z); - outBuffer[id.x].clipPos = mul(matMVP, pos); - outBuffer[id.x].worldPos = mul(matModel, pos).xyz; - outBuffer[id.x].objectNormal = normal; - outBuffer[id.x].worldNormal = mul( (float3x3)matModel , normal); + vertexOutBuffer[id.x].clipPos = mul(matMVP, pos); + vertexOutBuffer[id.x].worldPos = mul(matModel, pos).xyz; + vertexOutBuffer[id.x].objectNormal = normal; + vertexOutBuffer[id.x].worldNormal = mul( (float3x3)matModel , normal); +} + +bool Clipped(float4 v[3]) +{ + //Clip space使用GAMES101规范,右手坐标系,n为+1, f为-1 + //裁剪(仅整体剔除) + for (int i = 0; i < 3; ++i) + { + float4 vertex = v[i]; + float w = vertex.w; + w = w >= 0 ? w : -w; //由于NDC中总是满足-1<=Zndc<=1, 而当 w < 0 时,-w >= Zclip = Zndc*w >= w。所以此时clip space的坐标范围是[w,-w], 为了比较时更明确,将w取正 + + bool inside = (vertex.x <= w && vertex.x >= -w + && vertex.y <= w && vertex.y >= -w + && vertex.z <= w && vertex.z >= -w); + if (inside) + { + //不裁剪三角形,只要有任意一点在clip space中则三角形整体保留 + return false; + } + } + + //三个顶点都不在三角形中则剔除 + return true; +} + +[numthreads(768,1,1)] +void TriangleSetup(uint3 id : SV_DispatchThreadID) +{ + uint3 tri = triangleBuffer[id.x]; + int idx0 = tri.x; + int idx1 = tri.y; + int idx2 = tri.z; + + float4 v[3]; + v[0] = vertexOutBuffer[idx0].clipPos; + v[1] = vertexOutBuffer[idx1].clipPos; + v[2] = vertexOutBuffer[idx2].clipPos; + + if(Clipped(v)){ + return; + } + + //Perspective division, clip space to NDC + for (int k=0; k<3; k++) + { + v[k].x /= v[k].w; + v[k].y /= v[k].w; + v[k].z /= v[k].w; + } + + //backface culling + float3 e01 = v[1].xyz - v[0].xyz; + float3 e02 = v[2].xyz - v[0].xyz; + float3 crossv = cross(e01, e02); + if (crossv.z < 0) + { + return; + } + + //Viewport Transform, NDC to screen space + for (k = 0; k < 3; k++) + { + float4 vec = v[k]; + vec.x = 0.5f * FrameBufferSize.x * (vec.x + 1.0f); + vec.y = 0.5f * FrameBufferSize.y * (vec.y + 1.0f); + + //在硬件渲染中,NDC的z值经过硬件的透视除法之后就直接写入到depth buffer了,如果要调整需要在投影矩阵中调整 + //由于我们是软件渲染,所以可以在这里调整z值。 + + //GAMES101约定的NDC是右手坐标系,z值范围是[-1,1],但n为1,f为-1,因此值越大越靠近n。 + //为了可视化Depth buffer,将最终的z值从[-1,1]映射到[0,1]的范围,因此最终n为1, f为0。离n越近,深度值越大。 + //由于远处的z值为0,因此clear时深度要清除为0,然后深度测试时,使用GREATER测试。 + //(当然我们也可以在这儿反转z值,然后clear时使用float.MaxValue清除,并且深度测试时使用LESS_EQUAL测试) + //注意:这儿的z值调整并不是必要的,只是为了可视化时便于映射为颜色值。其实也可以在可视化的地方调整。 + //但是这么调整后,正好和Unity在DirectX平台的Reverse z一样,让near plane附近的z值的浮点数精度提高。 + vec.z = vec.z * 0.5f + 0.5f; + + v[k] = vec; + } + + //Screen space coordinates saved in clip pos + vertexOutBuffer[idx0].clipPos = v[0]; + vertexOutBuffer[idx1].clipPos = v[1]; + vertexOutBuffer[idx2].clipPos = v[2]; + + //triangle actually rendering append to this buffer + renderTriangleBuffer.Append(uint3(idx0, idx1, idx2)); +} + +float3 ComputeBarycentric2D(float x, float y, float4 v[3]) +{ + float c1 = (x * (v[1].y - v[2].y) + (v[2].x - v[1].x) * y + v[1].x * v[2].y - v[2].x * v[1].y) / (v[0].x * (v[1].y - v[2].y) + (v[2].x - v[1].x) * v[0].y + v[1].x * v[2].y - v[2].x * v[1].y); + float c2 = (x * (v[2].y - v[0].y) + (v[0].x - v[2].x) * y + v[2].x * v[0].y - v[0].x * v[2].y) / (v[1].x * (v[2].y - v[0].y) + (v[0].x - v[2].x) * v[1].y + v[2].x * v[0].y - v[0].x * v[2].y); + float c3 = (x * (v[0].y - v[1].y) + (v[1].x - v[0].x) * y + v[0].x * v[1].y - v[1].x * v[0].y) / (v[2].x * (v[0].y - v[1].y) + (v[1].x - v[0].x) * v[2].y + v[0].x * v[1].y - v[1].x * v[0].y); + return float3(c1, c2, c3); +} + +[numthreads(32,24,1)] +void RasterizeTriangle(uint3 id : SV_DispatchThreadID) +{ + uint3 tri = renderCosumeBuffer.Consume();// triangleBuffer[currentRenderTriangle]; //triangleBuffer + int idx0 = tri.x; + int idx1 = tri.y; + int idx2 = tri.z; + float4 v[3]; + v[0] = vertexOutBuffer[idx0].clipPos; + v[1] = vertexOutBuffer[idx1].clipPos; + v[2] = vertexOutBuffer[idx2].clipPos; + + //这个函数,每个像素都会执行,最好用一个buffer存所有的需要渲染的三角形的AABB,避免每次都在这儿计算 + //Find out the bounding box of current triangle. + float minX = v[0].x; + float maxX = minX; + float minY = v[0].y; + float maxY = minY; + + for(int i=1; i<3; ++i) + { + float x = v[i].x; + if(x < minX) + { + minX = x; + } else if(x > maxX) + { + maxX = x; + } + float y = v[i].y; + if(y < minY) + { + minY = y; + }else if(y > maxY) + { + maxY = y; + } + } + + int minPX = floor(minX); + minPX = minPX < 0 ? 0 : minPX; + int maxPX = ceil(maxX); + maxPX = maxPX > FrameBufferSize.x ? FrameBufferSize.x : maxPX; + int minPY = floor(minY); + minPY = minPY < 0 ? 0 : minPY; + int maxPY = ceil(maxY); + maxPY = maxPY > FrameBufferSize.y ? FrameBufferSize.y : maxPY; + + //判断当前像素是否在AABB中 + if(id.x < minPX || id.x > maxPX || id.y < minPY || id.y > maxPY){ + return; + } + + int x = id.x; + int y = id.y; + + //计算重心坐标 + float3 c = ComputeBarycentric2D(x, y, v); + float alpha = c.x; + float beta = c.y; + float gamma = c.z; + if(alpha < 0 || beta < 0 || gamma < 0){ + return; + } + //透视校正插值,z为透视校正插值后的view space z值 + float z = 1.0f / (alpha / v[0].w + beta / v[1].w + gamma / v[2].w); + //zp为透视校正插值后的screen space z值 + float zp = (alpha * v[0].z / v[0].w + beta * v[1].z / v[1].w + gamma * v[2].z / v[2].w) * z; + + //深度测试(注意我们这儿的z值越大越靠近near plane,因此大值通过测试) + + //if(zp >= depth_buf[index]) + + //depth_buf[index] = zp; + + //透视校正插值 + + //float3 color_p = (alpha * t.Vertex0.Color / v[0].w + beta * t.Vertex1.Color / v[1].w + gamma * t.Vertex2.Color / v[2].w) * z; + //Vector2 uv_p = (alpha * t.Vertex0.Texcoord / v[0].w + beta * t.Vertex1.Texcoord / v[1].w + gamma * t.Vertex2.Texcoord / v[2].w) * z; + //Vector3 normal_p = (alpha * t.Vertex0.Normal / v[0].w + beta * t.Vertex1.Normal / v[1].w + gamma * t.Vertex2.Normal / v[2].w) * z; + //Vector3 worldPos_p = (alpha * t.Vertex0.WorldPos / v[0].w + beta * t.Vertex1.WorldPos / v[1].w + gamma * t.Vertex2.WorldPos / v[2].w) * z; + //Vector3 worldNormal_p = (alpha * t.Vertex0.WorldNormal / v[0].w + beta * t.Vertex1.WorldNormal / v[1].w + gamma * t.Vertex2.WorldNormal / v[2].w) * z; + + //if (CurrentFragmentShader != null) + { + //FragmentShaderInputData input = new FragmentShaderInputData(); + //input.Color = color_p; + //input.UV = uv_p; + //input.Texture = ro.texture; + //input.LocalNormal = normal_p; + //input.WorldPos = worldPos_p; + //input.WorldNormal = worldNormal_p; + + frameColorTexture[id.xy] = float4(1,1,1,1); + } + } + + + +// void RasterizeTriangle(Triangle t, RenderingObject ro) +// { +// ProfileManager.BeginSample("Rasterizer.RasterizeTriangle"); +// var v = _tmpVector4s; +// v[0] = t.Vertex0.Position; +// v[1] = t.Vertex1.Position; +// v[2] = t.Vertex2.Position; + +// //Find out the bounding box of current triangle. +// float minX = v[0].x; +// float maxX = minX; +// float minY = v[0].y; +// float maxY = minY; + +// for(int i=1; i<3; ++i) +// { +// float x = v[i].x; +// if(x < minX) +// { +// minX = x; +// } else if(x > maxX) +// { +// maxX = x; +// } +// float y = v[i].y; +// if(y < minY) +// { +// minY = y; +// }else if(y > maxY) +// { +// maxY = y; +// } +// } + +// int minPX = Mathf.FloorToInt(minX); +// minPX = minPX < 0 ? 0 : minPX; +// int maxPX = Mathf.CeilToInt(maxX); +// maxPX = maxPX > _width ? _width : maxPX; +// int minPY = Mathf.FloorToInt(minY); +// minPY = minPY < 0 ? 0 : minPY; +// int maxPY = Mathf.CeilToInt(maxY); +// maxPY = maxPY > _height ? _height : maxPY; + +// if(_config.MSAA == MSAALevel.Disabled) +// { +// // 遍历当前三角形包围中的所有像素,判断当前像素是否在三角形中 +// // 对于在三角形中的像素,使用重心坐标插值得到深度值,并使用z buffer进行深度测试和写入 +// for(int y = minPY; y < maxPY; ++y) +// { +// for(int x = minPX; x < maxPX; ++x) +// { +// //if(IsInsideTriangle(x, y, t)) //-->检测是否在三角形内比使用重心坐标检测要慢,因此先计算重心坐标,再检查3个坐标是否有小于0 +// { +// //计算重心坐标 +// var c = ComputeBarycentric2D(x, y, t); +// float alpha = c.x; +// float beta = c.y; +// float gamma = c.z; +// if(alpha < 0 || beta < 0 || gamma < 0){ +// continue; +// } +// //透视校正插值,z为透视校正插值后的view space z值 +// float z = 1.0f / (alpha / v[0].w + beta / v[1].w + gamma / v[2].w); +// //zp为透视校正插值后的screen space z值 +// float zp = (alpha * v[0].z / v[0].w + beta * v[1].z / v[1].w + gamma * v[2].z / v[2].w) * z; + +// //深度测试(注意我们这儿的z值越大越靠近near plane,因此大值通过测试) +// int index = GetIndex(x, y); +// if(zp >= depth_buf[index]) +// { +// depth_buf[index] = zp; + +// //透视校正插值 +// ProfileManager.BeginSample("Rasterizer.RasterizeTriangle.AttributeInterpolation"); +// Color color_p = (alpha * t.Vertex0.Color / v[0].w + beta * t.Vertex1.Color / v[1].w + gamma * t.Vertex2.Color / v[2].w) * z; +// Vector2 uv_p = (alpha * t.Vertex0.Texcoord / v[0].w + beta * t.Vertex1.Texcoord / v[1].w + gamma * t.Vertex2.Texcoord / v[2].w) * z; +// Vector3 normal_p = (alpha * t.Vertex0.Normal / v[0].w + beta * t.Vertex1.Normal / v[1].w + gamma * t.Vertex2.Normal / v[2].w) * z; +// Vector3 worldPos_p = (alpha * t.Vertex0.WorldPos / v[0].w + beta * t.Vertex1.WorldPos / v[1].w + gamma * t.Vertex2.WorldPos / v[2].w) * z; +// Vector3 worldNormal_p = (alpha * t.Vertex0.WorldNormal / v[0].w + beta * t.Vertex1.WorldNormal / v[1].w + gamma * t.Vertex2.WorldNormal / v[2].w) * z; +// ProfileManager.EndSample(); + +// if (CurrentFragmentShader != null) +// { +// FragmentShaderInputData input = new FragmentShaderInputData(); +// input.Color = color_p; +// input.UV = uv_p; +// input.Texture = ro.texture; +// input.LocalNormal = normal_p; +// input.WorldPos = worldPos_p; +// input.WorldNormal = worldNormal_p; + +// ProfileManager.BeginSample("Rasterizer.RasterizeTriangle.FragmentShader"); +// frame_buf[index] = CurrentFragmentShader(input); +// ProfileManager.EndSample(); +// } + + + +// } +// } +// } +// } +// } + +// ProfileManager.EndSample(); +// } diff --git a/URasterizer/Assets/URasterizer/RenderingConfig.asset b/URasterizer/Assets/URasterizer/RenderingConfig.asset index 8160aea..eb1ee7d 100644 --- a/URasterizer/Assets/URasterizer/RenderingConfig.asset +++ b/URasterizer/Assets/URasterizer/RenderingConfig.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d5fa123a60a768444af03a384cb34a74, type: 3} m_Name: RenderingConfig m_EditorClassIdentifier: - ClearColor: {r: 0, g: 0, b: 0, a: 1} + ClearColor: {r: 0.056692798, g: 0.41403675, b: 0.9245283, a: 0.24705882} WireframeMode: 0 BackfaceCulling: 1 DisplayBuffer: 0 diff --git a/URasterizer/URasterizer.sln b/URasterizer/URasterizer.sln index 12f81b6..25a1787 100644 --- a/URasterizer/URasterizer.sln +++ b/URasterizer/URasterizer.sln @@ -1,15 +1,18 @@  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{463dc408-4d10-7b51-7865-ada4f8fb4d91}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{08C43D46-104D-517B-7865-ADA4F8FB4D91}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {463dc408-4d10-7b51-7865-ada4f8fb4d91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {463dc408-4d10-7b51-7865-ada4f8fb4d91}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08C43D46-104D-517B-7865-ADA4F8FB4D91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08C43D46-104D-517B-7865-ADA4F8FB4D91}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08C43D46-104D-517B-7865-ADA4F8FB4D91}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08C43D46-104D-517B-7865-ADA4F8FB4D91}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/URasterizer/UserSettings/EditorUserSettings.asset b/URasterizer/UserSettings/EditorUserSettings.asset index 7e5141f..6d56fb6 100644 --- a/URasterizer/UserSettings/EditorUserSettings.asset +++ b/URasterizer/UserSettings/EditorUserSettings.asset @@ -14,6 +14,12 @@ EditorUserSettings: RecentlyUsedScenePath-2: value: 224247031146466e3f0f1f361531560a1305571f1e293524283b1429e7f2073be7e933a7f234362820 flags: 0 + RecentlyUsedScenePath-3: + value: 22424703114646680c031c2e153010231512162f3f6712353e3d2e30e7ee3168b0a923e7ee2e26 + flags: 0 + RecentlyUsedScenePath-4: + value: 22424703114646680c031c2e153010231512162f3f6712353e3d2e30e7ee3168b3a923e7ee2e26 + flags: 0 vcSharedLogLevel: value: 0d5e400f0650 flags: 0 -- GitLab