GitHub
6 年前
当前提交
dbde5edb
共有 60 个文件被更改,包括 6234 次插入 和 4442 次删除
-
998TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1101_Unlit.png
-
6TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1101_Unlit.png.meta
-
999TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1102_Unlit_Distortion.png
-
17TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1102_Unlit_Distortion.png.meta
-
998TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1103_Unlit_Distortion_DepthTest.png
-
6TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1103_Unlit_Distortion_DepthTest.png.meta
-
999TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1205_Lit_Transparent_Refraction.png
-
6TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1205_Lit_Transparent_Refraction.png.meta
-
998TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1206_Lit_Transparent_Distortion.png
-
6TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1206_Lit_Transparent_Distortion.png.meta
-
3TestProjects/LWGraphicsTest/ProjectSettings/EditorBuildSettings.asset
-
6com.unity.render-pipelines.core/CoreRP/Textures/DepthBits.cs
-
3com.unity.render-pipelines.high-definition/CHANGELOG.md
-
4com.unity.render-pipelines.high-definition/HDRP/Camera/HDCameraFrameHistoryType.cs
-
60com.unity.render-pipelines.high-definition/HDRP/Editor/Material/Decal/DecalProjectorComponentEditor.cs
-
1com.unity.render-pipelines.high-definition/HDRP/Lighting/Reflection/PlanarReflectionProbeCache.cs
-
7com.unity.render-pipelines.high-definition/HDRP/Material/Decal/DecalProjectorComponent.cs
-
83com.unity.render-pipelines.high-definition/HDRP/Material/GGXConvolution/RuntimeFilterIBL.cs
-
2com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDCustomSamplerId.cs
-
114com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderPipeline.cs
-
5com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDStringConstants.cs
-
9com.unity.render-pipelines.high-definition/HDRP/RenderPipelineResources/ApplyDistorsion.compute
-
58com.unity.render-pipelines.high-definition/HDRP/RenderPipelineResources/ColorPyramid.compute
-
62com.unity.render-pipelines.high-definition/HDRP/RenderPipelineResources/DepthPyramid.compute
-
20com.unity.render-pipelines.lightweight/CHANGELOG.md
-
18com.unity.render-pipelines.lightweight/LWRP/Editor/LightweightRenderPipelineLightEditor.cs
-
42com.unity.render-pipelines.lightweight/LWRP/LightweightPipeline.cs
-
76com.unity.render-pipelines.lightweight/LWRP/Passes/SetupLightweightConstanstPass.cs
-
3com.unity.render-pipelines.lightweight/LWRP/ShaderLibrary/Input.hlsl
-
43com.unity.render-pipelines.lightweight/LWRP/ShaderLibrary/Lighting.hlsl
-
999com.unity.testing.srp.lightweight/Tests/ReferenceImages/Linear/OSXEditor/Metal/053_UnlitShader.png
-
999com.unity.testing.srp.lightweight/Tests/ReferenceImages/Linear/WindowsEditor/Direct3D11/053_UnlitShader.png
-
173com.unity.render-pipelines.high-definition/HDRP/Editor/Material/Decal/DecalProjectorComponentHandle.cs
-
11com.unity.render-pipelines.high-definition/HDRP/Editor/Material/Decal/DecalProjectorComponentHandle.cs.meta
-
136com.unity.render-pipelines.high-definition/HDRP/RenderPipelineResources/MipGenerator.cs
-
11com.unity.render-pipelines.high-definition/HDRP/RenderPipelineResources/MipGenerator.cs.meta
-
163com.unity.render-pipelines.lightweight/LWRP/Editor/LightweightRenderPipelineCameraEditor.cs
-
22com.unity.testing.srp.lightweight/Tests/ReferenceImages/Linear/OSXEditor/Metal/054_Lighting_Attenuation.png
-
88com.unity.testing.srp.lightweight/Tests/ReferenceImages/Linear/OSXEditor/Metal/054_Lighting_Attenuation.png.meta
-
17com.unity.testing.srp.lightweight/Tests/ReferenceImages/Linear/WindowsEditor/Direct3D11/054_Lighting_Attenuation.png
-
88com.unity.testing.srp.lightweight/Tests/ReferenceImages/Linear/WindowsEditor/Direct3D11/054_Lighting_Attenuation.png.meta
-
8com.unity.testing.srp.lightweight/Tests/Scenes/052_Lighting_Attenuation.meta
-
8com.unity.testing.srp.lightweight/Tests/Scenes/054_Lighting_Attenuation.meta
-
1001com.unity.testing.srp.lightweight/Tests/Scenes/054_Lighting_Attenuation.unity
-
7com.unity.testing.srp.lightweight/Tests/Scenes/054_Lighting_Attenuation.unity.meta
-
8com.unity.testing.srp.lightweight/Tests/Scenes/054_Lighting_Attenuation/LightingData.asset.meta
-
88com.unity.testing.srp.lightweight/Tests/Scenes/054_Lighting_Attenuation/Lightmap-0_comp_dir.png.meta
-
88com.unity.testing.srp.lightweight/Tests/Scenes/054_Lighting_Attenuation/Lightmap-0_comp_light.exr.meta
-
7com.unity.testing.srp.lightweight/Tests/Scenes/054_Lighting_Attenuation/LightingData.asset
-
87com.unity.testing.srp.lightweight/Tests/Scenes/054_Lighting_Attenuation/Lightmap-0_comp_dir.png
-
408com.unity.testing.srp.lightweight/Tests/Scenes/054_Lighting_Attenuation/Lightmap-0_comp_light.exr
-
11com.unity.render-pipelines.high-definition/HDRP/RenderPipelineResources/BufferPyramidProcessor.cs.meta
-
236com.unity.render-pipelines.high-definition/HDRP/RenderPipelineResources/BufferPyramidProcessor.cs
-
11com.unity.render-pipelines.high-definition/HDRP/RenderPipelineResources/BufferPyramid.cs.meta
-
176com.unity.render-pipelines.high-definition/HDRP/RenderPipelineResources/BufferPyramid.cs
-
173com.unity.render-pipelines.lightweight/LWRP/Editor/LightweightCameraEditor.cs
-
0/com.unity.render-pipelines.lightweight/LWRP/Editor/LightweightRenderPipelineLightEditor.cs.meta
-
0/com.unity.render-pipelines.lightweight/LWRP/Editor/LightweightRenderPipelineLightEditor.cs
-
0/com.unity.render-pipelines.lightweight/LWRP/Editor/LightweightRenderPipelineCameraEditor.cs.meta
998
TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1101_Unlit.png
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
999
TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1102_Unlit_Distortion.png
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
998
TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1103_Unlit_Distortion_DepthTest.png
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
999
TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1205_Lit_Transparent_Refraction.png
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
998
TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/1206_Lit_Transparent_Distortion.png
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
using UnityEngine.Serialization; |
|||
|
|||
DepthPyramid, |
|||
ColorPyramid, |
|||
VolumetricLighting, |
|||
Count |
|||
} |
|
|||
#include "CoreRP/ShaderLibrary/Common.hlsl" |
|||
|
|||
// ------------------------------------------------ |
|||
// Algorithm |
|||
// ------------------------------------------------ |
|||
// Downsample a depth texture by taking min value of sampled pixels |
|||
|
|||
// ------------------------------------------------ |
|||
// Variants |
|||
// ------------------------------------------------ |
|||
|
|||
#pragma kernel KDepthDownSample8 KERNEL_SIZE=8 KERNEL_NAME=KDepthDownSample8 |
|||
#pragma kernel KDepthDownSample1 KERNEL_SIZE=1 KERNEL_NAME=KDepthDownSample1 |
|||
|
|||
// ------------------------------------------------ |
|||
// Texture buffers |
|||
// ------------------------------------------------ |
|||
#pragma kernel KDepthDownsample8DualUav KERNEL_SIZE=8 KERNEL_NAME=KDepthDownsample8DualUav |
|||
Texture2D<float2> _Source; |
|||
RW_TEXTURE2D(float2, _Result); |
|||
|
|||
SamplerState sampler_PointClamp; //TODO: could we use min-sampler instead of using ALU? |
|||
RW_TEXTURE2D(float, _Destination); |
|||
RW_TEXTURE2D(float, _Source); |
|||
// ------------------------------------------------ |
|||
// Constant buffers |
|||
// ------------------------------------------------ |
|||
float4 _SrcSize; |
|||
int2 _RectOffset; // Offset in source texture |
|||
float4 _Size; // x: src width, y: src height, zw: unused |
|||
// ------------------------------------------------ |
|||
// Kernel |
|||
// ------------------------------------------------ |
|||
|
|||
# define MAX_DEPTH(l, r) min(l, r) |
|||
# define MAX_DEPTH(l, r) max(l, r) |
|||
// Downsample a depth texture by taking the min value of sampled pixels |
|||
// The size of the dispatch is (DstMipSize / KernelSize). |
|||
void KERNEL_NAME(uint2 groupId : SV_GroupID, uint2 groupThreadId : SV_GroupThreadID, uint2 dispatchThreadId : SV_DispatchThreadID) |
|||
void KERNEL_NAME(uint2 dispatchThreadId : SV_DispatchThreadID) |
|||
uint2 srcPixelUL = _RectOffset + (dispatchThreadId << 1); |
|||
// Offset by 0.5 so sampling get the proper pixels |
|||
float2 offset = float2(srcPixelUL) + 0.5; |
|||
uint2 srcPixelUL = dispatchThreadId << 1; |
|||
#if defined(PLATFORM_SUPPORT_GATHER) |
|||
float4 depths = GATHER_RED_TEXTURE2D(_Source, sampler_PointClamp, offset * _SrcSize.zw).wzxy; |
|||
#else |
|||
float p00 = SAMPLE_TEXTURE2D_LOD(_Source, sampler_PointClamp, (offset) * _SrcSize.zw, 0.0).x; |
|||
float p10 = SAMPLE_TEXTURE2D_LOD(_Source, sampler_PointClamp, (offset + float2(1.0, 0.0)) * _SrcSize.zw, 0.0).x; |
|||
float p01 = SAMPLE_TEXTURE2D_LOD(_Source, sampler_PointClamp, (offset + float2(0.0, 1.0)) * _SrcSize.zw, 0.0).x; |
|||
float p11 = SAMPLE_TEXTURE2D_LOD(_Source, sampler_PointClamp, (offset + float2(1.0, 1.0)) * _SrcSize.zw, 0.0).x; |
|||
// '_Source' and '_Destination' are two different MIP levels of the same texture. |
|||
// TODO: Use Gather here instead of 4 loads |
|||
uint2 size = uint2(_Size.xy) - 1u; |
|||
float p00 = _Source[min(srcPixelUL + uint2(0u, 0u), size)]; |
|||
float p10 = _Source[min(srcPixelUL + uint2(1u, 0u), size)]; |
|||
float p01 = _Source[min(srcPixelUL + uint2(0u, 1u), size)]; |
|||
float p11 = _Source[min(srcPixelUL + uint2(1u, 1u), size)]; |
|||
#endif |
|||
float maxDepth = MAX_DEPTH(MAX_DEPTH(depths.x, depths.y), MAX_DEPTH(depths.z, depths.w)); |
|||
uint2 dstPixel = (_RectOffset >> 1) + dispatchThreadId; |
|||
_Result[dstPixel] = float2(minDepth, maxDepth); |
|||
_Destination[dispatchThreadId] = minDepth; |
|||
#undef MAX_DEPTH |
999
com.unity.testing.srp.lightweight/Tests/ReferenceImages/Linear/OSXEditor/Metal/053_UnlitShader.png
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
999
com.unity.testing.srp.lightweight/Tests/ReferenceImages/Linear/WindowsEditor/Direct3D11/053_UnlitShader.png
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
using System; |
|||
using UnityEngine; |
|||
|
|||
namespace UnityEditor.IMGUI.Controls |
|||
{ |
|||
public class DecalProjectorComponentHandle : PrimitiveBoundsHandle |
|||
{ |
|||
public DecalProjectorComponentHandle() : base() |
|||
{ |
|||
midpointHandleDrawFunction = DrawHandleMidpoint; |
|||
} |
|||
|
|||
public UnityEngine.Vector3 size { get { return GetSize(); } set { SetSize(value); } } |
|||
|
|||
protected override void DrawWireframe() |
|||
{ |
|||
Handles.DrawWireCube(center, size); |
|||
DrawArrowDownProjectionDirection(); |
|||
} |
|||
|
|||
protected void DrawArrowDownProjectionDirection() |
|||
{ |
|||
int controlID = GUIUtility.GetControlID(GetHashCode(), FocusType.Passive); |
|||
Quaternion arrowRotation = Quaternion.LookRotation(Vector3.down, Vector3.right); |
|||
float arrowSize = size.y * 0.25f; |
|||
Handles.ArrowHandleCap(controlID, center, arrowRotation, arrowSize, EventType.Repaint); |
|||
} |
|||
|
|||
// Could use a static readonly LUT, but this would require syncing with order with enum HandleDirection.
|
|||
protected static Color ColorFromHandleDirection(HandleDirection handleDirection) |
|||
{ |
|||
switch (handleDirection) |
|||
{ |
|||
case HandleDirection.PositiveX: |
|||
case HandleDirection.NegativeX: |
|||
return Handles.xAxisColor; |
|||
|
|||
case HandleDirection.PositiveY: |
|||
case HandleDirection.NegativeY: |
|||
return Handles.yAxisColor; |
|||
|
|||
case HandleDirection.PositiveZ: |
|||
case HandleDirection.NegativeZ: |
|||
return Handles.zAxisColor; |
|||
|
|||
default: |
|||
throw new ArgumentOutOfRangeException("handleDirection", "Must be PositiveX, NegativeX, PositiveY, NegativeY, PositiveZ, or NegativeZ"); |
|||
} |
|||
} |
|||
|
|||
protected static void PlaneVerticesFromHandleDirection(ref Vector3[] outVertices, HandleDirection handleDirection, Vector3 boundsSize, Vector3 boundsCenter) |
|||
{ |
|||
Vector3 boundsMin = boundsSize * -0.5f + boundsCenter; |
|||
Vector3 boundsMax = boundsSize * 0.5f + boundsCenter; |
|||
|
|||
switch (handleDirection) |
|||
{ |
|||
case HandleDirection.PositiveX: |
|||
outVertices[0] = new Vector3(boundsMax.x, boundsMin.y, boundsMin.z); |
|||
outVertices[1] = new Vector3(boundsMax.x, boundsMax.y, boundsMin.z); |
|||
outVertices[2] = new Vector3(boundsMax.x, boundsMax.y, boundsMax.z); |
|||
outVertices[3] = new Vector3(boundsMax.x, boundsMin.y, boundsMax.z); |
|||
break; |
|||
|
|||
case HandleDirection.NegativeX: |
|||
outVertices[0] = new Vector3(boundsMin.x, boundsMin.y, boundsMin.z); |
|||
outVertices[1] = new Vector3(boundsMin.x, boundsMax.y, boundsMin.z); |
|||
outVertices[2] = new Vector3(boundsMin.x, boundsMax.y, boundsMax.z); |
|||
outVertices[3] = new Vector3(boundsMin.x, boundsMin.y, boundsMax.z); |
|||
break; |
|||
|
|||
case HandleDirection.PositiveY: |
|||
outVertices[0] = new Vector3(boundsMin.x, boundsMax.y, boundsMin.z); |
|||
outVertices[1] = new Vector3(boundsMax.x, boundsMax.y, boundsMin.z); |
|||
outVertices[2] = new Vector3(boundsMax.x, boundsMax.y, boundsMax.z); |
|||
outVertices[3] = new Vector3(boundsMin.x, boundsMax.y, boundsMax.z); |
|||
break; |
|||
|
|||
case HandleDirection.NegativeY: |
|||
outVertices[0] = new Vector3(boundsMin.x, boundsMin.y, boundsMin.z); |
|||
outVertices[1] = new Vector3(boundsMax.x, boundsMin.y, boundsMin.z); |
|||
outVertices[2] = new Vector3(boundsMax.x, boundsMin.y, boundsMax.z); |
|||
outVertices[3] = new Vector3(boundsMin.x, boundsMin.y, boundsMax.z); |
|||
break; |
|||
|
|||
case HandleDirection.PositiveZ: |
|||
outVertices[0] = new Vector3(boundsMin.x, boundsMin.y, boundsMax.z); |
|||
outVertices[1] = new Vector3(boundsMax.x, boundsMin.y, boundsMax.z); |
|||
outVertices[2] = new Vector3(boundsMax.x, boundsMax.y, boundsMax.z); |
|||
outVertices[3] = new Vector3(boundsMin.x, boundsMax.y, boundsMax.z); |
|||
break; |
|||
|
|||
case HandleDirection.NegativeZ: |
|||
outVertices[0] = new Vector3(boundsMin.x, boundsMin.y, boundsMin.z); |
|||
outVertices[1] = new Vector3(boundsMax.x, boundsMin.y, boundsMin.z); |
|||
outVertices[2] = new Vector3(boundsMax.x, boundsMax.y, boundsMin.z); |
|||
outVertices[3] = new Vector3(boundsMin.x, boundsMax.y, boundsMin.z); |
|||
break; |
|||
|
|||
default: |
|||
throw new ArgumentOutOfRangeException("handleDirection", "Must be PositiveX, NegativeX, PositiveY, NegativeY, PositiveZ, or NegativeZ"); |
|||
} |
|||
} |
|||
|
|||
// As DrawHandleDirectionPlane() is called every frame during gizmo rendering, we pre-allocate a scratch array for passing along to DrawSolidRectangleWithOutline()
|
|||
// rather than putting pressure on the garbage collector every frame. Since DrawHandleDirectionPlane() is responsible for drawing handles, we will only ever call
|
|||
// it from the main thread, so there is no realistic risk of a race condition occuring due to this static allocation.
|
|||
private static Vector3[] s_PlaneVertices = new Vector3[4]; |
|||
protected static void DrawHandleDirectionPlane(HandleDirection handleDirection, Vector3 size, Vector3 center) |
|||
{ |
|||
// Set global Handles.color to white to avoid global state from interfering with the desired colors set at DrawSolidRectangleWithOutline().
|
|||
Color handlesColorPrevious = Handles.color; |
|||
Handles.color = Color.white; |
|||
|
|||
Color planeColorOutline = ColorFromHandleDirection(handleDirection); |
|||
const float planeColorFillAlpha = 0.25f; |
|||
Color planeColorFill = planeColorOutline * planeColorFillAlpha; |
|||
|
|||
PlaneVerticesFromHandleDirection(ref s_PlaneVertices, handleDirection, size, center); |
|||
Handles.DrawSolidRectangleWithOutline(s_PlaneVertices, planeColorFill, planeColorOutline); |
|||
|
|||
Handles.color = handlesColorPrevious; |
|||
} |
|||
|
|||
// Utility function for determining the handle direction (which face) we are currently rendering within DrawHandleMidpoint().
|
|||
// Ideally, the base class PrimitiveBoundsHandle would expose the reverse lookup: HandleDirectionFromControlID().
|
|||
// In lieu of an explicit way to handle this look up, we derive the handle direction from the handle rotation.
|
|||
protected static HandleDirection HandleDirectionFromRotation(Quaternion rotation) |
|||
{ |
|||
if (rotation.x == 0.0f && rotation.y == 0.7071068f && rotation.z == 0.0f && rotation.w == 0.7071068f) |
|||
{ |
|||
return HandleDirection.PositiveX; |
|||
} |
|||
else if (rotation.x == 0.0f && rotation.y == -0.7071068f && rotation.z == 0.0f && rotation.w == 0.7071068f) |
|||
{ |
|||
return HandleDirection.NegativeX; |
|||
} |
|||
else if (rotation.x == -0.7071068f && rotation.y == 0.0f && rotation.z == 0.0f && rotation.w == 0.7071068f) |
|||
{ |
|||
return HandleDirection.PositiveY; |
|||
} |
|||
else if (rotation.x == 0.7071068f && rotation.y == 0.0f && rotation.z == 0.0f && rotation.w == 0.7071068f) |
|||
{ |
|||
return HandleDirection.NegativeY; |
|||
} |
|||
else if (rotation.x == 0.0f && rotation.y == 0.0f && rotation.z == 0.0f && rotation.w == 1.0f) |
|||
{ |
|||
return HandleDirection.PositiveZ; |
|||
} |
|||
else if (rotation.x == 0.0f && rotation.y == 1.0f && rotation.z == 0.0f && rotation.w == 0.0f) |
|||
{ |
|||
return HandleDirection.NegativeZ; |
|||
} |
|||
else |
|||
{ |
|||
throw new ArgumentOutOfRangeException("rotation", "Must point down PositiveX, NegativeX, PositiveY, NegativeY, PositiveZ, or NegativeZ"); |
|||
} |
|||
} |
|||
|
|||
protected void DrawHandleMidpoint(int handleControlID, Vector3 handlePosition, Quaternion handleRotation, float handleSize, EventType eventType) |
|||
{ |
|||
// Highlight the plane we are currently interacting with.
|
|||
if (handleControlID == GUIUtility.hotControl) |
|||
{ |
|||
HandleDirection handleDirection = HandleDirectionFromRotation(handleRotation); |
|||
DrawHandleDirectionPlane(handleDirection, size, center); |
|||
} |
|||
|
|||
// Draw standard PrimitiveBoundsHandle mindpoint handle.
|
|||
Handles.DotHandleCap(handleControlID, handlePosition, handleRotation, handleSize, eventType); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: b29d5aac6308c3a4088143d90a1f1925 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using UnityEngine.Rendering; |
|||
|
|||
namespace UnityEngine.Experimental.Rendering.HDPipeline |
|||
{ |
|||
using RTHandle = RTHandleSystem.RTHandle; |
|||
|
|||
public class MipGenerator |
|||
{ |
|||
RTHandle m_TempColorTarget; |
|||
|
|||
ComputeShader m_DepthPyramidCS; |
|||
ComputeShader m_ColorPyramidCS; |
|||
|
|||
int m_DepthDownsampleKernel; |
|||
int m_ColorDownsampleKernel; |
|||
int m_ColorDownsampleKernelCopyMip0; |
|||
int m_ColorGaussianKernel; |
|||
|
|||
public MipGenerator(HDRenderPipelineAsset asset) |
|||
{ |
|||
m_DepthPyramidCS = asset.renderPipelineResources.depthPyramidCS; |
|||
m_ColorPyramidCS = asset.renderPipelineResources.colorPyramidCS; |
|||
|
|||
m_DepthDownsampleKernel = m_DepthPyramidCS.FindKernel("KDepthDownsample8DualUav"); |
|||
m_ColorDownsampleKernel = m_ColorPyramidCS.FindKernel("KColorDownsample"); |
|||
m_ColorDownsampleKernelCopyMip0 = m_ColorPyramidCS.FindKernel("KColorDownsampleCopyMip0"); |
|||
m_ColorGaussianKernel = m_ColorPyramidCS.FindKernel("KColorGaussian"); |
|||
} |
|||
|
|||
public void Release() |
|||
{ |
|||
RTHandles.Release(m_TempColorTarget); |
|||
m_TempColorTarget = null; |
|||
} |
|||
|
|||
// Generates an in-place depth pyramid
|
|||
// Returns the number of generated mips
|
|||
// TODO: Mip-mapping depth is problematic for precision at lower mips, generate a packed atlas instead
|
|||
public int RenderMinDepthPyramid(CommandBuffer cmd, Vector2Int size, RenderTexture texture) |
|||
{ |
|||
var cs = m_DepthPyramidCS; |
|||
int kernel = m_DepthDownsampleKernel; |
|||
int srcMipLevel = 0; |
|||
int srcMipWidth = size.x; |
|||
int srcMipHeight = size.y; |
|||
|
|||
// TODO: Do it 1x MIP at a time for now. In the future, do 4x MIPs per pass, or even use a single pass.
|
|||
// Note: Gather() doesn't take a LOD parameter and we cannot bind an SRV of a MIP level,
|
|||
// and we don't support Min samplers either. So we are forced to perform 4x loads.
|
|||
while (srcMipWidth >= 2 || srcMipHeight >= 2) |
|||
{ |
|||
int dstMipWidth = Mathf.Max(1, srcMipWidth >> 1); |
|||
int dstMipHeight = Mathf.Max(1, srcMipHeight >> 1); |
|||
|
|||
cmd.SetComputeVectorParam(cs, HDShaderIDs._Size, new Vector4(srcMipWidth, srcMipHeight, 0f, 0f)); |
|||
cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._Source, texture, srcMipLevel); |
|||
cmd.SetComputeTextureParam(cs, kernel, HDShaderIDs._Destination, texture, srcMipLevel + 1); |
|||
cmd.DispatchCompute(cs, kernel, (dstMipWidth + 7) / 8, (dstMipHeight + 7) / 8, 1); |
|||
|
|||
srcMipLevel++; |
|||
srcMipWidth = srcMipWidth >> 1; |
|||
srcMipHeight = srcMipHeight >> 1; |
|||
} |
|||
|
|||
return srcMipLevel - 1; |
|||
} |
|||
|
|||
// Generates the gaussian pyramid of source into destination
|
|||
// We can't do it in place as the color pyramid has to be read while writing to the color
|
|||
// buffer in some cases (e.g. refraction, distortion)
|
|||
// Returns the number of mips
|
|||
public int RenderColorGaussianPyramid(CommandBuffer cmd, Vector2Int size, Texture source, RenderTexture destination) |
|||
{ |
|||
// Only create the temporary target on-demand in case the game doesn't actually need it
|
|||
if (m_TempColorTarget == null) |
|||
{ |
|||
m_TempColorTarget = RTHandles.Alloc( |
|||
Vector2.one * 0.5f, |
|||
filterMode: FilterMode.Bilinear, |
|||
colorFormat: RenderTextureFormat.ARGBHalf, |
|||
sRGB: false, |
|||
enableRandomWrite: true, |
|||
useMipMap: false, |
|||
enableMSAA: false, |
|||
name: "Temp Gaussian Pyramid Target" |
|||
); |
|||
} |
|||
|
|||
var cs = m_ColorPyramidCS; |
|||
int downsampleKernel = m_ColorDownsampleKernel; |
|||
int downsampleKernelMip0 = m_ColorDownsampleKernelCopyMip0; |
|||
int gaussianKernel = m_ColorGaussianKernel; |
|||
int srcMipLevel = 0; |
|||
int srcMipWidth = size.x; |
|||
int srcMipHeight = size.y; |
|||
|
|||
|
|||
// Note: smaller mips are excluded as we don't need them and the gaussian compute works
|
|||
// on 8x8 blocks
|
|||
// TODO: Could be further optimized by merging the smaller mips to reduce the amount of dispatches
|
|||
while (srcMipWidth >= 8 || srcMipHeight >= 8) |
|||
{ |
|||
int dstMipWidth = Mathf.Max(1, srcMipWidth >> 1); |
|||
int dstMipHeight = Mathf.Max(1, srcMipHeight >> 1); |
|||
|
|||
cmd.SetComputeVectorParam(cs, HDShaderIDs._Size, new Vector4(srcMipWidth, srcMipHeight, 0f, 0f)); |
|||
|
|||
// First dispatch also copies src to dst mip0
|
|||
if (srcMipLevel == 0) |
|||
{ |
|||
cmd.SetComputeTextureParam(cs, downsampleKernelMip0, HDShaderIDs._Source, source, 0); |
|||
cmd.SetComputeTextureParam(cs, downsampleKernelMip0, HDShaderIDs._Mip0, destination, 0); |
|||
cmd.SetComputeTextureParam(cs, downsampleKernelMip0, HDShaderIDs._Destination, m_TempColorTarget); |
|||
cmd.DispatchCompute(cs, downsampleKernelMip0, (dstMipWidth + 7) / 8, (dstMipHeight + 7) / 8, 1); |
|||
} |
|||
else |
|||
{ |
|||
cmd.SetComputeTextureParam(cs, downsampleKernel, HDShaderIDs._Source, destination, srcMipLevel); |
|||
cmd.SetComputeTextureParam(cs, downsampleKernel, HDShaderIDs._Destination, m_TempColorTarget); |
|||
cmd.DispatchCompute(cs, downsampleKernel, (dstMipWidth + 7) / 8, (dstMipHeight + 7) / 8, 1); |
|||
} |
|||
|
|||
cmd.SetComputeVectorParam(cs, HDShaderIDs._Size, new Vector4(dstMipWidth, dstMipHeight, 0f, 0f)); |
|||
cmd.SetComputeTextureParam(cs, gaussianKernel, HDShaderIDs._Source, m_TempColorTarget); |
|||
cmd.SetComputeTextureParam(cs, gaussianKernel, HDShaderIDs._Destination, destination, srcMipLevel + 1); |
|||
cmd.DispatchCompute(cs, gaussianKernel, (dstMipWidth + 7) / 8, (dstMipHeight + 7) / 8, 1); |
|||
|
|||
srcMipLevel++; |
|||
srcMipWidth = srcMipWidth >> 1; |
|||
srcMipHeight = srcMipHeight >> 1; |
|||
} |
|||
|
|||
return srcMipLevel - 1; |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 9fb5527a68d5789439b1caea92b87bdf |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System; |
|||
using UnityEditor.AnimatedValues; |
|||
using UnityEngine; |
|||
using UnityEngine.Rendering; |
|||
using UnityEngine.Experimental.Rendering.LightweightPipeline; |
|||
|
|||
namespace UnityEditor.Experimental.Rendering.LightweightPipeline |
|||
{ |
|||
[CustomEditorForRenderPipeline(typeof(Camera), typeof(LightweightPipelineAsset))] |
|||
[CanEditMultipleObjects] |
|||
internal class LightweightRenderPipelineCameraEditor : CameraEditor |
|||
{ |
|||
internal class Styles |
|||
{ |
|||
public readonly GUIContent renderingPathLabel = EditorGUIUtility.TrTextContent("Rendering Path", "Lightweight Render Pipeline only supports Forward rendering path."); |
|||
public readonly GUIContent[] renderingPathOptions = { EditorGUIUtility.TrTextContent("Forward") }; |
|||
public readonly string hdrDisabledWarning = "HDR rendering is disabled in the Lightweight Render Pipeline asset."; |
|||
public readonly string mssaDisabledWarning = "Anti-aliasing is disabled in the Lightweight Render Pipeline asset."; |
|||
}; |
|||
|
|||
public Camera camera { get { return target as Camera; } } |
|||
|
|||
// Animation Properties
|
|||
public bool isSameClearFlags { get { return !settings.clearFlags.hasMultipleDifferentValues; } } |
|||
public bool isSameOrthographic { get { return !settings.orthographic.hasMultipleDifferentValues; } } |
|||
|
|||
static readonly int[] s_RenderingPathValues = {0}; |
|||
static Styles s_Styles; |
|||
LightweightPipelineAsset m_LightweightPipeline; |
|||
|
|||
readonly AnimBool m_ShowBGColorAnim = new AnimBool(); |
|||
readonly AnimBool m_ShowOrthoAnim = new AnimBool(); |
|||
readonly AnimBool m_ShowTargetEyeAnim = new AnimBool(); |
|||
|
|||
void SetAnimationTarget(AnimBool anim, bool initialize, bool targetValue) |
|||
{ |
|||
if (initialize) |
|||
{ |
|||
anim.value = targetValue; |
|||
anim.valueChanged.AddListener(Repaint); |
|||
} |
|||
else |
|||
{ |
|||
anim.target = targetValue; |
|||
} |
|||
} |
|||
|
|||
void UpdateAnimationValues(bool initialize) |
|||
{ |
|||
SetAnimationTarget(m_ShowBGColorAnim, initialize, isSameClearFlags && (camera.clearFlags == CameraClearFlags.SolidColor || camera.clearFlags == CameraClearFlags.Skybox)); |
|||
SetAnimationTarget(m_ShowOrthoAnim, initialize, isSameOrthographic && camera.orthographic); |
|||
SetAnimationTarget(m_ShowTargetEyeAnim, initialize, settings.targetEye.intValue != (int)StereoTargetEyeMask.Both || PlayerSettings.virtualRealitySupported); |
|||
} |
|||
|
|||
public new void OnEnable() |
|||
{ |
|||
m_LightweightPipeline = GraphicsSettings.renderPipelineAsset as LightweightPipelineAsset; |
|||
|
|||
settings.OnEnable(); |
|||
UpdateAnimationValues(true); |
|||
} |
|||
|
|||
public void OnDisable() |
|||
{ |
|||
m_ShowBGColorAnim.valueChanged.RemoveListener(Repaint); |
|||
m_ShowOrthoAnim.valueChanged.RemoveListener(Repaint); |
|||
m_ShowTargetEyeAnim.valueChanged.RemoveListener(Repaint); |
|||
|
|||
m_LightweightPipeline = null; |
|||
} |
|||
|
|||
public override void OnInspectorGUI() |
|||
{ |
|||
if (s_Styles == null) |
|||
s_Styles = new Styles(); |
|||
|
|||
settings.Update(); |
|||
UpdateAnimationValues(false); |
|||
|
|||
settings.DrawClearFlags(); |
|||
|
|||
using (var group = new EditorGUILayout.FadeGroupScope(m_ShowBGColorAnim.faded)) |
|||
if (group.visible) settings.DrawBackgroundColor(); |
|||
|
|||
settings.DrawCullingMask(); |
|||
|
|||
EditorGUILayout.Space(); |
|||
|
|||
settings.DrawProjection(); |
|||
settings.DrawClippingPlanes(); |
|||
settings.DrawNormalizedViewPort(); |
|||
|
|||
EditorGUILayout.Space(); |
|||
settings.DrawDepth(); |
|||
DrawRenderingPath(); |
|||
DrawTargetTexture(); |
|||
settings.DrawOcclusionCulling(); |
|||
DrawHDR(); |
|||
DrawMSAA(); |
|||
settings.DrawVR(); |
|||
settings.DrawMultiDisplay(); |
|||
|
|||
using (var group = new EditorGUILayout.FadeGroupScope(m_ShowTargetEyeAnim.faded)) |
|||
if (group.visible) settings.DrawTargetEye(); |
|||
|
|||
EditorGUILayout.Space(); |
|||
EditorGUILayout.Space(); |
|||
settings.ApplyModifiedProperties(); |
|||
} |
|||
|
|||
void DrawRenderingPath() |
|||
{ |
|||
using (new EditorGUI.DisabledScope(true)) |
|||
{ |
|||
EditorGUILayout.IntPopup(s_Styles.renderingPathLabel, 0, s_Styles.renderingPathOptions, s_RenderingPathValues); |
|||
} |
|||
} |
|||
|
|||
void DrawHDR() |
|||
{ |
|||
bool disabled = settings.HDR.boolValue && !m_LightweightPipeline.supportsHDR; |
|||
using (new EditorGUI.DisabledScope(disabled)) |
|||
{ |
|||
settings.DrawHDR(); |
|||
} |
|||
|
|||
if (disabled) |
|||
EditorGUILayout.HelpBox(s_Styles.hdrDisabledWarning, MessageType.Info); |
|||
} |
|||
|
|||
void DrawTargetTexture() |
|||
{ |
|||
EditorGUILayout.PropertyField(settings.targetTexture); |
|||
|
|||
if (!settings.targetTexture.hasMultipleDifferentValues) |
|||
{ |
|||
var texture = settings.targetTexture.objectReferenceValue as RenderTexture; |
|||
int pipelineSamplesCount = m_LightweightPipeline.msaaSampleCount; |
|||
|
|||
if (texture && texture.antiAliasing > pipelineSamplesCount) |
|||
{ |
|||
string pipelineMSAACaps = (pipelineSamplesCount > 1) |
|||
? String.Format("is set to support {0}x", pipelineSamplesCount) |
|||
: "has MSAA disabled"; |
|||
EditorGUILayout.HelpBox(String.Format("Camera target texture requires {0}x MSAA. Lightweight pipeline {1}.", texture.antiAliasing, pipelineMSAACaps), |
|||
MessageType.Warning, true); |
|||
} |
|||
} |
|||
} |
|||
|
|||
void DrawMSAA() |
|||
{ |
|||
bool disabled = settings.allowMSAA.boolValue && m_LightweightPipeline.msaaSampleCount <= 1; |
|||
using (new EditorGUI.DisabledScope(disabled)) |
|||
{ |
|||
settings.DrawMSAA(); |
|||
} |
|||
|
|||
if (disabled) |
|||
EditorGUILayout.HelpBox(s_Styles.mssaDisabledWarning, MessageType.Info); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 77454810ee6d94b4f8e94a5db6b50f60 |
|||
TextureImporter: |
|||
fileIDToRecycleName: {} |
|||
externalObjects: {} |
|||
serializedVersion: 7 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 1 |
|||
sRGBTexture: 1 |
|||
linearTexture: 0 |
|||
fadeOut: 0 |
|||
borderMipMap: 0 |
|||
mipMapsPreserveCoverage: 0 |
|||
alphaTestReferenceValue: 0.5 |
|||
mipMapFadeDistanceStart: 1 |
|||
mipMapFadeDistanceEnd: 3 |
|||
bumpmap: |
|||
convertToNormalMap: 0 |
|||
externalNormalMap: 0 |
|||
heightScale: 0.25 |
|||
normalMapFilter: 0 |
|||
isReadable: 0 |
|||
streamingMipmaps: 0 |
|||
streamingMipmapsPriority: 0 |
|||
grayScaleToAlpha: 0 |
|||
generateCubemap: 6 |
|||
cubemapConvolution: 0 |
|||
seamlessCubemap: 0 |
|||
textureFormat: 1 |
|||
maxTextureSize: 2048 |
|||
textureSettings: |
|||
serializedVersion: 2 |
|||
filterMode: -1 |
|||
aniso: -1 |
|||
mipBias: -100 |
|||
wrapU: -1 |
|||
wrapV: -1 |
|||
wrapW: -1 |
|||
nPOTScale: 1 |
|||
lightmap: 0 |
|||
compressionQuality: 50 |
|||
spriteMode: 0 |
|||
spriteExtrude: 1 |
|||
spriteMeshType: 1 |
|||
alignment: 0 |
|||
spritePivot: {x: 0.5, y: 0.5} |
|||
spritePixelsToUnits: 100 |
|||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
|||
spriteGenerateFallbackPhysicsShape: 1 |
|||
alphaUsage: 1 |
|||
alphaIsTransparency: 0 |
|||
spriteTessellationDetail: -1 |
|||
textureType: 0 |
|||
textureShape: 1 |
|||
singleChannelComponent: 0 |
|||
maxTextureSizeSet: 0 |
|||
compressionQualitySet: 0 |
|||
textureFormatSet: 0 |
|||
platformSettings: |
|||
- serializedVersion: 2 |
|||
buildTarget: DefaultTexturePlatform |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 1 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
spriteSheet: |
|||
serializedVersion: 2 |
|||
sprites: [] |
|||
outline: [] |
|||
physicsShape: [] |
|||
bones: [] |
|||
spriteID: |
|||
vertices: [] |
|||
indices: |
|||
edges: [] |
|||
weights: [] |
|||
spritePackingTag: |
|||
pSDRemoveMatte: 0 |
|||
pSDShowRemoveMatteOption: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
17
com.unity.testing.srp.lightweight/Tests/ReferenceImages/Linear/WindowsEditor/Direct3D11/054_Lighting_Attenuation.png
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: e07d781d2760434448497ef86cd0d485 |
|||
TextureImporter: |
|||
fileIDToRecycleName: {} |
|||
externalObjects: {} |
|||
serializedVersion: 7 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 0 |
|||
sRGBTexture: 1 |
|||
linearTexture: 0 |
|||
fadeOut: 0 |
|||
borderMipMap: 0 |
|||
mipMapsPreserveCoverage: 0 |
|||
alphaTestReferenceValue: 0.5 |
|||
mipMapFadeDistanceStart: 1 |
|||
mipMapFadeDistanceEnd: 3 |
|||
bumpmap: |
|||
convertToNormalMap: 0 |
|||
externalNormalMap: 0 |
|||
heightScale: 0.25 |
|||
normalMapFilter: 0 |
|||
isReadable: 1 |
|||
streamingMipmaps: 0 |
|||
streamingMipmapsPriority: 0 |
|||
grayScaleToAlpha: 0 |
|||
generateCubemap: 6 |
|||
cubemapConvolution: 0 |
|||
seamlessCubemap: 0 |
|||
textureFormat: 1 |
|||
maxTextureSize: 2048 |
|||
textureSettings: |
|||
serializedVersion: 2 |
|||
filterMode: -1 |
|||
aniso: -1 |
|||
mipBias: -100 |
|||
wrapU: -1 |
|||
wrapV: -1 |
|||
wrapW: -1 |
|||
nPOTScale: 0 |
|||
lightmap: 0 |
|||
compressionQuality: 50 |
|||
spriteMode: 0 |
|||
spriteExtrude: 1 |
|||
spriteMeshType: 1 |
|||
alignment: 0 |
|||
spritePivot: {x: 0.5, y: 0.5} |
|||
spritePixelsToUnits: 100 |
|||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
|||
spriteGenerateFallbackPhysicsShape: 1 |
|||
alphaUsage: 1 |
|||
alphaIsTransparency: 0 |
|||
spriteTessellationDetail: -1 |
|||
textureType: 0 |
|||
textureShape: 1 |
|||
singleChannelComponent: 0 |
|||
maxTextureSizeSet: 0 |
|||
compressionQualitySet: 0 |
|||
textureFormatSet: 0 |
|||
platformSettings: |
|||
- serializedVersion: 2 |
|||
buildTarget: DefaultTexturePlatform |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 0 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
spriteSheet: |
|||
serializedVersion: 2 |
|||
sprites: [] |
|||
outline: [] |
|||
physicsShape: [] |
|||
bones: [] |
|||
spriteID: |
|||
vertices: [] |
|||
indices: |
|||
edges: [] |
|||
weights: [] |
|||
spritePackingTag: |
|||
pSDRemoveMatte: 0 |
|||
pSDShowRemoveMatteOption: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 12028400f279f18429395c8b46a8b90b |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 079312de60075284cb8f893462f9b6f8 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
com.unity.testing.srp.lightweight/Tests/Scenes/054_Lighting_Attenuation.unity
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 93a99004f07ca6f4dbbc9ccb319c7698 |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 56ea575a5cc3efc4f9ffc9f1b53eb566 |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 25800000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 4d3edf7b91d25034c888da1f58ae39e7 |
|||
TextureImporter: |
|||
fileIDToRecycleName: {} |
|||
externalObjects: {} |
|||
serializedVersion: 7 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 1 |
|||
sRGBTexture: 0 |
|||
linearTexture: 0 |
|||
fadeOut: 0 |
|||
borderMipMap: 0 |
|||
mipMapsPreserveCoverage: 0 |
|||
alphaTestReferenceValue: 0.5 |
|||
mipMapFadeDistanceStart: 1 |
|||
mipMapFadeDistanceEnd: 3 |
|||
bumpmap: |
|||
convertToNormalMap: 0 |
|||
externalNormalMap: 0 |
|||
heightScale: 0.25 |
|||
normalMapFilter: 0 |
|||
isReadable: 0 |
|||
streamingMipmaps: 1 |
|||
streamingMipmapsPriority: 0 |
|||
grayScaleToAlpha: 0 |
|||
generateCubemap: 6 |
|||
cubemapConvolution: 0 |
|||
seamlessCubemap: 0 |
|||
textureFormat: 1 |
|||
maxTextureSize: 2048 |
|||
textureSettings: |
|||
serializedVersion: 2 |
|||
filterMode: 1 |
|||
aniso: 3 |
|||
mipBias: 0 |
|||
wrapU: 1 |
|||
wrapV: 1 |
|||
wrapW: 1 |
|||
nPOTScale: 1 |
|||
lightmap: 0 |
|||
compressionQuality: 50 |
|||
spriteMode: 0 |
|||
spriteExtrude: 1 |
|||
spriteMeshType: 1 |
|||
alignment: 0 |
|||
spritePivot: {x: 0.5, y: 0.5} |
|||
spritePixelsToUnits: 100 |
|||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
|||
spriteGenerateFallbackPhysicsShape: 1 |
|||
alphaUsage: 1 |
|||
alphaIsTransparency: 0 |
|||
spriteTessellationDetail: -1 |
|||
textureType: 0 |
|||
textureShape: 1 |
|||
singleChannelComponent: 0 |
|||
maxTextureSizeSet: 0 |
|||
compressionQualitySet: 0 |
|||
textureFormatSet: 0 |
|||
platformSettings: |
|||
- serializedVersion: 2 |
|||
buildTarget: DefaultTexturePlatform |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 2 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
spriteSheet: |
|||
serializedVersion: 2 |
|||
sprites: [] |
|||
outline: [] |
|||
physicsShape: [] |
|||
bones: [] |
|||
spriteID: |
|||
vertices: [] |
|||
indices: |
|||
edges: [] |
|||
weights: [] |
|||
spritePackingTag: |
|||
pSDRemoveMatte: 0 |
|||
pSDShowRemoveMatteOption: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 3e6496c2664a90341b98b6a16d506002 |
|||
TextureImporter: |
|||
fileIDToRecycleName: {} |
|||
externalObjects: {} |
|||
serializedVersion: 7 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 1 |
|||
sRGBTexture: 1 |
|||
linearTexture: 0 |
|||
fadeOut: 0 |
|||
borderMipMap: 0 |
|||
mipMapsPreserveCoverage: 0 |
|||
alphaTestReferenceValue: 0.5 |
|||
mipMapFadeDistanceStart: 1 |
|||
mipMapFadeDistanceEnd: 3 |
|||
bumpmap: |
|||
convertToNormalMap: 0 |
|||
externalNormalMap: 0 |
|||
heightScale: 0.25 |
|||
normalMapFilter: 0 |
|||
isReadable: 0 |
|||
streamingMipmaps: 1 |
|||
streamingMipmapsPriority: 0 |
|||
grayScaleToAlpha: 0 |
|||
generateCubemap: 6 |
|||
cubemapConvolution: 0 |
|||
seamlessCubemap: 0 |
|||
textureFormat: 1 |
|||
maxTextureSize: 2048 |
|||
textureSettings: |
|||
serializedVersion: 2 |
|||
filterMode: 1 |
|||
aniso: 3 |
|||
mipBias: 0 |
|||
wrapU: 1 |
|||
wrapV: 1 |
|||
wrapW: 1 |
|||
nPOTScale: 1 |
|||
lightmap: 0 |
|||
compressionQuality: 50 |
|||
spriteMode: 0 |
|||
spriteExtrude: 1 |
|||
spriteMeshType: 1 |
|||
alignment: 0 |
|||
spritePivot: {x: 0.5, y: 0.5} |
|||
spritePixelsToUnits: 100 |
|||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
|||
spriteGenerateFallbackPhysicsShape: 1 |
|||
alphaUsage: 0 |
|||
alphaIsTransparency: 0 |
|||
spriteTessellationDetail: -1 |
|||
textureType: 6 |
|||
textureShape: 1 |
|||
singleChannelComponent: 0 |
|||
maxTextureSizeSet: 0 |
|||
compressionQualitySet: 0 |
|||
textureFormatSet: 0 |
|||
platformSettings: |
|||
- serializedVersion: 2 |
|||
buildTarget: DefaultTexturePlatform |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 2 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
spriteSheet: |
|||
serializedVersion: 2 |
|||
sprites: [] |
|||
outline: [] |
|||
physicsShape: [] |
|||
bones: [] |
|||
spriteID: |
|||
vertices: [] |
|||
indices: |
|||
edges: [] |
|||
weights: [] |
|||
spritePackingTag: |
|||
pSDRemoveMatte: 0 |
|||
pSDShowRemoveMatteOption: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
|