FXLab - Unity Effects (Does NOT require Unity Pro)

FXLab gives the power of the Unity Pro RenderTexture feature to Unity (Basic) users.

This asset allows the usage of “RenderTextures” for Unity users with only the normal version of Unity.
Simply put one of the many render options to the camera which shall render first and FXLab will generate the needed data for the textures:

**Available Renderers:**Screen
Renders the view of a list of cameras into your RenderTexture, ideal for screen effects or CCTVs

Depth
Renders the depth of the scene viewed from the list of cameras into a RenderTexture, ideal for Depth of Field, Screen Space Ambient Occlusion and any other kind of effects.

Reflection
Renders the reflected view along a given plane from the list of contributing cameras into a RenderTexture. Use it to create stunning water and more.

Normals
Render the world normals generated by your scene into a texture and use these to create stunning post processing effects, like Ambient Occlusion or Raytraced Reflections.

Custom
Enhance the system by creating own renderers, the full source code of FXLab is included!

Capture Screen
Capture the current screen content right after the rendering has finished. This is combinable with post processing effects and multiple other Capture Screen components.

Post Processing
Render postprocessing effects right after your camera has finished rendering.

Every aspect of FXLab is perfectly integrated into the Unity GUI. Every aspect can be configured, for example:

**RenderTextures:**Update Interval
How often shall this RenderTexture be updated, set this value to increase the performance.

Size Mode
Set how the size of the RenderTexture should be calculated, choose between Factor which bases the size upon a given Size factor and the current Resolution or Max Size, which limits the texture size to a given value.

Priority
Which RenderTexture should be rendered first, this allows to specify effects which react to others.

Preview
Full Preview of the rendered content.

Export the RenderTextures to make them assignable to materials! When not done, it will work too, RenderTextures will be globally available in shaders so that materials will work without much extra work.

This package also includes following effects (FXLab 1.1.0):

  • Water
  • Glass
  • Soft Particles
  • Shockwaves
  • Heat Haze
  • Sucktion
  • Motion Trails
  • Generic Distortions
  • Depth of Field
  • Under Water
  • Bloom
  • Luminance (Grayscale)
  • Pixelize
  • Vignette
  • TV Noise
  • Interlace Lines
  • Motion Blur
  • Screen Space Antialiasing (SSAA)
  • Screen Space Light Shafts
  • More to come!

A full documentation is available, with setup/installation, and descriptions to some effects. Every effect has a separate sample included into this asset.
http://www.dras.biz/FXLab/Documentation/index.html

Videos:

WebPlayers:
http://www.dras.biz/FXLab/Samples/Ruins/Ruins.html
http://www.dras.biz/FXLab/Samples/DepthOfField/DepthOfField.html
http://www.dras.biz/FXLab/Samples/SoftParticles/SoftParticles.html
http://www.dras.biz/FXLab/Samples/UnderWater/UnderWater.html
http://www.dras.biz/FXLab/Samples/Bloom/Bloom.html

Big WebPlayer samples:
Icland Scene
Project Files Island Scene
Mountain Scene
Project Files Mountain Scene

AssetStore Link ($30):

Buy over Payloadz ($20):
http://www.payloadz.com/go/sip?id=2381084

Facebook Page:

I tested the demo and the affects are really cool! I like the shockwave and the water effects!
Question: Does it work as well on mac? I had some issues with other tools …
Keep up the good work!

Looks really good!
does it use any better shader functions when using unity pro?

I mean are there still benefits to be gained from pro when using this assets?

Hi there

@Rynns:
Unfourtunately I am unable to test it myself on this devices, but a good friend of mine tested it on Mac and there it seems to work like expected :slight_smile:
One reviewer even tested it with a mobile device and said that it works there too.

@Lars Steenhoff:
FXLab does not give any benefit to Unity Pro owners, FXLab does bring RenderToTextures to Unity, but it is not equally to the RenderToTexture System from Unity Pro. One can change the shaders included in FXLab to work with Unity Pro, this will work, but I dont own Unity Pro, so I am not the right person for this.

Greetings

Great work!
Fantastic effects for the Unity-Indie Developers. Thank you!

I uploaded a video demonstrating some of the effects by capturing the Ruins sample (available as Webplayer demo):

Suggestions about new features or effects, videos, eg are all welcome.

I followed this from the beggining and i think it’s awesome !
Here is my suggestions :

  • Add SSAO (if possible)
  • Better Depth of Field :
    1383997--70629--$DOF.jpg
    I think do it in 2 times can resolve the problem (one texture for near objects and one for far objects)
  • Bloom
  • Others post effects
  • If possible, for high-end computers, allow to have a full resolution texture (to have more accurate effects)
  • I think i dream but shadow mapping ?

Hi there,

everything you mentioned may be possible. But the DoF effect is not that bad considering it uses only one pass, the screen texture and a depth texture :wink:

For SSAO I will need to create a pass which extracts the surface normals, thats no problem at all, maybe even a 8 bit depth is enough, so this will only require one FX texture, wheter its possible to create the effect in one pass or not is still something I am not sure about as I have never implementes SSAO myself, well we will see.

Bloom should be possible, I will test it later.

Other PP effects, well why not, I think I will rework the PP class to allow a separate grab of the rendered scene just to make it more precise (but this will cost some performance, every grab is expensive).

Shadow Mapping should work too, we are already able to extract the depth from the view of an camera, so there is room for shadowmapping, volumetric lighting, eg.

Greetings, Mark

Edit:

A first quickly made version of the bloom effect.

You have made my day.

This essentially gives me all I wanted from Unity Pro for about $1480 less.

How easy is it to add in more post processing effects? Would be great to get some of the default Unity ones integrated into this.

Thanks for a great product

Well, I made a simple boom PP effect yesterday, thats the full shader code of it, its very easy to write custom effects, one just needs to remember that fue to performance reasons multi grab effects (nultiple blur passes for example) should be avoided.

Shader "FXLab/PostProcessing/Bloom" {
    Properties {
		_Contrast ("Contrast", Float) = 1
		_Brightness ("Brightness", Float) = 1
		_Bias ("Bias", Float) = 0
		_BlurRange ("Blur Range", Float) = 0.2
	}
	SubShader {
		Blend One One
		Tags { "Queue"="Overlay" "IgnoreProjector"="True" "RenderType"="Opaque" "FXTextures"="Depth, ScreenBuffer"}
		Lighting Off
		Cull Off
		Fog { Mode Off }
		ZWrite Off
						
		Pass {
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag 
			#pragma target 3.0
			#include "UnityCG.cginc"
			
			//#define SCREENGRAB_BLUR_STEPS 8
			#include "../FXLab.cginc"
			
			float _Contrast;
			float _Brightness;
			float _Bias;
			float _BlurRange;


			struct appdata {
				float4 vertex : POSITION;
				float4 texcoord : TEXCOORD0;
			};


			struct v2f {
				float4 pos : SV_POSITION;
				float2 uv : TEXCOORD0;
				float4 screenPos : TEXCOORD2;
			};
									
			v2f vert (appdata v) {
				v2f o;
				o.pos = mul( UNITY_MATRIX_MVP, v.vertex );
				o.uv = v.texcoord.xy;
				o.screenPos = o.pos;
				return o;
			}
			
			#define ITERATIONS 3
					
			fixed4 frag( v2f o ) : COLOR
			{
				SCREEN_UV(o.screenPos);
				
				fixed3 color = 0;
				for (int i = 0; i < ITERATIONS; ++i)
				{
					color += SAMPLE_BLURRED_SCREEN(0, _BlurRange / ITERATIONS * (i + 1));
				}
				color /= ITERATIONS;
				
				color = saturate(color - _Bias);
				color = saturate(color * _Brightness);
				color = saturate(((color * 0.5 - 0.5) * _Contrast) * 2 + 1);
				
				return fixed4(color, 1);
			}
			ENDCG
		}
	}
    Fallback off
}

Great bloom effect :slight_smile:
For SSAO, if you dont want to use surface normal, you can use the crysis 1 implementation or the uncharted implementation : Hable John Uncharted2 Hdr Lighting | PPT (page 179)
But i’m a beginner in the programmation of shaders.

Thanks, I will have look into it :slight_smile:

My colleague finished 2 bigger sample scenes, which are also ready as a project download (you need FXLab for it, the included readme file will contain a how to install documentation):

A island scene in which the player is able to walk along the beach, view the water from different angles, watch into a camp fire and can discover the depth of the water.
Project:
http://www.dras.biz/FXLab/Samples/FXLab_IslandScene/Free_FXLab_Karibic_IslandSample.zip
WebPlayer:
http://www.dras.biz/FXLab/Samples/FXLab_IslandScene/FXLab_IslandScene.html

A mountain scene in which the player can shoot some barrels. This scene includes soft particles (switchable to display the difference). A motion blur effect, shockwaves and a custom scope effect.
Project:
http://www.dras.biz/FXLab/Samples/FXLab_MountainScene/Free_FXLab_MountainSample.zip
WebPlayer:
http://www.dras.biz/FXLab/Samples/FXLab_MountainScene/FXLab_MountainScene.html

Would also be nice when people who bought FXLab can give a review and a rating at the AssetStore, this will give us a motivation boost and allows us to focus on the requests and problems.

hello marrrk
i m a happy costumer who bought your asset even i have a unity pro, i can t find the fire effect shown in this page, do you mind to include it in your asset if it s not already the case?

cheers

This package seems super useful. I would’ve needed something like this 2 months ago.

Its not part of the asset yet, but I can add it of course.

Great work man it’s look awesome.

It would be great if you could add in all new effects into the asset!

Well we have following things planned for the next version (1.1):

  • ability to allow post processing effects to be rendered into FXTexture content
  • ability to allow the post processing class to grab the final scene in full resolution
  • improved water plane handling when using view depth and water depth for the water effects
  • improved water transparency calculation (currently only the water height will be used to determine the transparency near shores)
  • Bloom PP effect
  • SSAO PP effect
  • HeazHaze sample (moving fireball as requested)

I am still open for more suggestions/ideas.

Fish Eye would be awesome!

Im pretty useless when it comes to shader programming, how much work would it be to port over one of the Pro Effects into this system?