Skip to content

Instantly share code, notes, and snippets.

@PopupAsylum
PopupAsylum / PA_CubeRefraction
Last active January 6, 2017 13:00
Box Projected Refraction
//PA_CubeRefraction is an adaptation of the UnityGI_IndirectSpecular function from UnityGlobalIllumination.cginc
float3 PA_CubeRefraction(float3 vViewDirectionWs, float3 vPositionWs, float frosted) {
float3 result = 0;
float3 vRefractionDirWs0 = vViewDirectionWs.xyz;
#if ( UNITY_SPECCUBE_BOX_PROJECTION )
{
vRefractionDirWs0.xyz = BoxProjectedCubemapDirection(vViewDirectionWs.xyz, vPositionWs.xyz, unity_SpecCube0_ProbePosition, unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax);
}
@PopupAsylum
PopupAsylum / CustomFramer.cs
Created January 24, 2017 11:41
Change how unity's 'F' framing is applied
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
public class CustomFramer : MonoBehaviour {
public float radius = 1f;
@PopupAsylum
PopupAsylum / Exposure.cs
Created January 29, 2017 20:55
Sets a global exposure shader variable based on light probes
using UnityEngine;
using System.Collections;
using UnityEngine.Rendering;
[ExecuteInEditMode]
public class Exposure : MonoBehaviour {
const float DEFAULT_EXPOSURE = 3f;
const string EXPOSURE_PROPERTY = "_PA_Exposure";
@PopupAsylum
PopupAsylum / ShaderExposure.shader
Last active January 29, 2017 21:04
Applies the exposure of Exposure.cs
//Apply exposure
o.vColor.rgb *= _PA_Exposure;
//Uncharted 2 tonemapping curve http://filmicgames.com/archives/75
o.vColor.rgb =((o.vColor.rgb*(0.15*o.vColor.rgb + 0.10*0.50) + 0.20*0.02) / (o.vColor.rgb*(0.15*o.vColor.rgb + 0.50) + 0.20*0.30)) - 0.02 / 0.30;