Evgenii Golubev
8 年前
当前提交
0eb1758a
共有 22 个文件被更改,包括 1538 次插入 和 896 次删除
-
226Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.cs
-
7Assets/ScriptableRenderLoop/HDRenderLoop/Lighting/LightDefinition.cs
-
8Assets/ScriptableRenderLoop/HDRenderLoop/Lighting/TilePass/TilePassLoop.hlsl
-
287Assets/ScriptableRenderLoop/HDRenderLoop/Material/LayeredLit/Editor/LayeredLitUI.cs
-
215Assets/ScriptableRenderLoop/HDRenderLoop/Material/LayeredLit/LayeredLit.shader
-
272Assets/ScriptableRenderLoop/HDRenderLoop/Material/Lit/Editor/LitUI.cs
-
66Assets/ScriptableRenderLoop/HDRenderLoop/Material/Lit/Lit.shader
-
636Assets/ScriptableRenderLoop/HDRenderLoop/Material/Lit/LitData.hlsl
-
24Assets/ScriptableRenderLoop/HDRenderLoop/Material/Lit/LitSharePass.hlsl
-
5Assets/ScriptableRenderLoop/HDRenderLoop/ShaderVariables.hlsl
-
150Assets/ScriptableRenderLoop/HDRenderLoop/Sky/SkyRenderer.cs
-
4Assets/ScriptableRenderLoop/RenderPasses/ShadowRenderPass.cs
-
4Assets/ScriptableRenderLoop/ShaderLibrary/AreaLighting.hlsl
-
23Assets/ScriptableRenderLoop/ShaderLibrary/CommonMaterial.hlsl
-
5Assets/ScriptableRenderLoop/ShaderLibrary/ImageBasedLighting.hlsl
-
35.collabignore
-
232Assets/ScriptableRenderLoop/HDRenderLoop/Material/Lit/LitSurfaceData.hlsl
-
9Assets/ScriptableRenderLoop/HDRenderLoop/Material/Lit/LitSurfaceData.hlsl.meta
-
68Assets/ScriptableRenderLoop/HDRenderLoop/Sky/Resources/GGXConvolve.shader
-
9Assets/ScriptableRenderLoop/HDRenderLoop/Sky/Resources/GGXConvolve.shader.meta
-
141Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Chrome.mat
-
8Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Chrome.mat.meta
|
|||
# =========================== |
|||
# Default Collab Ignore Rules |
|||
# =========================== |
|||
|
|||
# OS Generated |
|||
# ============ |
|||
.DS_Store |
|||
._* |
|||
.Spotlight-V100 |
|||
.Trashes |
|||
Icon? |
|||
ehthumbs.db |
|||
[Tt]humbs.db |
|||
[Dd]esktop.ini |
|||
|
|||
# Visual Studio / MonoDevelop generated |
|||
# ===================================== |
|||
[Ee]xported[Oo]bj/ |
|||
*.userprefs |
|||
*.csproj |
|||
*.pidb |
|||
*.suo |
|||
*.sln |
|||
*.user |
|||
*.unityproj |
|||
*.booproj |
|||
|
|||
# Unity generated |
|||
# =============== |
|||
/[Tt]emp/ |
|||
[Oo]bj/ |
|||
[Bb]uild |
|||
/[Ll]ibrary/ |
|||
sysinfo.txt |
|||
*.stackdump |
|
|||
void ADD_IDX(ComputeLayerTexCoord)(FragInput input, bool isTriplanar, inout LayerTexCoord layerTexCoord) |
|||
{ |
|||
// TODO: Do we want to manage local or world triplanar/planar |
|||
//float3 position = localTriplanar ? TransformWorldToObject(input.positionWS) : input.positionWS; |
|||
float3 position = input.positionWS; |
|||
position *= ADD_IDX(_TexWorldScale); |
|||
|
|||
// Handle uv0, uv1 and plnar XZ coordinate based on _CoordWeight weight (exclusif 0..1) |
|||
ADD_IDX(layerTexCoord.base).uv = ADD_IDX(_UVMappingMask).x * input.texCoord0 + |
|||
ADD_IDX(_UVMappingMask).y * input.texCoord1 + |
|||
ADD_IDX(_UVMappingMask).z * input.texCoord3 + |
|||
ADD_IDX(_UVMappingMask).w * position.xz; |
|||
|
|||
float2 uvDetails = ADD_IDX(_UVDetailsMappingMask).x * input.texCoord0 + |
|||
ADD_IDX(_UVDetailsMappingMask).y * input.texCoord1 + |
|||
ADD_IDX(_UVDetailsMappingMask).z * input.texCoord3 + |
|||
// Note that if base is planar, detail map is planar |
|||
ADD_IDX(_UVMappingMask).w * position.xz; |
|||
|
|||
ADD_IDX(layerTexCoord.details).uv = TRANSFORM_TEX(uvDetails, ADD_IDX(_DetailMap)); |
|||
|
|||
// triplanar |
|||
ADD_IDX(layerTexCoord.base).isTriplanar = isTriplanar; |
|||
|
|||
ADD_IDX(layerTexCoord.base).uvYZ = position.yz; |
|||
ADD_IDX(layerTexCoord.base).uvZX = position.zx; |
|||
ADD_IDX(layerTexCoord.base).uvXY = position.xy; |
|||
|
|||
ADD_IDX(layerTexCoord.details).isTriplanar = isTriplanar; |
|||
|
|||
ADD_IDX(layerTexCoord.details).uvYZ = TRANSFORM_TEX(position.yz, ADD_IDX(_DetailMap)); |
|||
ADD_IDX(layerTexCoord.details).uvZX = TRANSFORM_TEX(position.zx, ADD_IDX(_DetailMap)); |
|||
ADD_IDX(layerTexCoord.details).uvXY = TRANSFORM_TEX(position.xy, ADD_IDX(_DetailMap)); |
|||
} |
|||
|
|||
void ADD_IDX(ApplyDisplacement)(inout FragInput input, inout LayerTexCoord layerTexCoord) |
|||
{ |
|||
#ifdef _HEIGHTMAP |
|||
#ifndef _HEIGHTMAP_AS_DISPLACEMENT |
|||
// Transform view vector in tangent space |
|||
// Hope the compiler can optimize this in case of multiple layer |
|||
float3 V = GetWorldSpaceNormalizeViewDir(input.positionWS); |
|||
float3 viewDirTS = TransformWorldToTangent(V, input.tangentToWorld); |
|||
float height = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_HeightMap), ADD_ZERO_IDX(sampler_HeightMap), ADD_IDX(layerTexCoord.base)).r * ADD_IDX(_HeightScale) + ADD_IDX(_HeightBias); |
|||
float2 offset = ParallaxOffset(viewDirTS, height); |
|||
|
|||
ADD_IDX(layerTexCoord.base).uv += offset; |
|||
ADD_IDX(layerTexCoord.base).uvYZ += offset; |
|||
ADD_IDX(layerTexCoord.base).uvZX += offset; |
|||
ADD_IDX(layerTexCoord.base).uvXY += offset; |
|||
|
|||
ADD_IDX(layerTexCoord.details).uv += offset; |
|||
ADD_IDX(layerTexCoord.details).uvYZ += offset; |
|||
ADD_IDX(layerTexCoord.details).uvZX += offset; |
|||
ADD_IDX(layerTexCoord.details).uvXY += offset; |
|||
|
|||
// Only modify tex coord for first layer, this will be use by for builtin data (like lightmap) |
|||
if (LAYER_INDEX == 0) |
|||
{ |
|||
input.texCoord0 += offset; |
|||
input.texCoord1 += offset; |
|||
input.texCoord2 += offset; |
|||
input.texCoord3 += offset; |
|||
} |
|||
#endif |
|||
#endif |
|||
} |
|||
|
|||
// Return opacity |
|||
float ADD_IDX(GetSurfaceData)(FragInput input, LayerTexCoord layerTexCoord, out SurfaceData surfaceData) |
|||
{ |
|||
#ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A |
|||
float alpha = ADD_IDX(_BaseColor).a; |
|||
#else |
|||
float alpha = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_BaseColorMap), ADD_ZERO_IDX(sampler_BaseColorMap), ADD_IDX(layerTexCoord.base)).a * ADD_IDX(_BaseColor).a; |
|||
#endif |
|||
|
|||
// Perform alha test very early to save performance (a killed pixel will not sample textures) |
|||
#ifdef _ALPHATEST_ON |
|||
clip(alpha - _AlphaCutoff); |
|||
#endif |
|||
|
|||
#ifdef _DETAIL_MAP |
|||
float detailMask = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_DetailMask), ADD_ZERO_IDX(sampler_DetailMask), ADD_IDX(layerTexCoord.base)).b; |
|||
float2 detailAlbedoAndSmoothness = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_DetailMap), ADD_ZERO_IDX(sampler_DetailMap), ADD_IDX(layerTexCoord.details)).rb; |
|||
float detailAlbedo = detailAlbedoAndSmoothness.r; |
|||
float detailSmoothness = detailAlbedoAndSmoothness.g; |
|||
#ifdef _DETAIL_MAP_WITH_NORMAL |
|||
// Resample the detail map but this time for the normal map. This call should be optimize by the compiler |
|||
// We split both call due to trilinear mapping |
|||
float3 detailNormalTS = SAMPLE_LAYER_NORMALMAP_AG(ADD_IDX(_DetailMap), ADD_ZERO_IDX(sampler_DetailMap), ADD_IDX(layerTexCoord.details)); |
|||
//float detailAO = 0.0; |
|||
#else |
|||
// TODO: Use heightmap as a derivative with Morten Mikklesen approach, how this work with our abstraction and triplanar ? |
|||
float3 detailNormalTS = float3(0.0, 0.0, 1.0); |
|||
//float detailAO = detail.b; |
|||
#endif |
|||
#endif |
|||
|
|||
surfaceData.baseColor = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_BaseColorMap), ADD_ZERO_IDX(sampler_BaseColorMap), ADD_IDX(layerTexCoord.base)).rgb * ADD_IDX(_BaseColor).rgb; |
|||
#ifdef _DETAIL_MAP |
|||
surfaceData.baseColor *= LerpWhiteTo(2.0 * saturate(detailAlbedo * ADD_IDX(_DetailAlbedoScale)), detailMask); |
|||
#endif |
|||
|
|||
#ifdef _SPECULAROCCLUSIONMAP |
|||
// TODO: Do something. For now just take alpha channel |
|||
surfaceData.specularOcclusion = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_SpecularOcclusionMap), ADD_ZERO_IDX(sampler_SpecularOcclusionMap), ADD_IDX(layerTexCoord.base)).a; |
|||
#else |
|||
// Horizon Occlusion for Normal Mapped Reflections: http://marmosetco.tumblr.com/post/81245981087 |
|||
//surfaceData.specularOcclusion = saturate(1.0 + horizonFade * dot(r, input.tangentToWorld[2].xyz); |
|||
// smooth it |
|||
//surfaceData.specularOcclusion *= surfaceData.specularOcclusion; |
|||
surfaceData.specularOcclusion = 1.0; |
|||
#endif |
|||
|
|||
// TODO: think about using BC5 |
|||
float3 vertexNormalWS = normalize(input.tangentToWorld[2].xyz); |
|||
|
|||
#ifdef _NORMALMAP |
|||
#ifdef _NORMALMAP_TANGENT_SPACE |
|||
float3 normalTS = SAMPLE_LAYER_NORMALMAP(ADD_IDX(_NormalMap), ADD_ZERO_IDX(sampler_NormalMap), ADD_IDX(layerTexCoord.base)); |
|||
#ifdef _DETAIL_MAP |
|||
normalTS = lerp(normalTS, BlendNormal(normalTS, detailNormalTS), detailMask); |
|||
#endif |
|||
surfaceData.normalWS = TransformTangentToWorld(normalTS, input.tangentToWorld); |
|||
#else // Object space |
|||
// TODO: We are suppose to do * 2 - 1 here. how to deal with triplanar... |
|||
float3 normalOS = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_NormalMap), ADD_ZERO_IDX(sampler_NormalMap), ADD_IDX(layerTexCoord.base)).rgb; |
|||
surfaceData.normalWS = TransformObjectToWorldDir(normalOS); |
|||
#ifdef _DETAIL_MAP |
|||
float3 detailNormalWS = TransformTangentToWorld(detailNormalTS, input.tangentToWorld); |
|||
surfaceData.normalWS = lerp(surfaceData.normalWS, BlendNormal(surfaceData.normalWS, detailNormalWS), detailMask); |
|||
#endif |
|||
#endif |
|||
#else |
|||
surfaceData.normalWS = vertexNormalWS; |
|||
#endif |
|||
|
|||
#if defined(_DOUBLESIDED_LIGHTING_FLIP) || defined(_DOUBLESIDED_LIGHTING_MIRROR) |
|||
#ifdef _DOUBLESIDED_LIGHTING_FLIP |
|||
float3 oppositeNormalWS = -surfaceData.normalWS; |
|||
#else |
|||
// Mirror the normal with the plane define by vertex normal |
|||
float3 oppositeNormalWS = reflect(surfaceData.normalWS, vertexNormalWS); |
|||
#endif |
|||
// TODO : Test if GetOdddNegativeScale() is necessary here in case of normal map, as GetOdddNegativeScale is take into account in CreateTangentToWorld(); |
|||
surfaceData.normalWS = input.isFrontFace ? |
|||
(GetOdddNegativeScale() >= 0.0 ? surfaceData.normalWS : oppositeNormalWS) : |
|||
(-GetOdddNegativeScale() >= 0.0 ? surfaceData.normalWS : oppositeNormalWS); |
|||
#endif |
|||
|
|||
#ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A |
|||
surfaceData.perceptualSmoothness = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_BaseColorMap), ADD_ZERO_IDX(sampler_BaseColorMap), ADD_IDX(layerTexCoord.base)).a; |
|||
#elif defined(_MASKMAP) |
|||
surfaceData.perceptualSmoothness = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_MaskMap), ADD_ZERO_IDX(sampler_MaskMap), ADD_IDX(layerTexCoord.base)).a; |
|||
#else |
|||
surfaceData.perceptualSmoothness = 1.0; |
|||
#endif |
|||
surfaceData.perceptualSmoothness *= _Smoothness; |
|||
#ifdef _DETAIL_MAP |
|||
surfaceData.perceptualSmoothness *= LerpWhiteTo(2.0 * saturate(detailSmoothness * ADD_IDX(_DetailSmoothnessScale)), detailMask); |
|||
#endif |
|||
|
|||
// MaskMap is Metallic, Ambient Occlusion, (Optional) - emissive Mask, Optional - Smoothness (in alpha) |
|||
#ifdef _MASKMAP |
|||
surfaceData.metallic = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_MaskMap), ADD_ZERO_IDX(sampler_MaskMap), ADD_IDX(layerTexCoord.base)).r; |
|||
surfaceData.ambientOcclusion = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_MaskMap), ADD_ZERO_IDX(sampler_MaskMap), ADD_IDX(layerTexCoord.base)).g; |
|||
#else |
|||
surfaceData.metallic = 1.0; |
|||
surfaceData.ambientOcclusion = 1.0; |
|||
#endif |
|||
surfaceData.metallic *= _Metallic; |
|||
|
|||
// This part of the code is not used in case of layered shader but we keep the same macro system for simplicity |
|||
#if !defined(LAYERED_LIT_SHADER) |
|||
|
|||
surfaceData.materialId = 0; // TODO |
|||
|
|||
// TODO: think about using BC5 |
|||
#ifdef _TANGENTMAP |
|||
#ifdef _NORMALMAP_TANGENT_SPACE // Normal and tangent use same space |
|||
float3 tangentTS = SAMPLE_LAYER_NORMALMAP(ADD_IDX(_TangentMap), ADD_ZERO_IDX(sampler_TangentMap), ADD_IDX(layerTexCoord.base))); |
|||
surfaceData.tangentWS = TransformTangentToWorld(tangentTS, input.tangentToWorld); |
|||
#else // Object space (TODO: We need to apply the world rotation here! - Require to pass world transform) |
|||
surfaceData.tangentWS = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_TangentMap), ADD_ZERO_IDX(sampler_TangentMap), ADD_IDX(layerTexCoord.base)).rgb; |
|||
#endif |
|||
#else |
|||
surfaceData.tangentWS = normalize(input.tangentToWorld[0].xyz); |
|||
#endif |
|||
// TODO: Is there anything todo regarding flip normal but for the tangent ? |
|||
|
|||
#ifdef _ANISOTROPYMAP |
|||
surfaceData.anisotropy = SAMPLE_LAYER_TEXTURE2D(ADD_IDX(_AnisotropyMap), ADD_ZERO_IDX(sampler_AnisotropyMap), ADD_IDX(layerTexCoord.base)).g; |
|||
#else |
|||
surfaceData.anisotropy = 1.0; |
|||
#endif |
|||
surfaceData.anisotropy *= _Anisotropy; |
|||
|
|||
surfaceData.specular = 0.04; |
|||
|
|||
surfaceData.subSurfaceRadius = 1.0; |
|||
surfaceData.thickness = 0.0; |
|||
surfaceData.subSurfaceProfile = 0; |
|||
|
|||
surfaceData.coatNormalWS = float3(1.0, 0.0, 0.0); |
|||
surfaceData.coatPerceptualSmoothness = 1.0; |
|||
surfaceData.specularColor = float3(0.0, 0.0, 0.0); |
|||
|
|||
#else // #if !defined(LAYERED_LIT_SHADER) |
|||
|
|||
// Mandatory to setup value to keep compiler quiet |
|||
|
|||
// Layered shader only support materialId 0 |
|||
surfaceData.materialId = 0; |
|||
|
|||
surfaceData.tangentWS = input.tangentToWorld[0].xyz; |
|||
surfaceData.anisotropy = 0; |
|||
surfaceData.specular = 0.04; |
|||
|
|||
surfaceData.subSurfaceRadius = 1.0; |
|||
surfaceData.thickness = 0.0; |
|||
surfaceData.subSurfaceProfile = 0; |
|||
|
|||
surfaceData.coatNormalWS = float3(1.0, 0.0, 0.0); |
|||
surfaceData.coatPerceptualSmoothness = 1.0; |
|||
surfaceData.specularColor = float3(0.0, 0.0, 0.0); |
|||
|
|||
#endif // #if !defined(LAYERED_LIT_SHADER) |
|||
|
|||
return alpha; |
|||
} |
|||
|
|
|||
fileFormatVersion: 2 |
|||
guid: b24a503f5b489bb4896bc43d861f7f49 |
|||
timeCreated: 1479984801 |
|||
licenseType: Pro |
|||
ShaderImporter: |
|||
defaultTextures: [] |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
Shader "Hidden/HDRenderLoop/GGXConvolve" |
|||
{ |
|||
SubShader |
|||
{ |
|||
Pass |
|||
{ |
|||
ZWrite Off |
|||
ZTest LEqual |
|||
Blend One Zero |
|||
|
|||
HLSLPROGRAM |
|||
#pragma target 5.0 |
|||
#pragma only_renderers d3d11 // TEMP: unitl we go futher in dev |
|||
|
|||
#pragma vertex Vert |
|||
#pragma fragment Frag |
|||
|
|||
#include "Common.hlsl" |
|||
#include "ImageBasedLighting.hlsl" |
|||
|
|||
struct Attributes |
|||
{ |
|||
float3 positionCS : POSITION; |
|||
float3 eyeVector : NORMAL; |
|||
}; |
|||
|
|||
struct Varyings |
|||
{ |
|||
float4 positionCS : SV_POSITION; |
|||
float3 eyeVector : TEXCOORD0; |
|||
}; |
|||
|
|||
Varyings Vert(Attributes input) |
|||
{ |
|||
Varyings output; |
|||
output.positionCS = float4(input.positionCS.xy, UNITY_RAW_FAR_CLIP_VALUE, 1.0); |
|||
output.eyeVector = input.eyeVector; |
|||
return output; |
|||
} |
|||
|
|||
TEXTURECUBE(_MainTex); |
|||
SAMPLERCUBE(sampler_MainTex); |
|||
float _Level; |
|||
float _MipMapCount; |
|||
float _InvOmegaP; |
|||
|
|||
half4 Frag(Varyings input) : SV_Target |
|||
{ |
|||
float3 N = input.eyeVector; |
|||
float3 V = N; |
|||
|
|||
float perceptualRoughness = mipmapLevelToPerceptualRoughness(_Level); |
|||
// We approximate the pre-integration with V == N |
|||
float4 val = IntegrateLD( TEXTURECUBE_PARAM(_MainTex, sampler_MainTex), |
|||
V, |
|||
N, |
|||
PerceptualRoughnessToRoughness(perceptualRoughness), |
|||
_MipMapCount, |
|||
_InvOmegaP, |
|||
2048, |
|||
false); |
|||
|
|||
return val; |
|||
} |
|||
ENDHLSL |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 123ed592ad5c2494b8aed301fd609e7b |
|||
timeCreated: 1479994507 |
|||
licenseType: Pro |
|||
ShaderImporter: |
|||
defaultTextures: [] |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: Chrome |
|||
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} |
|||
m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DETAIL_MAP_WITH_NORMAL _DISTORTIONDEPTHTEST_OFF |
|||
_DISTORTIONONLY_OFF _EMISSION _NORMALMAP_TANGENT_SPACE |
|||
m_LightmapFlags: 1 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _AnisotropyMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _BaseColorMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissiveColorMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _HeightMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MaskMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _NormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _SpecularOcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _SubSurfaceRadiusMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _TangentMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _AlphaCutoff: 0.5 |
|||
- _AlphaCutoffEnable: 0 |
|||
- _Anisotropy: 0 |
|||
- _BlendMode: 0 |
|||
- _BumpScale: 1 |
|||
- _CullMode: 2 |
|||
- _Cutoff: 0.5 |
|||
- _DetailAOScale: 1 |
|||
- _DetailAlbedoScale: 1 |
|||
- _DetailHeightScale: 1 |
|||
- _DetailMapMode: 0 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DetailNormalScale: 1 |
|||
- _DetailSmoothnessScale: 1 |
|||
- _DistortionDepthTest: 0 |
|||
- _DistortionOnly: 0 |
|||
- _DoubleSidedMode: 0 |
|||
- _DstBlend: 0 |
|||
- _EmissiveColorMode: 1 |
|||
- _EmissiveIntensity: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 1 |
|||
- _HeightBias: 0 |
|||
- _HeightMapMode: 0 |
|||
- _HeightScale: 1 |
|||
- _MaterialId: 0 |
|||
- _Metallic: 1 |
|||
- _Mode: 0 |
|||
- _NormalMapSpace: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _Smoothness: 1 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 1 |
|||
- _SrcBlend: 1 |
|||
- _SubSurfaceRadius: 0 |
|||
- _SurfaceType: 0 |
|||
- _UVDetail: 0 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1} |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|||
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: e2a91f1184ed1c9429dc2c4385e3c6fe |
|||
timeCreated: 1479808235 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
撰写
预览
正在加载...
取消
保存
Reference in new issue