浏览代码

Added particles to lowend upgrader.

/vr_sandbox
Felipe Lira 8 年前
当前提交
998f6257
共有 16 个文件被更改,包括 250 次插入48 次删除
  1. 75
      Assets/LowEndMobilePipeline/Editor/LegacyShadersToLowEndUpgrader.cs
  2. 2
      Assets/LowEndMobilePipeline/Editor/StandardToLowEndMaterialUpgrader.cs
  3. 8
      Assets/LowEndMobilePipeline/LowEndMobilePipelineAsset.asset
  4. 2
      Assets/LowEndMobilePipeline/Shaders/LowEndMobilePipeline.shader
  5. 37
      Assets/LowEndMobilePipeline/Editor/LowendUpgraders.cs
  6. 12
      Assets/LowEndMobilePipeline/Editor/LowendUpgraders.cs.meta
  7. 9
      Assets/LowEndMobilePipeline/Shaders.meta
  8. 67
      Assets/LowEndMobilePipeline/Shaders/LowEndParticlesAdd.shader
  9. 9
      Assets/LowEndMobilePipeline/Shaders/LowEndParticlesAdd.shader.meta
  10. 68
      Assets/LowEndMobilePipeline/Shaders/LowEndParticlesMultiply.shader
  11. 9
      Assets/LowEndMobilePipeline/Shaders/LowEndParticlesMultiply.shader.meta
  12. 0
      /Assets/LowEndMobilePipeline/Shaders/LowEndMobilePipeline.shader.meta
  13. 0
      /Assets/LowEndMobilePipeline/Shaders/LowEndMobilePipeline.shader
  14. 0
      /Assets/LowEndMobilePipeline/Shaders/LowEndMobilePipelineCore.cginc
  15. 0
      /Assets/LowEndMobilePipeline/Shaders/LowEndMobilePipelineCore.cginc.meta

75
Assets/LowEndMobilePipeline/Editor/LegacyShadersToLowEndUpgrader.cs


using UnityEditor.Experimental.Rendering;
using UnityEditor;
public class LegacyShadersToLowEndUpgrader : MaterialUpgrader
public class LegacyShadersToLowEndUpgrader
private struct UpgradeParams
{
public float blendMode;
public float specularSource;
public float glosinessSource;
public float reflectionSource;
}
private static class SupportedUpgradeParams
{
static public UpgradeParams diffuseOpaque = new UpgradeParams()

/////////////////////////////////////
// Legacy Shaders upgraders /
/////////////////////////////////////
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Diffuse", SupportedUpgradeParams.diffuseOpaque));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Specular", SupportedUpgradeParams.specularOpaque));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Bumped Diffuse", SupportedUpgradeParams.diffuseOpaque));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Bumped Specular", SupportedUpgradeParams.specularOpaque));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Diffuse", SupportedUpgradeParams.diffuseOpaque));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Specular", SupportedUpgradeParams.specularOpaque));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Bumped Diffuse", SupportedUpgradeParams.diffuseOpaque));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Bumped Specular", SupportedUpgradeParams.specularOpaque));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Reflective/Bumped Diffuse", SupportedUpgradeParams.diffuseCubemap));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Reflective/Bumped Specular", SupportedUpgradeParams.specularOpaque));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Reflective/Diffuse", SupportedUpgradeParams.diffuseCubemap));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Reflective/Specular", SupportedUpgradeParams.specularOpaque));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Reflective/Bumped Diffuse", SupportedUpgradeParams.diffuseCubemap));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Reflective/Bumped Specular", SupportedUpgradeParams.specularOpaque));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Reflective/Diffuse", SupportedUpgradeParams.diffuseCubemap));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Reflective/Specular", SupportedUpgradeParams.specularOpaque));
//materialUpgraders.Add(new LegacyShaderToLowEndUpgrader("Legacy Shaders/Self-Illum/Bumped Specular"));
//materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Self-Illum/Bumped Specular"));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Transparent/Diffuse", SupportedUpgradeParams.diffuseAlpha));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Transparent/Specular", SupportedUpgradeParams.specularAlpha));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Transparent/Bumped Diffuse", SupportedUpgradeParams.diffuseAlpha));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Transparent/Bumped Specular", SupportedUpgradeParams.specularAlpha));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Transparent/Diffuse", SupportedUpgradeParams.diffuseAlpha));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Transparent/Specular", SupportedUpgradeParams.specularAlpha));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Transparent/Bumped Diffuse", SupportedUpgradeParams.diffuseAlpha));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Transparent/Bumped Specular", SupportedUpgradeParams.specularAlpha));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Transparent/Cutout/Diffuse", SupportedUpgradeParams.diffuseAlphaCutout));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Transparent/Cutout/Specular", SupportedUpgradeParams.specularAlphaCutout));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Transparent/Cutout/Bumped Diffuse", SupportedUpgradeParams.diffuseAlphaCutout));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Legacy Shaders/Transparent/Cutout/Bumped Specular", SupportedUpgradeParams.specularAlphaCutout));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Transparent/Cutout/Diffuse", SupportedUpgradeParams.diffuseAlphaCutout));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Transparent/Cutout/Specular", SupportedUpgradeParams.specularAlphaCutout));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Transparent/Cutout/Bumped Diffuse", SupportedUpgradeParams.diffuseAlphaCutout));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Transparent/Cutout/Bumped Specular", SupportedUpgradeParams.specularAlphaCutout));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Reflective/Diffuse Reflection Spec", SupportedUpgradeParams.specularCubemap));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Reflective/Diffuse Reflection Spec Transp", SupportedUpgradeParams.specularCubemapAlpha));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Reflective/Diffuse Reflection Spec", SupportedUpgradeParams.specularCubemap));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Reflective/Diffuse Reflection Spec Transp", SupportedUpgradeParams.specularCubemapAlpha));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Mobile/Diffuse", SupportedUpgradeParams.diffuseOpaque));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Mobile/Bumped Specular", SupportedUpgradeParams.specularOpaque));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Mobile/Bumped Specular(1 Directional Light)", SupportedUpgradeParams.specularOpaque));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Mobile/Bumped Diffuse", SupportedUpgradeParams.diffuseOpaque));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Mobile/Unlit (Supports Lightmap)", SupportedUpgradeParams.diffuseOpaque));
materialUpgraders.Add(new LegacyShadersToLowEndUpgrader("Mobile/VertexLit", SupportedUpgradeParams.specularOpaque));
}
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Mobile/Diffuse", SupportedUpgradeParams.diffuseOpaque));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Mobile/Bumped Specular", SupportedUpgradeParams.specularOpaque));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Mobile/Bumped Specular(1 Directional Light)", SupportedUpgradeParams.specularOpaque));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Mobile/Bumped Diffuse", SupportedUpgradeParams.diffuseOpaque));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Mobile/Unlit (Supports Lightmap)", SupportedUpgradeParams.diffuseOpaque));
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Mobile/VertexLit", SupportedUpgradeParams.specularOpaque));
LegacyShadersToLowEndUpgrader(string oldShaderName, UpgradeParams upgraderParams)
{
RenameShader(oldShaderName, "ScriptableRenderPipeline/LowEndMobile");
SetNewFloatProperty("_Mode", upgraderParams.blendMode);
SetNewFloatProperty("_SpecSource", upgraderParams.specularSource);
SetNewFloatProperty("_GlossinessSource", upgraderParams.glosinessSource);
SetNewFloatProperty("_ReflectionSource", upgraderParams.reflectionSource);
/////////////////////////////////////
// Particles /
/////////////////////////////////////
materialUpgraders.Add(new ParticlesAdditiveUpgrader("Particles/Additive"));
materialUpgraders.Add(new ParticlesAdditiveUpgrader("Mobile/Particles/Additive"));
materialUpgraders.Add(new ParticlesMultiplyUpgrader("Particles/Multiply"));
materialUpgraders.Add(new ParticlesMultiplyUpgrader("Mobile/Particles/Multiply"));
}
}

2
Assets/LowEndMobilePipeline/Editor/StandardToLowEndMaterialUpgrader.cs


StandardToLowEndMaterialUpgrader(string oldShaderName)
{
RenameShader(oldShaderName, "ScriptableRenderPipeline/LowEndMobile");
RenameShader(oldShaderName, "ScriptableRenderPipeline/LowEndMobile/NonPBR");
RenameFloat("_Glossiness", "_Shininess");
}
}

8
Assets/LowEndMobilePipeline/LowEndMobilePipelineAsset.asset


m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
m_Name: LowEndMobilePipelineAsset
m_EditorClassIdentifier:
m_MaxPixelLights: 1
m_SupportsVertexLight: 1
m_MaxPixelLights: 8
m_SupportsVertexLight: 0
m_ShadowAtlasResolution: 2048
m_ShadowAtlasResolution: 1024
m_ShadowCascades: 4
m_ShadowCascades: 1
m_Cascade2Split: 0.25
m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}

2
Assets/LowEndMobilePipeline/Shaders/LowEndMobilePipeline.shader


// Shader targeted for LowEnd mobile devices. Single Pass Forward Rendering. Shader Model 2
Shader "ScriptableRenderPipeline/LowEndMobile"
Shader "ScriptableRenderPipeline/LowEndMobile/NonPBR"
{
// Keep properties of StandardSpecular shader for upgrade reasons.
Properties

37
Assets/LowEndMobilePipeline/Editor/LowendUpgraders.cs


using UnityEditor.Experimental.Rendering;
public struct UpgradeParams
{
public float blendMode;
public float specularSource;
public float glosinessSource;
public float reflectionSource;
}
public class LegacyBlinnPhongUpgrader : MaterialUpgrader
{
public LegacyBlinnPhongUpgrader(string oldShaderName, UpgradeParams upgraderParams)
{
RenameShader(oldShaderName, "ScriptableRenderPipeline/LowEndMobile/NonPBR");
SetNewFloatProperty("_Mode", upgraderParams.blendMode);
SetNewFloatProperty("_SpecSource", upgraderParams.specularSource);
SetNewFloatProperty("_GlossinessSource", upgraderParams.glosinessSource);
SetNewFloatProperty("_ReflectionSource", upgraderParams.reflectionSource);
}
}
public class ParticlesMultiplyUpgrader : MaterialUpgrader
{
public ParticlesMultiplyUpgrader(string oldShaderName)
{
RenameShader(oldShaderName, "ScriptableRenderPipeline/LowEndMobile/Particles/Multiply");
}
}
public class ParticlesAdditiveUpgrader : MaterialUpgrader
{
public ParticlesAdditiveUpgrader(string oldShaderName)
{
RenameShader(oldShaderName, "ScriptableRenderPipeline/LowEndMobile/Particles/Additive");
}
}

12
Assets/LowEndMobilePipeline/Editor/LowendUpgraders.cs.meta


fileFormatVersion: 2
guid: 50feba52dc59c9943b45f22d41904a77
timeCreated: 1490024332
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

9
Assets/LowEndMobilePipeline/Shaders.meta


fileFormatVersion: 2
guid: 81841919e91d4b24ba3a6ca4a5167bce
folderAsset: yes
timeCreated: 1490023078
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

67
Assets/LowEndMobilePipeline/Shaders/LowEndParticlesAdd.shader


Shader "ScriptableRenderPipeline/LowEndMobile/Particles/Additive"
{
Properties
{
_MainTex("Particle Texture", 2D) = "white" {}
}
Category
{
Tags{"Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" "RenderPipeline" = "LowEndPipeline" "PreviewType" = "Plane"}
Blend SrcAlpha One
Cull Off Lighting Off ZWrite Off
SubShader
{
Pass
{
Tags{"LightMode" = "LowEndMobileForward"}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 2.0
#pragma multi_compile_fog
#include "UnityCG.cginc"
sampler2D _MainTex;
struct appdata_t
{
float4 vertex : POSITION;
fixed4 color : COLOR;
float2 texcoord : TEXCOORD0;
};
struct v2f
{
float4 vertex : SV_POSITION;
fixed4 color : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_FOG_COORDS(1)
};
float4 _MainTex_ST;
v2f vert(appdata_t v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.color = v.color;
o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
fixed4 frag(v2f i) : SV_Target
{
fixed4 col = 2.0f * i.color * tex2D(_MainTex, i.texcoord);
UNITY_APPLY_FOG_COLOR(i.fogCoord, col, fixed4(0,0,0,0)); // fog towards white due to our blend mode
return col;
}
ENDCG
}
}
}
}

9
Assets/LowEndMobilePipeline/Shaders/LowEndParticlesAdd.shader.meta


fileFormatVersion: 2
guid: dbe7dd837a4aa4f4789be2f8e40522a2
timeCreated: 1490023099
licenseType: Pro
ShaderImporter:
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:

68
Assets/LowEndMobilePipeline/Shaders/LowEndParticlesMultiply.shader


Shader "ScriptableRenderPipeline/LowEndMobile/Particles/Multiply"
{
Properties
{
_MainTex("Particle Texture", 2D) = "white" {}
}
Category
{
Tags{"Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" "RenderPipeline" = "LowendMobile" "PreviewType" = "Plane"}
Blend Zero SrcColor
Cull Off Lighting Off ZWrite Off
SubShader
{
Pass
{
Tags { "LightMode" = "LowEndMobileForward" }
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 2.0
#pragma multi_compile_fog
#include "UnityCG.cginc"
sampler2D _MainTex;
struct appdata_t
{
float4 vertex : POSITION;
fixed4 color : COLOR;
float2 texcoord : TEXCOORD0;
};
struct v2f
{
float4 vertex : SV_POSITION;
fixed4 color : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_FOG_COORDS(1)
};
float4 _MainTex_ST;
v2f vert(appdata_t v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.color = v.color;
o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
fixed4 frag(v2f i) : SV_Target
{
half4 prev = i.color * tex2D(_MainTex, i.texcoord);
fixed4 col = lerp(half4(1,1,1,1), prev, prev.a);
UNITY_APPLY_FOG_COLOR(i.fogCoord, col, fixed4(1,1,1,1)); // fog towards white due to our blend mode
return col;
}
ENDCG
}
}
}
}

9
Assets/LowEndMobilePipeline/Shaders/LowEndParticlesMultiply.shader.meta


fileFormatVersion: 2
guid: 865346c6c43817d4c99b6594d9db6a0e
timeCreated: 1490023111
licenseType: Pro
ShaderImporter:
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:

/Assets/LowEndMobilePipeline/LowEndMobilePipeline.shader.meta → /Assets/LowEndMobilePipeline/Shaders/LowEndMobilePipeline.shader.meta

/Assets/LowEndMobilePipeline/LowEndMobilePipeline.shader → /Assets/LowEndMobilePipeline/Shaders/LowEndMobilePipeline.shader

/Assets/LowEndMobilePipeline/LowEndMobilePipelineCore.cginc → /Assets/LowEndMobilePipeline/Shaders/LowEndMobilePipelineCore.cginc

/Assets/LowEndMobilePipeline/LowEndMobilePipelineCore.cginc.meta → /Assets/LowEndMobilePipeline/Shaders/LowEndMobilePipelineCore.cginc.meta

正在加载...
取消
保存