Sin descripción
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ParticlesSimpleLitInput.hlsl 3.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #ifndef UNIVERSAL_PARTICLES_SIMPLE_LIT_INPUT_INCLUDED
  2. #define UNIVERSAL_PARTICLES_SIMPLE_LIT_INPUT_INCLUDED
  3. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  4. #include "Packages/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesInput.hlsl"
  5. // NOTE: Do not ifdef the properties here as SRP batcher can not handle different layouts.
  6. CBUFFER_START(UnityPerMaterial)
  7. float4 _SoftParticleFadeParams;
  8. float4 _CameraFadeParams;
  9. float4 _BaseMap_ST;
  10. half4 _BaseColor;
  11. half4 _EmissionColor;
  12. half4 _BaseColorAddSubDiff;
  13. half4 _SpecColor;
  14. half _Cutoff;
  15. half _Smoothness;
  16. half _DistortionStrengthScaled;
  17. half _DistortionBlend;
  18. half _Surface;
  19. CBUFFER_END
  20. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Particles.hlsl"
  21. TEXTURE2D(_SpecGlossMap); SAMPLER(sampler_SpecGlossMap);
  22. #define SOFT_PARTICLE_NEAR_FADE _SoftParticleFadeParams.x
  23. #define SOFT_PARTICLE_INV_FADE_DISTANCE _SoftParticleFadeParams.y
  24. #define CAMERA_NEAR_FADE _CameraFadeParams.x
  25. #define CAMERA_INV_FADE_DISTANCE _CameraFadeParams.y
  26. #define _BumpScale 1.0
  27. half4 SampleAlbedo(float2 uv, float3 blendUv, half4 color, float4 particleColor, float4 projectedPosition, TEXTURE2D_PARAM(albedoMap, sampler_albedoMap))
  28. {
  29. half4 albedo = BlendTexture(TEXTURE2D_ARGS(albedoMap, sampler_albedoMap), uv, blendUv) * color;
  30. half4 colorAddSubDiff = half4(0, 0, 0, 0);
  31. #if defined (_COLORADDSUBDIFF_ON)
  32. colorAddSubDiff = _BaseColorAddSubDiff;
  33. #endif
  34. albedo = MixParticleColor(albedo, half4(particleColor), colorAddSubDiff);
  35. albedo.a = AlphaDiscard(albedo.a, _Cutoff);
  36. #if defined(_SOFTPARTICLES_ON)
  37. ALBEDO_MUL *= SoftParticles(SOFT_PARTICLE_NEAR_FADE, SOFT_PARTICLE_INV_FADE_DISTANCE, projectedPosition);
  38. #endif
  39. #if defined(_FADING_ON)
  40. ALBEDO_MUL *= CameraFade(CAMERA_NEAR_FADE, CAMERA_INV_FADE_DISTANCE, projectedPosition);
  41. #endif
  42. return albedo;
  43. }
  44. half4 SampleAlbedo(TEXTURE2D_PARAM(albedoMap, sampler_albedoMap), ParticleParams params)
  45. {
  46. half4 albedo = BlendTexture(TEXTURE2D_ARGS(albedoMap, sampler_albedoMap), params.uv, params.blendUv) * params.baseColor;
  47. half4 colorAddSubDiff = half4(0, 0, 0, 0);
  48. #if defined (_COLORADDSUBDIFF_ON)
  49. colorAddSubDiff = _BaseColorAddSubDiff;
  50. #endif
  51. albedo = MixParticleColor(albedo, half4(params.vertexColor), colorAddSubDiff);
  52. albedo.a = AlphaDiscard(albedo.a, _Cutoff);
  53. #if defined(_SOFTPARTICLES_ON)
  54. ALBEDO_MUL *= SoftParticles(SOFT_PARTICLE_NEAR_FADE, SOFT_PARTICLE_INV_FADE_DISTANCE, params);
  55. #endif
  56. #if defined(_FADING_ON)
  57. ALBEDO_MUL *= CameraFade(CAMERA_NEAR_FADE, CAMERA_INV_FADE_DISTANCE, params.projectedPosition);
  58. #endif
  59. return albedo;
  60. }
  61. half4 SampleSpecularSmoothness(float2 uv, float3 blendUv, half alpha, half4 specColor, TEXTURE2D_PARAM(specGlossMap, sampler_specGlossMap))
  62. {
  63. half4 specularGloss = half4(0, 0, 0, 1);
  64. #ifdef _SPECGLOSSMAP
  65. specularGloss = BlendTexture(TEXTURE2D_ARGS(specGlossMap, sampler_specGlossMap), uv, blendUv);
  66. #elif defined(_SPECULAR_COLOR)
  67. specularGloss = specColor;
  68. #endif
  69. #ifdef _GLOSSINESS_FROM_BASE_ALPHA
  70. specularGloss.a = alpha;
  71. #endif
  72. return specularGloss;
  73. }
  74. #endif // UNIVERSAL_PARTICLES_SIMPLE_LIT_INPUT_INCLUDED