Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by Flamacore · May 01, 2017 at 01:41 PM · shadersparticlesglowadditive

Glow / Bloom Particle Shader [SOLVED]

[SOLVED] The final shader code I used is here: https://pastebin.com/HDdMr3Cr

Hi everyone, I've got a problem/question about shaders - which is a subject I'm new to. What I basically want to achieve is a glowing particle Shader/Material couple. I tried a couple of things but could not get the exact effect... Below I provide 2 images. The second sample (with white glowing particles) is the exact effect I want which is a shader I acquired from here: https://goo.gl/DQw4Js (Stack Overflow link). Both shaders were used on the same particle system with the exact same properties (size, emission, speed etc.)

So what I need is a shader to have the effect on the second sample but also works and looks like the Particle/Additive(Soft) shader.

First sample: Particle/Additive(Soft) shader

Sample1

Second sample: https://goo.gl/DQw4Js (the shader in the answer called "Glow") Sample2

TL;DR: I need the effect on the second shader to be on the shader 1.

Any help would be greatly appreciated. Thanks in Advance to anyone who would be willing to help :)

Just including the original Paricles/Additive(Soft) code for convenience. https://pastebin.com/JfGhnBXs

sample2.jpg (14.2 kB)
sample1.jpg (14.2 kB)
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by ifurkend · May 01, 2017 at 02:31 PM

The issue with the shader from that Stackoverflow answer is the alpha blending mode "Blend SrcAlpha OneMinusSrcAlpha" which is used in the traditional "particle alpha blended" shader. For "additive" blending result, you change the blend mode to either "Blend One One" or "Blend SrcAlpha One". Also preferably change "ZWrite On" to "ZWrite Off". Shader receives color from renderer component via the "COLOR" semantic (all-caps).

The following code is modified from the official Particles/Additive shader, hence the copyright comment in the beginning:

 // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
 
 Shader "Particles/Additive Intensify" {
 Properties {
     _TintColor ("Tint Color", Color) = (0.5,0.5,0.5,0.5)
     _MainTex ("Particle Texture", 2D) = "white" {}
     _InvFade ("Soft Particles Factor", Range(0.01,3.0)) = 1.0
     _Glow ("Intensity", Range(0, 127)) = 1
 }
 
 Category {
     Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" }
     Blend SrcAlpha One
     ColorMask RGB
     Cull Off Lighting Off ZWrite Off
     
     SubShader {
         Pass {
         
             CGPROGRAM
             #pragma vertex vert
             #pragma fragment frag
             #pragma target 2.0
             #pragma multi_compile_particles
             #pragma multi_compile_fog
 
             #include "UnityCG.cginc"
 
             sampler2D _MainTex;
             fixed4 _TintColor;
             half _Glow;
             
             struct appdata_t {
                 float4 vertex : POSITION;
                 fixed4 color : COLOR;
                 float2 texcoord : TEXCOORD0;
                 UNITY_VERTEX_INPUT_INSTANCE_ID
             };
 
             struct v2f {
                 float4 vertex : SV_POSITION;
                 fixed4 color : COLOR;
                 float2 texcoord : TEXCOORD0;
                 UNITY_FOG_COORDS(1)
                 #ifdef SOFTPARTICLES_ON
                 float4 projPos : TEXCOORD2;
                 #endif
                 UNITY_VERTEX_OUTPUT_STEREO
             };
             
             float4 _MainTex_ST;
 
             v2f vert (appdata_t v)
             {
                 v2f o;
                 UNITY_SETUP_INSTANCE_ID(v);
                 UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
                 o.vertex = UnityObjectToClipPos(v.vertex);
                 #ifdef SOFTPARTICLES_ON
                 o.projPos = ComputeScreenPos (o.vertex);
                 COMPUTE_EYEDEPTH(o.projPos.z);
                 #endif
                 o.color = v.color * _TintColor;
                 o.color.rgb *= _Glow;
                 o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
                 UNITY_TRANSFER_FOG(o,o.vertex);
                 return o;
             }
 
             sampler2D_float _CameraDepthTexture;
             float _InvFade;
             
             fixed4 frag (v2f i) : SV_Target
             {
                 #ifdef SOFTPARTICLES_ON
                 float sceneZ = LinearEyeDepth (SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos)));
                 float partZ = i.projPos.z;
                 float fade = saturate (_InvFade * (sceneZ-partZ));
                 i.color.a *= fade;
                 #endif
                 
                 fixed4 col = 2.0f * i.color * tex2D(_MainTex, i.texcoord);
                 UNITY_APPLY_FOG_COLOR(i.fogCoord, col, fixed4(0,0,0,0)); // fog towards black due to our blend mode
                 return col;
             }
             ENDCG 
         }
     }    
 }
 }
 
Comment
Add comment · Show 3 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Flamacore · May 01, 2017 at 03:01 PM 0
Share

Thanks for the answer but that only helps my case partially. If you may help me on the complete issue I would be grateful, provided you can of course :) I need the second shader (from the answer) to also respond to Color Over Life Time property, particle emission (which seems extremely low compared to the other) and all the others... Anything on your $$anonymous$$d? :)

EDIT: By the way, the other way around is O$$anonymous$$ too obviously. If the glow part of the second shader can be added to the Additive(soft), that would work too I guess :)

avatar image Flamacore · May 01, 2017 at 03:57 PM 0
Share

Wow that was quick :) Thanks again but having an error in this line: fixed4 col = 2.0f * i.color col * _Glow * _TintColor * tex2D(_$$anonymous$$ainTex, i.texcoord); Shader error in 'Particles/Additive Intensify': syntax error: unexpected token 'col' at line 81 (on d3d11)

I really am new to this but I think that might just indicate a simple syntax error perhaps? Thanks for the effort...

avatar image Flamacore · May 01, 2017 at 04:31 PM 0
Share

SOLVED! managed to fix myself by adjusting the line 81 to 2 lines like this; fixed4 col = 2.0f i.color; col = Glow _TintColor tex2D($$anonymous$$ainTex, i.texcoord);

THAN$$anonymous$$S A TON! :)

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

104 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

2D glow post possessing effect. 1 Answer

How to make a sparkle/glow effect? 0 Answers

A lit particle shader with alpha blending,Lit particle shader with transparency 0 Answers

How to get a neon glow effect on text like in this example? 0 Answers

How to make trail glow through shaders? 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges