浏览代码

implement reflection probes using on-chip deferred mechanism for tiled mobile GPUs. WIP

/main
Filip Iliescu 8 年前
当前提交
8e3bfd4a
共有 7 个文件被更改,包括 294 次插入156 次删除
  1. 74
      Assets/ScriptableRenderPipeline/MobileRenderPipeline/ClassicDeferred/ClassicDeferredPipeline.cs
  2. 41
      Assets/ScriptableRenderPipeline/MobileRenderPipeline/ClassicDeferred/Internal-DeferredReflections.shader
  3. 11
      Assets/TestScenes/MobileDeferredTest/ClassicDeferredPipeline.asset
  4. 302
      Assets/TestScenes/MobileDeferredTest/ClassicDeferredTest.unity
  5. 10
      Assets/TestScenes/MobileDeferredTest/Materials/Reflective.mat
  6. 6
      Assets/TestScenes/MobileDeferredTest/Model/Temple/Materials/structure.mat
  7. 6
      Assets/TestScenes/MobileDeferredTest/Model/Temple/Materials/tree.mat

74
Assets/ScriptableRenderPipeline/MobileRenderPipeline/ClassicDeferred/ClassicDeferredPipeline.cs


public Mesh m_PointLightMesh;
public Mesh m_SpotLightMesh;
public Mesh m_QuadMesh;
public Mesh m_BoxMesh;
public Shader finalPassShader;
public Shader deferredShader;

private static int s_GBufferZ;
private static int s_CameraTarget;
private static int s_CameraDepthTexture;
//private static int s_CameraReflectionsTexture;
private static int m_ReflectionsPassNdx;
private Material m_DeferredMaterial;
private Material m_DeferredReflectionMaterial;

m_BlitMaterial = new Material (finalPassShader) { hideFlags = HideFlags.HideAndDontSave };
m_DeferredMaterial = new Material (deferredShader) { hideFlags = HideFlags.HideAndDontSave };
m_DeferredReflectionMaterial = new Material (deferredReflectionShader) { hideFlags = HideFlags.HideAndDontSave };
//m_DeferredReflectionMaterial.SetTexture("_CameraReflectionsTexture", s_CameraReflectionsTexture);
m_ReflectionsPassNdx = m_DeferredMaterial.FindPass ("DEFERRED_REFLECTIONS");
//shadows
m_MatWorldToShadow = new Matrix4x4[k_MaxLights * k_MaxShadowmapPerLights];

// present frame buffer.
FinalPass(loop);
}
static Matrix4x4 GetFlipMatrix()
{
Matrix4x4 flip = Matrix4x4.identity;
bool isLeftHand = ((int)LightDefinitions.USE_LEFTHAND_CAMERASPACE) != 0;
if (isLeftHand) flip.SetColumn(2, new Vector4(0.0f, 0.0f, -1.0f, 0.0f));
return flip;
}
static Matrix4x4 WorldToCamera(Camera camera)
{
return GetFlipMatrix() * camera.worldToCameraMatrix;
}
void RenderReflections(Camera camera, CommandBuffer cmd, CullResults cullResults, ScriptableRenderContext loop)
{
var probes = cullResults.visibleReflectionProbes;
var worldToView = camera.worldToCameraMatrix; //WorldToCamera(camera);
foreach (var rl in probes)
{
var volType = LightDefinitions.BOX_LIGHT;
var cubemap = rl.texture;
// always a box for now
if (cubemap == null)
continue;
var bnds = rl.bounds;
var boxOffset = rl.center; // reflection volume offset relative to cube map capture point
var blendDistance = rl.blendDistance;
var mat = rl.localToWorld;
// var boxProj = (rl.boxProjection != 0);
// var decodeVals = rl.hdr;
// C is reflection volume center in world space (NOT same as cube map capture point)
// var e = bnds.extents; // 0.5f * Vector3.Max(-boxSizes[p], boxSizes[p]);
//Vector3 C = bnds.center; // P + boxOffset;
var C = mat.MultiplyPoint(boxOffset); // same as commented out line above when rot is identity
// var combinedExtent = e + new Vector3(blendDistance, blendDistance, blendDistance);
//
// Vector3 vx = mat.GetColumn(0);
// Vector3 vy = mat.GetColumn(1);
// Vector3 vz = mat.GetColumn(2);
//
// // transform to camera space (becomes a left hand coordinate frame in Unity since Determinant(worldToView)<0)
// vx = worldToView.MultiplyVector(vx);
// vy = worldToView.MultiplyVector(vy);
// vz = worldToView.MultiplyVector(vz);
var Cw = worldToView.MultiplyPoint(C);
var props = new MaterialPropertyBlock ();
props.SetVector ("_LightPos",Cw);
//props.SetFloat ("_LightAsQuad", renderAsQuad ? 1 : 0);
//props.SetVector ("_LightDir", new Vector4(lightDir.x, lightDir.y, lightDir.z, 0.0f));
//props.SetVector ("_LightColor", light.finalColor);
//props.SetMatrix ("_WorldToLight", lightToWorld.inverse);
cmd.DrawMesh (m_BoxMesh, Matrix4x4.identity, m_DeferredReflectionMaterial, 0, m_ReflectionsPassNdx, props);
}
}
void RenderShadowMaps(CullResults cullResults, ScriptableRenderContext loop)

{
RenderLightGeometry (camera, light, cmd, loop);
}
RenderReflections(camera, cmd, inputs, loop);
loop.ExecuteCommandBuffer (cmd);
cmd.Dispose ();

41
Assets/ScriptableRenderPipeline/MobileRenderPipeline/ClassicDeferred/Internal-DeferredReflections.shader


// Calculates reflection contribution from a single probe (rendered as cubes) or default reflection (rendered as full screen quad)
Pass {
Name "DEFERRED_REFLECTIONS"
#pragma target 3.0
#pragma target 4.5
#pragma vertex vert_deferred
#pragma fragment frag

#include "UnityStandardBRDF.cginc"
#include "UnityPBSLighting.cginc"
#ifndef UNITY_FRAMEBUFFER_FETCH_AVAILABLE
#endif
half3 distanceFromAABB(half3 p, half3 aabbMin, half3 aabbMax)
{

half4 frag (unity_v2f_deferred i) : SV_Target
#ifdef UNITY_FRAMEBUFFER_FETCH_AVAILABLE
void frag (unity_v2f_deferred i,
in half4 outGBuffer0 : SV_Target0,
in half4 outGBuffer1 : SV_Target1,
in half4 outGBuffer2 : SV_Target2,
out half4 outEmission : SV_Target3,
in float outLinearDepth : SV_Target4)
#else
half4 frag (unity_v2f_deferred i) : SV_TARGET
#endif
{
// Stripped from UnityDeferredCalculateLightParams, refactor into function ?
i.ray = i.ray * (_ProjectionParams.z / i.ray.z);

float depth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, uv);
#ifndef UNITY_FRAMEBUFFER_FETCH_AVAILABLE
float depth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, uv);
#else
float depth = outLinearDepth;
#endif
half4 gbuffer0 = tex2D (_CameraGBufferTexture0, uv);
half4 gbuffer1 = tex2D (_CameraGBufferTexture1, uv);
half4 gbuffer2 = tex2D (_CameraGBufferTexture2, uv);
#ifndef UNITY_FRAMEBUFFER_FETCH_AVAILABLE
// unpack Gbuffer
half4 gbuffer0 = tex2D (_CameraGBufferTexture0, uv);
half4 gbuffer1 = tex2D (_CameraGBufferTexture1, uv);
half4 gbuffer2 = tex2D (_CameraGBufferTexture2, uv);
#endif
// ---
half3 worldNormalRefl = reflect(eyeVec, data.normalWorld);

light.color = half3(0, 0, 0);
light.dir = half3(0, 1, 0);
// ---
// ---
// Calculate falloff value, so reflections on the edges of the probe would gradually blend to previous reflection.
// Also this ensures that pixels not located in the reflection probe AABB won't

Blend [_SrcBlend] [_DstBlend]
CGPROGRAM
#pragma target 3.0
#pragma target 4.5
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile ___ UNITY_HDR_ON

half4 frag (v2f i) : SV_Target
{
return half4(1.0, 0.0, 0.0, 1.0);
half4 c = tex2D (_CameraReflectionsTexture, i.uv);
#ifdef UNITY_HDR_ON
return float4(c.rgb, 0.0f);

11
Assets/TestScenes/MobileDeferredTest/ClassicDeferredPipeline.asset


m_EditorClassIdentifier:
m_ShadowSettings:
enabled: 1
shadowAtlasWidth: 4096
shadowAtlasHeight: 4096
maxShadowDistance: 600
directionalLightCascadeCount: 4
directionalLightCascades: {x: 0, y: 0.05, z: 0.1}
shadowAtlasWidth: 2048
shadowAtlasHeight: 2048
maxShadowDistance: 50
directionalLightCascadeCount: 1
directionalLightCascades: {x: 0.15, y: 0.1, z: 0.8}
m_BoxMesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
finalPassShader: {fileID: 4800000, guid: 5590f54ad211f594da4e687b698f2258, type: 3}
deferredShader: {fileID: 4800000, guid: eeee2c879e4754d958204f0816f646c7, type: 3}
deferredReflectionShader: {fileID: 4800000, guid: eabc0a21ba0ff47268d9a58c92b8b40b,

302
Assets/TestScenes/MobileDeferredTest/ClassicDeferredTest.unity


m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_IndirectSpecularColor: {r: 0.18328291, g: 0.2289299, b: 0.30645376, a: 1}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0

m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 128652309}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &206951128
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 206951129}
- component: {fileID: 206951130}
m_Layer: 0
m_Name: Reflection Probe (2)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &206951129
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 206951128}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -104.9, y: 18.3, z: -7.799999}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 797301775}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!215 &206951130
ReflectionProbe:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 206951128}
m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 0
m_RefreshMode: 0
m_TimeSlicingMode: 0
m_Resolution: 128
m_UpdateFrequency: 0
m_BoxSize: {x: 10, y: 10, z: 10}
m_BoxOffset: {x: 0, y: 0, z: 0}
m_NearClip: 0.3
m_FarClip: 1000
m_ShadowDistance: 100
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_IntensityMultiplier: 1
m_BlendDistance: 1
m_HDR: 1
m_BoxProjection: 0
m_RenderDynamicObjects: 0
m_UseOcclusionCulling: 1
m_Importance: 1
m_CustomBakedTexture: {fileID: 0}
--- !u!1 &220495832
GameObject:
m_ObjectHideFlags: 0

m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_FalloffTable:
m_Table[0]: 0
m_Table[1]: 0
m_Table[2]: 0
m_Table[3]: 0
m_Table[4]: 0
m_Table[5]: 0
m_Table[6]: 0
m_Table[7]: 0
m_Table[8]: 0
m_Table[9]: 0
m_Table[10]: 0
m_Table[11]: 0
m_Table[12]: 0
m_ColorTemperature: 6571
m_UseColorTemperature: 1
m_ShadowRadius: 0

m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 267028023}
m_LocalRotation: {x: 0.6843819, y: 0.4697298, z: -0.55498856, w: 0.054433767}
m_LocalPosition: {x: 31.5, y: 78.2, z: -54.6}
m_LocalPosition: {x: 31.1, y: 78.5, z: -54.3}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}

m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_FalloffTable:
m_Table[0]: 0
m_Table[1]: 0
m_Table[2]: 0
m_Table[3]: 0
m_Table[4]: 0
m_Table[5]: 0
m_Table[6]: 0
m_Table[7]: 0
m_Table[8]: 0
m_Table[9]: 0
m_Table[10]: 0
m_Table[11]: 0
m_Table[12]: 0
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0

m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1021527292}
- {fileID: 1444179305}
- {fileID: 206951129}
- {fileID: 1161912881}
m_Father: {fileID: 0}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 945195326}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -38, y: -0.5, z: -81.7}
m_LocalPosition: {x: -38, y: 1.3, z: -81.7}
m_LocalScale: {x: 20, y: 20, z: 20}
m_Children: []
m_Father: {fileID: 0}

- component: {fileID: 1021527292}
- component: {fileID: 1021527293}
m_Layer: 0
m_Name: Reflection Probe
m_Name: Sphere Reflection Probe
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1021527291}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -52.8, y: 18.3, z: -7.8}
m_LocalPosition: {x: -51, y: 16.9, z: -36.8}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 797301775}

m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 0
m_RefreshMode: 0
m_Mode: 1
m_RefreshMode: 1
m_BoxSize: {x: 10, y: 10, z: 10}
m_BoxSize: {x: 20, y: 20, z: 20}
m_BoxOffset: {x: 0, y: 0, z: 0}
m_NearClip: 0.3
m_FarClip: 1000

m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_IntensityMultiplier: 1
m_IntensityMultiplier: 5
m_BlendDistance: 1
m_HDR: 1
m_BoxProjection: 0

m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1138613045}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1161912880
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1161912881}
- component: {fileID: 1161912882}
m_Layer: 0
m_Name: Capsule Reflection Probe
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1161912881
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1161912880}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 22.6, y: 22.4, z: -4}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 797301775}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!215 &1161912882
ReflectionProbe:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1161912880}
m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 1
m_RefreshMode: 1
m_TimeSlicingMode: 0
m_Resolution: 128
m_UpdateFrequency: 0
m_BoxSize: {x: 20, y: 20, z: 20}
m_BoxOffset: {x: 0, y: 0, z: 0}
m_NearClip: 0.3
m_FarClip: 1000
m_ShadowDistance: 100
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_IntensityMultiplier: 5
m_BlendDistance: 1
m_HDR: 1
m_BoxProjection: 0
m_RenderDynamicObjects: 0
m_UseOcclusionCulling: 1
m_Importance: 1
m_CustomBakedTexture: {fileID: 0}
--- !u!1 &1167670142
GameObject:
m_ObjectHideFlags: 0

m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_FalloffTable:
m_Table[0]: 0
m_Table[1]: 0
m_Table[2]: 0
m_Table[3]: 0
m_Table[4]: 0
m_Table[5]: 0
m_Table[6]: 0
m_Table[7]: 0
m_Table[8]: 0
m_Table[9]: 0
m_Table[10]: 0
m_Table[11]: 0
m_Table[12]: 0
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0

m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_FalloffTable:
m_Table[0]: 0
m_Table[1]: 0
m_Table[2]: 0
m_Table[3]: 0
m_Table[4]: 0
m_Table[5]: 0
m_Table[6]: 0
m_Table[7]: 0
m_Table[8]: 0
m_Table[9]: 0
m_Table[10]: 0
m_Table[11]: 0
m_Table[12]: 0
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0

m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_FalloffTable:
m_Table[0]: 0
m_Table[1]: 0
m_Table[2]: 0
m_Table[3]: 0
m_Table[4]: 0
m_Table[5]: 0
m_Table[6]: 0
m_Table[7]: 0
m_Table[8]: 0
m_Table[9]: 0
m_Table[10]: 0
m_Table[11]: 0
m_Table[12]: 0
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0

m_Father: {fileID: 0}
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1444179304
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1444179305}
- component: {fileID: 1444179306}
m_Layer: 0
m_Name: Reflection Probe (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1444179305
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1444179304}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 1.5, y: 18.3, z: -7.799999}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 797301775}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!215 &1444179306
ReflectionProbe:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1444179304}
m_Enabled: 1
serializedVersion: 2
m_Type: 0
m_Mode: 0
m_RefreshMode: 0
m_TimeSlicingMode: 0
m_Resolution: 128
m_UpdateFrequency: 0
m_BoxSize: {x: 10, y: 10, z: 10}
m_BoxOffset: {x: 0, y: 0, z: 0}
m_NearClip: 0.3
m_FarClip: 1000
m_ShadowDistance: 100
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_IntensityMultiplier: 1
m_BlendDistance: 1
m_HDR: 1
m_BoxProjection: 0
m_RenderDynamicObjects: 0
m_UseOcclusionCulling: 1
m_Importance: 1
m_CustomBakedTexture: {fileID: 0}
--- !u!1 &1510963353
GameObject:
m_ObjectHideFlags: 0

m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_FalloffTable:
m_Table[0]: 0
m_Table[1]: 0
m_Table[2]: 0
m_Table[3]: 0
m_Table[4]: 0
m_Table[5]: 0
m_Table[6]: 0
m_Table[7]: 0
m_Table[8]: 0
m_Table[9]: 0
m_Table[10]: 0
m_Table[11]: 0
m_Table[12]: 0
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0

m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_FalloffTable:
m_Table[0]: 0
m_Table[1]: 0
m_Table[2]: 0
m_Table[3]: 0
m_Table[4]: 0
m_Table[5]: 0
m_Table[6]: 0
m_Table[7]: 0
m_Table[8]: 0
m_Table[9]: 0
m_Table[10]: 0
m_Table[11]: 0
m_Table[12]: 0
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0

10
Assets/TestScenes/MobileDeferredTest/Materials/Reflective.mat


m_PrefabInternal: {fileID: 0}
m_Name: Reflective
m_Shader: {fileID: 4800000, guid: b262af00aeb504b0a8eba68d77150908, type: 3}
m_ShaderKeywords: _EMISSION
m_LightmapFlags: 1
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_CustomRenderQueue: -1
stringTagMap: {}

- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.7
- _Glossiness: 1
- _Metallic: 0.97
- _Metallic: 0.084
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02

- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0.7058823, g: 0.72145325, b: 0.72145325, a: 1}
- _Color: {r: 0.60294116, g: 0.59850776, b: 0.59850776, a: 0.597}
- _EmissionColor: {r: 0.2352941, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}

6
Assets/TestScenes/MobileDeferredTest/Model/Temple/Materials/structure.mat


m_PrefabInternal: {fileID: 0}
m_Name: structure
m_Shader: {fileID: 4800000, guid: 078f6d0e0964240c28f6acc911996f11, type: 3}
m_ShaderKeywords: _EMISSION _NORMALMAP _SPECGLOSSMAP
m_LightmapFlags: 1
m_ShaderKeywords: _NORMALMAP _SPECGLOSSMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_CustomRenderQueue: -1
stringTagMap: {}

- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _GlossMapScale: 0.702
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0

6
Assets/TestScenes/MobileDeferredTest/Model/Temple/Materials/tree.mat


m_PrefabInternal: {fileID: 0}
m_Name: tree
m_Shader: {fileID: 4800000, guid: 078f6d0e0964240c28f6acc911996f11, type: 3}
m_ShaderKeywords: _EMISSION _NORMALMAP _SPECGLOSSMAP
m_LightmapFlags: 1
m_ShaderKeywords: _NORMALMAP _SPECGLOSSMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_CustomRenderQueue: -1
stringTagMap: {}

- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _GlossMapScale: 0.6
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0

正在加载...
取消
保存