# Changelog

## 3.6.4
### Scripts
* Fixed issue where Unity static Area Lights' scene GUIs were not appearing after installing Alloy.
* Fixed intermittent object reference error for Material Inspector.

### Integration
* Added HX Volumetric Lighting integration for most particle shaders.
   + Excludes "Multiply (Double)" and "Alpha Blended Premultiply".

## 3.6.3
### Scripts
* Fixed issue where AreaLights needed to update after all other light updates and animation clips had run.

## 3.6.2
### Shaders
* Added new config option A_USE_BLACK_SPECULAR_COLOR_TOGGLE to allow killing specular lighting per-pixel.
   + Useful for RTP integration.
* Changed "Decal/Multiplicative" and "Decal/Ambient" to add missing alpha visualize option on Main Textures Base Color map.
* Completed internal API overhaul.
* Fixed metallic channel not correctly affecting translucent shadows.
* Fixed baked occlusion shadows in injection header shaders.
* Fixed lightmap shadow mixing support.

### Scripts
* Changed Camera inspector to now provide an easy button for adding Alloy Effects Manager components.
* Fixed AreaLight issue where using script to set intensity to zero could cause light to blow out in intensity.
* Removed the "Material Migrator" menu item.

### Integration
* Improved HX Volumetric Lighting integration with "Decal/Additive" shader.

## 3.6.1
### Shaders
   + Fixed the compiler errors that happened when using new shadow masks mode.
   + Fixed issue where baked light occlusion was not being applied to first directional light in forward mode.
   + Fixed the issue where the first directional light wasn't rendering in forward mode with lightmaps enabled.

### Scripts
   + Fixed issue with packer on first import where it could not detect "_PackerDefinition.asset".

## 3.6.0
### Shaders
* Added Unity 5.6 support.
* Added "Particles/Anim Alpha Blended" shader.
* Changed "Details*" shaders to have proper Alloy inspectors.
* Changed most shaders to have new controls:
   + "Render Queue" for sort order.
   + "Enable Instancing" toggle.
   + "Specular Highlights" toggle.
   + "Glossy Reflections" toggle.
* Changed RenderingModes to work correctly with shader replacement. 
   + "Cutout" tagged as "TransparentCutout". 
   + "Fade" tagged as "Transparent". 
   + "Transparent" tagged as "Transparent". 
* Changed SpeedTree GeometryTypes to work correctly with shader replacement.  
   + "Frond" tagged as "TransparentCutout". 
   + "Leaf" tagged as "TransparentCutout". 
* Fixed CarPaint shaders to have "SpecularTint" property.

### Scripts
* Changed Area Light component menu path to "Alloy/Alloy Area Light".
* Changed Area Lights to work with Unity's light inspectors, including the new "Light Explorer".
   + Now uses Unity Light component's color and intensity directly. 
   + You'll need to manually update your scripts and animation clips to point to the Unity light fields.
* Removed "Animated By Clip" option from AreaLight components.
   + Now works with animation clips and third party script tools out of the box.
   + You'll need to manually delete references to it from your animation clips.
* Renamed "Alloy Deferred Renderer Plus" component to "Alloy Effects Manager" to clarify its usage.
   + Now listed under "Alloy/Alloy Effects Manager" in the component menu.
   + Please write down your old settings before doing the update as you may need to re-enter them.
   + You may only need to toggle the component to restore its command buffers.

### Integration
* Added support for "VertExmotion".
* Updated Substance Designer shader to 6.0.
   + UV scale support.
* Updated Substance Painter shader to 2.5.
   + Specular Level channel support.
   + Parallax Mapping support.

## 3.5.2
### Shaders
* Changed deferred Skin and Transmission to work with single-pass stereo VR rendering.
* Fixed issues with deferred Transmission code that would fail to compile on some platforms.

### Integration
* Added support for "Vapor" transparency integration.

## 3.5.1
### Shaders
* Fixed "Tessellation *" shaders target 4.6 warning messages.
* Fixed "Glass *" shaders to support Unity 5.5.
   + Includes single-pass stereographic fix.

## 3.5.0
### Shaders
* Added Unity 5.5 suppport.
* Fixed shadow wind animations on SpeedTree and foliage shaders.
* Fixed "Transmission/TwoSided" shaders' compiler error when they are set to Fade or Transparent mode.
* Optimized the deferred Skin and Transmission effects.
   + Added new config flag A_USE_DEFERRED_MATERIAL_TYPE_BRANCHING to toggle optimizations.

### Known Issues
* Glass shader distortion is much weaker than expected.

## 3.4.5
### Shaders
* Added Unity terrain foliage shaders.
   + Automatically applied when using Alloy "Terrain *" shaders.
* Changed "Skin" shaders so that the base color now affects transmission correctly.
* Changed most shaders so that LOD crossfade is disabled by default.
   + Fixes the batching issue.
* Fixed area light specular highlight distortion in "Forward" Rendering Path.
* Fixed "Glass *" shaders' issue where a zero opacity would cause black voids in reflection probes.
* Fixed SpeedTree Two-Sided lighting.
* Fixed SpeedTree Geometry Type "Fronds" to show "Opacity Cutoff" control.

### Features
* Changed "Main Properties", "Secondary Properties", & "Oriented Properties" to add a "Specular Tint" parameter.
* Changed "Specular Tint" to be available in Roughness Source "Packed Map Alpha" mode as well.
* Fixed "Detail" and "Wetness" Mask Strength parameters to only affect the mask.
* Fixed "Rim Emission" faceting for Normals Source "Vertex Normals".

### Injection Headers
* Changed to be more consistent with the Unity version.
* Fixed issue where opacity was darkening materials in deferred mode.

### Mods
* Added "Core CrossFade" shader with LOD CrossFade support.
* Added "Skin VertexDetail" shaders with vertex color masking for 3-4 detail normal maps.
* Fixed "Curvature Test" shader.

### Integration
* Updated "Alloy Deferred Shading UBER" shader to support UBER 1.2.

## 3.4.4
### Scripts
* Added "Animated by Clip" toggle to the AreaLight component to support Animation Clips.
* Fixed issue where "AlloyRequiredActions.cs" was causing build errors.

## 3.4.3
### Scripts
* Changed "Material Migrator" to run on the entire project, rather than per-scene.
* Changed "Material Migrator" to fix Normals Source on existing materials.
* Changed "Keyword Report" to "Material Report".
* Changed "Material Report" to add a section for shaders to list their associated materials.
* Changed "Light Migrator" to "Light Converter".
* Fixed "Light Converter" to properly convert the intensity from Unity lights.

### Shaders
* Added config options to set which data is read from which channels in the packed maps.
* Added a "Normals Source" setting to enable/disable normal maps.
   + Setting it to "Vertex Normals" enables extensive optimizations to greatly reduce a material's cost.
* Added "Vertex Blend" shader with an optional Alpha splat, and toggleable TriPlanar mapping.
   + Add Alpha splat, and set Roughness Source to Base Color Alpha to match the old "Vertex Blend 4Splat" shader.
* Added "SpeedTree (Forward)" shader that is forward-only and supports the full set of Transmission parameters.
* Changed "Skin*" shaders to add Parallax feature. 
* Changed "Skin*" shaders and camera components to restore Bias and Scale inputs.
* Changed "Terrain" shaders to support enabling optimizations when no normal maps are used.
* Changed "Vertex Blend" to add AO2, Decal support.
* Changed "Terrain" shaders to support TriPlanar mapping as a toggleable feature. 
* Changed "Roughness Source" to be global for the whole shader, and eliminated it in Secondary and Oriented Textures sections.
* Fixed "TriPlanar" and "Oriented" shaders to correctly map textures for shadows and lightmap baking.
* Fixed "Terrain/4Splat" fog in forward mode.
* Renamed "TriPlanar/Full" to "TriPlanar" and modified it to encompass the "TriPlanar/Lite" inputs.

### Features
* Added "Wetness" feature to most of the shaders.
* Changed "Detail" to add a "Mask Strength" parameter.

### Legacy
* Moved "Terrain * TriPlanar" shaders into this set.
* Moved "TriPlanar/Lite" shaders into this set.
* Moved "Vertex Blend/4Splat *" shaders into this set.

### Mods
* Removed "Wetmask/Core" & "Wetmask/Weighted Blend".

### Integration
* Added support for "Hx Volumetric Lighting" transparency integration.
* Fixed Substance Painter custom shader to not cause rough specular in shadowed areas.
* Updated Substance Painter custom shader to support version 2.2.

## 3.4.1
_NOTE:_
* You must run the new Material Migrator tool in each of your scenes to clean up and replace old keywords.
   + Open Window->Alloy->Material Migrator.
   + After it finishes, hit Ctrl+S.

### Shaders
* Added "Eye" shader that is deferred-compatible and provides fine control of each eye component.
* Added Dithered LOD Cross-fade support to the majority of the shaders.
* Changed "Glass" shaders to support Roughness Source "Base Color Alpha" in their Main Textures.
* Changed "SpeedTree" shaders to support Transmission for Fronds and Leaves.
   + Reads alpha transmission from SpeedTree specular maps.
* Changed "SpeedTree" & "Terrain" shaders to disable UV-picking.
* Changed "Weighted Blend" shaders to add "Decal" feature.
* Changed "Decal/Ambient" to affect specular occlusion for more consistent visuals between forward/deferred reflections.
* Changed "Skin" shaders to drop "Detail" Falloff parameter due to lack of use.
* Fixed "TriPlanar" and "Vertex Blend" shaders to have properly implemented Rendering Modes and opacity.
* Fixed "Transmission" shaders to no longer double-apply metallic inputs.
* Moved "Alloy Mods/Decal Ambient" into this set.
* Optimized lighting code to be much faster when the shader doesn't expose any AO or metallic inputs.
* Updated "Alloy Deferred UBER" override shader to support UBER 1.1b (U5.4.0b10 release). 
* Updated "Skin" shader to use corrected LUTs with a slightly wider scattering area. 

### Features
* Changed "Main Textures", "Secondary Textures", and "Oriented Textures" so that their tint alpha still affects opacity when their Roughness Source is set to "Base Color Alpha".
* Changed "Detail" to add the option to use vertex color alpha as a mask.
* Changed "Detail" to drop "AO(G) Variance(A)" & "Occlusion Strength" due to their high cost and lack of widespread use.
* Changed "Directional Blend" to have a vertex color alpha tint property like "Weighted Blend".
* Changed "Directional Blend" and "Weighted Blend" to use a MUCH cheaper blending equation.
   + Cutoff is the same, Blend will need to be re-tweaked.
* Changed "TeamColor" Tint toggle into a dropdown.
* Changed "Tessellation" to remove "Combined" mode option due to lack of use.
   + Planning equivalent functionality for fewer keywords in the next release. Stay tuned.
* Fixed Parallax Mode dropdown where "POM" was displaying as "P O M".

### Injection Headers
* Fixed issue with StandardSpecular where opacity was not being adjusted for metals.

### Scripts
* Added Window->Alloy->Samples menubar item.
* Added Window->Alloy->Keyword Report menubar item.
* Added Window->Alloy->Material Migrator menubar item.
* Changed Window->Alloy->Light Migration Tool to Window->Alloy->Light Migrator menubar item.
* Changed "Material Map Channel Packer" to drop "Detail" packed map since we are no longer supporting it.
   + We recommend deleting these maps from your project since they're now useless.

### Legacy
* Changed "Skin" shaders to drop "Detail" Falloff parameter due to lack of use.
* Moved "Alloy/Eye/Eyeball" shaders into this set.
* Moved "Alloy/Eye/Eyeball (Legacy)" shaders into this set.
   + Renamed to "Eye/Eyeball (Forward)".
* Moved "Alloy/Eye/Eye Occlusion" shaders into this set.
   + Use the "Alloy/Decal/Ambient" shader instead to achieve the desired eye occlusion effect.

### Mods
* Added "Car Paint Fast ClearCoat" shader which uses an experimental new ClearCoat approximation.
* Changed "SP Car Paint" to use an experimental new ClearCoat approximation.
* Changed "Weathered Blend" to add "Occlusion Strength" and "Normal Strength" parameters.
* Changed "Weathered Blend" to base its "Detail" feature UVs on the detail color map.
* Fixed "Weathered Blend" base material map AO to be converted to linear-space before being applied.

## 3.4.0 b4
### Shaders
* Changed "Mode" to "Roughness Source", "Full" to "Packed Map Alpha", and "Lite" to "Base Color Alpha".
* Fixed issue where deferred override shaders failed to compile while creating a build.

### Scripts
* Fixed issue where Deferred Skin was getting blocky artifacts when the editor viewports were resized.
* Optimized Deferred Skin to use less bandwidth and VRAM at runtime.

## 3.4.0 b3
### Shaders
* Added most of the Alloy shader features to the "SpeedTree" shader.
* Added scroll to the "Vertex Blend TriPlanar" shaders' texture inputs.
* Fixed instancing z-fighting issue with lighting in forward mode. 
* Optimized the "Vertex Blend", "Terrain", and "TriPlanar" shaders.
* Optimized forward lights by removing redundant calculations and moving some of the work to the vertex shader.
* Disabled instancing for now since it keeps interfering with several systems:
   + SpeedTree wasn't being affected by wind. 
   + Transmission brightness was off for directional lights. 
   + Skinned meshes were crashing the editor.

## 3.4.0 b2
### Shaders
* Added single-pass stereo rendering support.
* Added "Skin (Forward)" shaders whose parameters and lighting behavior match our "Deferred Skin" pipeline.
* Added instancing support to most of the shaders, including "SpeedTree".
* Changed "Skin" shaders to remove scattering mask so that the metallic mask and controls could be restored.
* Changed "* SingleSided" & "* DoubleSided" shaders to "* OneSided" and "* TwoSided" for easier navigation.
* Fixed "SpeedTree" and "Hair" shaders' incorrect lighting on backfaces.
* Moved "Skin (Legacy)" shaders into the "Legacy" sub-folder/menu.
* Optimized "Transmission TwoSided" shaders to use fewer passes.

### Scripts
* Added Mask Cutoff parameter to "Deferred Skin" to support thresholding transmission as a scattering mask.
* Changed "Deferred Skin" to never have shadowed transmission.
* Changed "Deferred Transmission" to only be shadowed for "TwoSided", or when "OneSided" shadow culling is set to Front.
* Fixed "Deferred Skin" blocky normal artifact. 
* Removed "Deferred Skin" Bias and Scale parameters due to their lack of clarity and often being left on their defaults.

### Legacy
* Moved "Skin (Legacy)" shaders into the "Legacy" sub-folder/menu.

## 3.4.0 b1
### Shaders
* Added Unity 5.4 support.
* Added Light Probe Proxy Volume support to all lit shaders, including particles.
* Added a "Lite" mode to Main, Secondary, and Oriented Textures to get roughness from the base color map alpha.
* Fixed "Partices/VertexLit Blended" shader to support 1 Directional Light, 4 Point Lights, and Light Probes (including LPPV).
* Fixed the vertex lighting code to support the Unity attenuation config flag.
* Fixed SpeedTree shader to apply AO correctly. 
* Fixed Skin Transmission to not be so much darker than regular transmission.

### Scripts
* Optimized Deferred Skin rendering.
   + Also removed some development controls that weren't really artist-friendly.

### Mods
* Added "SP Car Paint" shader that is similar to the Substance Painter CarPaint shader.

## 3.3.5
### Shaders
* Added detail normal map support to the SpeedTree shader's "Branch Detail" mode.
* Added "nSplat" terrain shader variants.
* Added "AO2" feature to the "Transition" shaders.
* Added "Detail" feature to the "Terrain" and "Vertex Blend" TriPlanar shaders.
* Changed "Weighted Blend" and "Directional Blend" to use their secondary textures alpha to influence blending.
* Changed "Parallax" effect to reduce cost when using it in conjunction with Amplify Texture.
* Changed the internal API coding style.
   + If you use the config header, you will need to use the new flag names.
   + Contact us if you are using customized shaders and require updates.
* Fixed "Eyeball" shaders to apply pupil dilation effect with Amplify Texture.
* Fixed "Eyeball" shaders to sample normal maps when using Amplify Texture.
* Fixed the Unity attenuation option to match between Forward and Deferred mode.
* Fixed "Hair HighQuality" issue with depth of field.
* Fixed incomplete mode feature definitions for the "TriPlanar" and "Directional Blend" shaders.
* Fixed "Transition" shader's weird edge glow and blending behavior when using "Parallax" effect.
* Fixed "Oriented Blend" shader to apply "AO2" effect on top of the oriented blend layer as well as the base layer.
* Fixed missing "AO2" effect on "Directional Blend" shaders.

### Scripts
* Added a workaround for 3rd party plugins that use conflicting definitions for Unity's BlendMode enum.
* Added two new packed map modes to simplify converting Unity metallic and terrain packed maps to Alloy's formats.
* Fixed the Material Map Channel Packer to no longer transfer blurry samples from the input maps.
   + We strongly recommend that you reimport all your packed maps to apply this fix.
* Optimized the Material Map Channel Packer for much better packing speed.

### Mods
* Added "Transition Lite" shader that uses terrain packed maps for Main and Secondary Textures, as well as removing the glow effects from dissolve and transition.
* Added "Decal/Ambient" shader which is a mesh-based decal shader that multiplicatively blends only the ambient contribution.

### Known Issues
* redLights 2.0 integration is currently broken.

## 3.3.4
### Shaders
* Added support for directional disc area lights.
* Added support for enabling Unity attenuation.
   + Enable via config flag.
* Added support for Amplify Texture heightmaps in Parallax feature. 
* Fixed where the material inspector visualize shader wasn't compiling on the Mac OSX Metal build target.
* Fixed a PS4 compilation issues in the Deferred Skin post-process shaders.

### Scripts
* Updated the area light control to support radius on directional lights for disc lights.

### Integration
* Fixed the SD5 shader "Packed *" techniques to use a "packedMap" input like the original shader. 

### Mods
* Added the "Mesh Particle Core" shader that uses vertex colors to look up base and emission color from gradient textures.
* Fixed "Deferred Decal Advanced" shader's compilation error.

## 3.3.3
### Shaders
* Fixed the Skin shaders to not blur the specular illumination.

## 3.3.2
### Shaders
* Added support for Tube area lights.
   + Disable via config flag to slightly improve sphere light performance.
* Added a "Cull Mode" option to the Unlit shaders.
* Changed the mesh-based Decal shaders to be forward-compatible so that they have material inspector previews.
* Fixed Sphere Lights to remove distortion in their diffuse terms.
* Fixed Transmission to remove darkening and distortion due to large area lights.
* Removed the legacy CarPaint mask flag from the config header.

### Scripts
* Updated the area light control to support length on point lights for tube lights.

## 3.3.1
### Shaders
* Added the "Decal/Additive" mesh-based deferred decal shader.
* Fixed the Deferred Transmission and Skin effects to work with Deferred Reflection Probes disabled. 
* Fixed the Decal shaders to disable z-writes.
* Fixed the the bug where vertex colors were being double converted from gamma to linear resulting in oversaturated colors. 

### Integration
* Updated Substance Designer custom shader to support version 5.3.1.
   + Condensed all the shaders into one FX file with multiple techniques for ease of import.
* Updated Substance Painter custom shader to support version 1.6.
   + Removed the opaque shader, since the alpha test shader will work just as well in this context.

## 3.3.0
### Shaders
* Added SpeedTree shaders.
* Added the "Decal/Alpha", "Decal/Cutout", and "Decal/Multiplicative" mesh-based deferred decal shaders.
* Added deferred Eyeball shaders.
   + Renamed the existing forward-only Eyeball shaders to "Eyeball (Legacy)".
* Added deferred Skin shaders.
   + Uses new "Alloy Deferred Skin" deferred override shader & "Deferred Renderer Plus" camera component.
   + Renamed the existing forward-only Skin shaders to "Skin (Legacy)".
* Added deferred Transmission shaders.
   + Uses new "Alloy Deferred Transmission" deferred override shader & "Deferred Renderer Plus" camera component.
   + Renamed the existing forward-only Transmission shaders to "Transmission (Legacy)".
* Added support for colored light cookies to both our shaders and the Unity surface shader injection headers.
   + AreaLight script now automatically sets cookie on Spot lights that don't have one.
   + Set config flag to restore legacy behavior.
* Added a "Falloff" parameter to the Skin shader Details effect to simulate micro-occlusion at grazing angles.
* Added AO2 to the Weighted Blend shader.
* Changed all the tessellation shaders to add MacOSX support.
* Changed the TeamColor feature to offer the option to use the Masks texture directly as a color tint.
* Changed the TeamColor feature to use the new masks vector control for selecting which channels to use from the Masks map.
   + You will need to update any materials that were using RGBA masks.
* Changed the shaders to store specular occlusion directly in the Gbuffer to reduce cost and improve SSRR integration.
* Changed section names to be shorter and more readable in the material inspector.
* Changed Flakes properties so that the tint color alpha affects the flake mask.
* Changed ForwardEye shader to disable Iris highlight to simplify lighting API.
* Fixed the ForwardSkin and Skin shaders to correctly mask blurred normals.
* Fixed a bug in the override headers where they weren't correctly calculating Point/Spot lights in forward mode.
* Fixed the "Unlit" shaders so that it now renders properly when set to Fade/Transparent. 
* Fixed the "Oriented Core" shader to gamma-correct vertex colors before using them as tints.
* Fixed our tessellation shaders to not apply tessellation in their Meta passes.
* Fixed the Terrain and Vertex Blend TriPlanar modes to use per-pixel normals for specular occlusion and environment specular.
* Moved all the character shaders into the new sub-menu "Human".
* Moved the Terrain shaders into the "Nature" sub-menu to be with the SpeedTree shaders.

### Scripts
* Added more validation and warnings to the Material Map Channel Packer.
* Added a new "Deferred Renderer Plus" camera component to support deferred Skin and Transmission.
* Added per-light specular highlight toggle.
   + AreaLight component is now required on ALL lights, so use our Light Migration tool to update them.
* Changed the Light Migration tool to support the AreaLight component on all lights, and DefaultSpotCookie on Spot Lights.
* Changed all our packer definitions to be serialized to text by default to prevent issues in "Force Text", and "Mixed" modes.
* Fixed a bug in the Particle inspector where the UI wouldn't appear.

### Mods
* Added a two-pass, forward-only Full ClearCoat CarPaint shader.
* Added a prototype Deferred Decal shader.
* Added the "Intersection Glow" shader which is used for drawing clear domes with rim & emission effects that glows when it intersects other geometry.
* Added the "Masked Core" shader prototype which uses a shared packed masks texture and the ability to pick multiple masks to apply to the Detail, Emission, and Rim effects.
* Moved deferred-compatible Eyeball shader to official set.

### Documentation
* Added new sections for "Advanced Setup" of the deferred transmission and skin effects.
* Updated and reorganized most of the existing sections.

## 3.2.7
### Shaders
* Added a deferred reflections override shader.
* Added a shadow cull mode setting on the "Transmission SingleSided" shaders.

### Integration
* Changed the Subtance Painter preview shader to account for SP 1.5 changes. 
* Fixed the Subtance Painter preview shader alpha blending/test shader variants.

## 3.2.6
### Shaders
* Fixed and simplified the UBER integration by adding a dedicated deferred shader.

### Scripts
* Fixed the Map Packer pack definition corruption problem.

## 3.2.5
### Shaders
* Added "Alloy/Particles/VertexLit Blended" shader with support for vertex lighting and light probes.
* Added UBER integration to our deferred override shader.
* Added Occlusion Strength and Normal Strength parameters to all relevant shaders.
* Added Beta Alloy brdf and area light override headers for Unity's surface shader system.
   + Currently works for surface shaders using Standard, StandardSpecular, Phong, and Lambert lighting models.
* Changed default HDR Clamp from 32 to 100.
   + To restore legacy, modify setting in config header.
* Changed the "CarPaint" shaders to have the flake map RGB act as a tint, and the alpha act as the mask.
   + Set config flag to restore legacy behavior.
* Changed the Unlit shaders' Main Textures properties' Tint parameter to use an HDR Color picker.
* Changed the Unlit shaders to affect the Gbuffer in deferred mode so that image effects will detect them.
* Changed light probe sampling to be fully per-pixel by default.
   + Restore legacy behavior with config flag.
* Changed our internal Luminance code to a more modern formula, which may affect look of specular tints.
* Fixed an issue with the Skin shader where it wasn't correctly accounting for shadows and attenuation in it's LUT lookup.
* Fixed an issue in the Static Directional Specular mode where we weren't applying the direct contribution.
* Fixed the Directional Specular lightmap mode to apply AO to its diffuse contribution to look more consistent with the other lightmap modes.
* Fixed the POM distortion that occurred on large triangles at grazing angles.
* Fixed the random popping issues in the POM effect that occurred when the camera moved away from the object.
* Fixed the default value for the Transmission shaders' Bump Distortion to make the effect more apparent.
* Fixed the divide by zero compiler warnings for some of the shaders.
* Fixed a GLSL compilation issue.

### Scripts
* Changed the channel packer tool to make it data-driven and support user-defined packer modes.
* Fixed the issue where freshly imported packed maps would be broken and need to be manually reimported. 

### Mods
* Changed the Weathered Blend shader to apply parallax to the base masks and normals.

## 3.2.1
### Scripts
* Fixed incorrect gamma correction in Map packer to account for changes in Unity 5.1.

## 3.2.0
### Shaders
* Added the "TriPlanar/Full" and "TriPlanar/Lite" shaders.
* Added TriPlanar variants of "Terrain/4Splat" and "Vertex Blend/4Splat".
* Adjusted the normal projection for "Oriented/Blend" and "Oriented/Core".
* Merged "Directional/Blend World" and "Directional/Blend Object" into "Directional Blend".
* Migrated all the emission effects to using the new Unity HDR color picker.
* Modified the "Transmission DoubleSided" shader to add the parameters Shadow Weight & Invert Back Normals.
* Fixed the backface lighting for the "Transmission DoubleSided" shaders.
* Removed the legacy features flags.
* Renamed "Hair/Translucent" -> "Hair/HighQuality" and "Hair/Base" -> "Hair/LowQuality" for clarity.
* Renamed "Vertex Blend 4Splat" -> "Vertex Blend/4Splat" for grouping flexibility.

### Scripts
* Removed the legacy Intensity Gain color control from our inspector definition system.
* Removed the AlloyUtils.IntensityGain() utility function.

### Mods
* Added the deferred-compatible Eyeball shader prototype.

## 3.1.2
### Shaders
* Changed all instances of "_AlphaTestRef" property to "_Cutoff" to ensure compatibility with Unity 3.1's depth-normal pass replacement shader.
* Fixed Oriented Blend and Core shaders to swap X & Z normal mapping and to properly convert Y on the underside of the object.
* Fixed distant terrain shader to use Unity's renamed metallic texture property and roughness.

## 3.1.1
### Shaders
* Added a new "Combined" tessellation mode that combines Phong and Displacement.
* Fixed the GI code that caused weird noisy glitching artifacts on some MacOSX platforms.
* Fixed the Parallax code that was causing it to fail to compile on the PS4.
* Fixed the Detail feature code that caused it to fail to compile on some MacOSX platforms.
* Fixed the Substance Designer preview shaders' code that caused them to fail to compile on AMD GPUs.

## 3.1.0
### Shaders
* Added "Directional Blend" shaders with support for blending around an arbitrary direction on the surface.
* Added "Vertex Blend 4Splat" shaders with support for blending 4 splats using vertex colors.
* Added a secondary vertex color tint slider to the "Oriented*", "Transition", & "Weighted Blend" shaders.
* Added a Pupil Dilation control to the "Eye/Eyeball".
* Added directional control to the "Oriented Blend" shaders.
* Changed all shaders to now have the Global Illumination control at the top so all types of emission can affect GI.
   + You will need to manually set all your static objects to "None", as this control always defaults to "Realtime".
* Changed the "CarPaint" shader.
   + Added a primary tint color that is applied in the masked areas.
   + "Main Textures" tint color now affects both primary and secondary paint colors.
   + Toggle legacy behavior in the config header.
* Changed the "Eye/Eyeball" shader.
   + Split up the "Eye Properties" into two smaller sections.
   + Added a Schlera tint color.
   + "Main Textures" tint color now affects both Schlera and Iris colors.
   + Toggle legacy behavior in the config header.
* Changed our Parallax code to reduce the overall cost per active feature and simplify the API.
* Changed "Weighted Blend" & "Oriented Blend" to allow emission to be blended over.
* Changed "Weighted Blend" to remove Secondary Rim, as there should only be one rim term for the combined material.
* Changed "Transition" so that the Dissolve feature now accounts for each layer's parallax texture offsets.
* Changed API
   + Rebuilt our lighting code to give each lighting type its own shareable module, removing the code from the shaders.
   + Simplified our texture coordinate macro system so that each texture doesn't need to know about parallax.
   + Added a masking system to allow features to be externally masked for different blending behavior.
* Fixed the "Particle*" shaders so that input vertex colors now receive gamma-correction.
* Fixed the "Tessellation/Oriented*" shaders which erroniously were set to target SM3.0, and had parallax properties.
* Fixed it so that Fade rendering mode no longer increase opacity when the surface metalness increases.
* Fixed the code we use to transform normals for our Oriented shaders.
* Fixed a compiler bug on the "Eye/Eyeball" shader when using the Dissolve feature in SM3 mode.
* Fixed a Null Ref error when using substances and switching shaders.
* Fixed the rendering modes dropdown to now work with undo.
* Fixed a potential compilation bug in the Glass shader when used on consoles.

### Scripts
* Fixed the Material Map Channel Packer so that its controls now support undo.

### Mods
* Weathered Blend (an experiment in attenuating a type of 2mat blend with further mesh data).
* WetMask Set (used in the Remnants demo for combining Weighted blend with scrollable wet sections).

### Known Issues
* The visualize feature currently doesn't work properly for textures that use world-space UVs.

## 3.0.2
### Shaders
* Changed to an optimized BRDF visibility function.
   + Toggle legacy behavior in the config header.
* Changed our higher quality Environment BRDF to use a formulation that maps correctly to linear roughness.
* Changed the Environment BRDF to use our new formulation by default.
   + Required some small changes to the lighting API.
   + Toggle legacy behavior in the config header.
* Fixed a bug in the Weighted Blend shaders where the vertex tint control was not doing anything.

### Features
* Changed the TeamColor module to use our new formulation by default.
   + Toggle legacy behavior in the config header.

### Scripts
* Fixed a possible bug in the Material Map Channel Packer where it would error if any of the input textures didn't have mipmaps enabled.

### Integration
* Substance Designer
   + Changed visibility function to match Unity shaders.
   + Removed the Specular AA feature as it was never really working properly due to the lack of mipmap generation.

## 3.0.1
### Shaders  
* Added support for tinting the base color with vertex colors.
* Added a Mode dropdown to the Team Color feature to support explicitly turning off the alpha mask.
* Modified the Weighted Blend shader to control the influence of the vertex alpha on the weight.
* Modified the vertex lighting fallback to use Alloy's attenuation function.
* Modified the config header options.
* Fixed a compilation issue with the terrain shaders.
* Fixed a bug in the AlloyVertex() callback where it wouldn't properly handle vertex position modification.

### Scripts
* Fixed a potential bug on the AreaLight component where it wouldn't let you change the light intensity or color if the light was disabled. 

### Features
* Modified the Decal feature:
   + Added a Weight property to allow smoothly turning decals on and off from scripts without modifying the tint color.
   + Added a property for controlling how much the vertex color alpha weights the Decals.

### Integration
* Substance Painter
   + Updated the preview shader to support SP1.3.
   + Added Alpha translucency and cutout variants of the preview shader.

## 3.0.0 beta8
### Shaders  
* Added a cutoff control the Hair Translucent shaders to allow control over the opaque regions for better sorting.
* Modified all the Tessellation shaders to use their regular variants as fallbacks. 
* Fixed a problem with the Detail feature where it wouldn't compile on MacOSX. 

### Scripts
* Added a new tool for migrating existing punctual lights to Alloy area lights.
* Fixed our Area Light code to now convert existing light data to our representation when the Area Light component is added.
* Fixed our Terrain Packed Maps to correctly grab color info, rather than just a single channel.
  
## 3.0.0 beta7
### Shaders 
* Added a new config option for higher quality IBL fresnel.
   + Currently disabled by default as we decide if we want to make it the new default. 
* Changed the Tessellation shaders so that the Displacement property goes up to a max of 30.
* Moved the Max intensity constant to the Config header to allow easier customization. 
* Fixed a bug in our Amplify Texture support code where we were using the wrong function when sampling normals.

## 3.0.0 beta6
### Shaders 
* Changed the Particle shaders:
   + Added a rim fade feature to support light shaft effects.
   + Added a near fade feature to support fading particles that get close to the camera.
   + Centralized their code in a shared header for easier maintenance. 
* Switched to using Unity RC3's new [Gamma] attribute for some input properties to save calculations inside the shaders.

## 3.0.0 beta5
### Shaders 
* Changed the config header to add an option for enabling a minimum tessellation edge length property. 
  This can be globally set by a script to control the tessellation quality of all models.
* Changed surface shader API.
   + Changed most of the shader pass code to centralize their shared code.
* Changed the Oriented Blend shader:
   + If the Oriented material has an alpha channel, it alpha blends on top of the base material.
   + If the base material has an alpha, it will alpha through or cutout the oriented material.  

## 3.0.0 beta4
### Shaders 
* Changed surface shader API.
   + Added support for modifying vertices.
   + Added support for final color modification.
   + Added an explicit folder with default headers for various surface shader callbacks. 
* Fixed the Distort pass to now support Fog.

### Scripts
* Material Inspector
   + Fixed an issue with the visualize function where the underlying mesh would poke through on edges.

## 3.0.0 beta3
### Shaders 
* Changed the Terrain shaders.
   + Restored the additional per-splat parameters and base layer.
   + Restored deferred support. 
   + Removed 5-n splat support. 
* Fixed several Unity config problems
   + Shaders were Orthonormalizing when they shouldn't have been.
   + Shaders were using Box projection and probe blending when they shouldn't have been. 

### Scripts
* Material Inspector
   + Added a new control for Unity's LightmapEmissionProperty.

## 3.0.0 beta2
### Shaders 
* Added "Oriented/Core" shaders
   + World-textured material.
* Changed the Oriented Blend Shader
   + Changed the name to "Oriented/Blend".
   + Now uses its own property names, so allow easy copying between it and "Oriented/Core".
   + Now blends based on the per-pixel world normal, rather than the geometry world normals.
* Changed Skin shaders 
   + Added an explicit skin mask and removed implicit control through the translucency map.
   + Changed Transmission to now convert the Translucency map input to linear space.
   + Removed Metallic control and mask.
* Changed Weighted Blend/Transition shaders.
   + Secondary maps now support Scroll and UV Set selection.
* Changed all shaders.
   + Base and Detail maps now support Scroll and UV Set selection.
* Fixed the Eyeball shader to default Iris Depth to 0.08 rather than 1.
* Fixed the Terrain
   + Had to remove a bunch of features since Unity took away the ability to use them.
   + It now can use the per-splat and distant metallic feature. 

### Scripts
* Material Inspector
   + Added support for rendering a Vector2-4 control for Vector properties. 
   + Fixed a bug where it would render a color control for Vector properties.

## 3.0.0 beta1
Lighting:
* Added support for both Point and Spot Spherical Area lights!
* Modified Point and Spot lights to use Inverse Square physical attenuation.
* Modified our lighting model.
   + Diffuse now exhibits interreflection for rough materials.
   + Specular lighting now uses the GGX BRDF.
* IBL
   + Added support for Unity 5's new reflection probes, dynamic GI, directional lightmaps, etc.
   + Removed RSRM support. 

### Shaders 
* Added Car Paint shader.
* Added Prototyping shader.
* Added Hair shader.
* Added Eye shader.
* Added Eye Occlusion shader.
* Added Glass shader. 
   + Replaces Transparent Distort 
* Added Unlit shader. 
   + Replaces the old Glow shaders.
* Added Weighted Blend shaders.
* Added Oriented Blend shaders.
* Added Terrain shaders.
* Added Transmission shaders.
* Added Particle shaders.
* Added Tessellation variants of all shaders.
* Changed Skin shaders 
   + Added attenuation to the transmission effect.
   + Transmission is now in Base alpha.
   + Specularity is now in the Material Map blue channel. 
   + Transmission "weight" parameter is now converted to linear internally.

### Features
* Added Ubershaders!
   + Users can now add/remove features within a shader rather than by switching shaders.
   + Uses the new shader_feature system to compile on demand and cut down on excess keyword usage.
* Added Vertex-weighted Decal feature.
   + Can control where alpha decals appear on the mesh per-vertex.
   + Dropped detail material and normal and now rely on this variant being combined with the Detail feature.
* Added Masked Detail feature.
   + Can use a per-pixel mask to control area of influence.
* Added UV mode to AO2, Detail, Dissolve, and Effect texture controls.
* Added AO2 support to the Car Paint, Glass, and Transmission shaders.
* Merged Masked Incandescence system with Unity's new Emission feature.
   + Allows it to feed into the lightmap and dynamic GI systems.
* Changed Dissolve, Emission, and Rim effects to use Gain, rather than intensity.
   + [0,1] range with a perceptually linear gain in intensity.
   + Added a weight parameter to dissolve glow to compensate for added intensity.
* Changed primary textures to now use native Unity transforms.
   + You can now tile the other texture groups independently of the "Main Textures" group.
   + Rim and Emission color textures now have an Offset parameter.
* Changed the TeamColor feature so that the RGB masks are applied on top of the alpha mask.
   + Can now use RGB textures to save memory.
   + Testing is simpler, since you no longer need to make a texture with a zero alpha.
* Fixed the issue where tiled secondary textures (Detail, Decal, etc) would "swim" when using parallax.

### Scripts
* Light Inspector
   + All lights can now support intensities higher than 8.

* Area Light Inspector
   + Extends existing Point and Spot light gameobjects to add Size information.
  
* Material Inspector
   + Added a new in-shader DSL UI definition system.
   + Added a new ubershader UI.
      - User enables features by adding/removing properties sections.
      - Uses Unity 5's render mode selector rather than separate Opaque, Transparent, etc shaders.
   + Changed the Visualize feature
      - Added support for visualizing on Skinned Meshes.
      - Added support for submesh visualization.
      - Added UV mode support, including on parent textures.
      - Changed button to now appears outside collapsed transforms section on textures.
      - Fixed a bug where visualizing individual channels displayed with the wrong intensities.
      - Fixed the bug where visualize button appeared on materials selected inside the project window.
   + Changed the Texture controls
      - Renamed "Velocity" to "Scroll".
      - Added a "Spin" value for spinning textures on particles.
      - Added UV mode to control whether a texture uses UV0 or UV1.
   + Fixed the bug where materials would throw exceptions if they had more than one property with the same name but different types.
   + Fixed the issue with Texture controls where you couldn't pick a different texture in the same open window after picking one.
  
* Material Map Packer
   + Added a new "Terrain" packed mode for supporting maps with color and roughness.
   + Modified the save path to reduce its width for extremely deep folder paths. 
   + Fixed an issue where the float value controls were previewing a color that was too dark.
  
* RSRM Generator
   + Removed since we discontinued support for them.
  
### Integration
* Skyshop
   + Removed support.

* Substance Designer
   + Added support for Alloy's new BRDF.
   + Added support for SD4.6.
      - Support for the new "specularlevel" input, with legacy support for our own "specularity" input.
      - Emission support.
      - Opacity support, but it blends incorrectly since it is in gamma-space.
      - Tessellation support.
   + Fixed some issues that caused the Specular highlights to be too dark.  
   + Fixed an issue where the the ambient occlusion's ambient intensity was being changed. 
   + Removed support for D3D-style normal toggle, since Unity doesn't support that.
  
* Substance Painter
   + Added a new Alloy preview shader. 

Demo Assets:
* Updated all the materials to use Alloy 3.0 shaders.

Known issues:
* Visualize feature does not work correctly when used with parallax or tessellation. 

## 2.1.2
### Tools
* Material Inspector
   + Changed the Visualize feature
      - Added support for visualizing on Skinned Meshes.
      - Added support for submesh visualization.
      - Fixed a bug where visualizing individual channels displayed with the wrong intensities.
      - Fixed the bug where visualize button appeared on materials selected inside the project window.

* Material Map Packer
   + Fixed an issue where the float value controls were previewing a color that was too dark.

### Integration
* Skyshop
   + Updated Alloy to use Skyshop 1.11.

## 2.1.1
### Shaders
* Fixed the translucent & skin shaders to render correctly in deferred mode on MacOSX.
* Fixes issues when using skin shaders with Candela in deferred mode. 

### Integration
* Substance Designer
   + Updated Alloy preview shader to use the new SH diffuse lighting feature.
   + Added a new shader to render using packed material map rather than individual channels.

## 2.1.0
### Shaders
* Added support for Parallax & Parallax Occlusion Mapping modes in "\Core" and "\Transparent\Cutout" shaders.
* Added a TeamColor detail mode to the standard shaders.
* Added archviz-friendly UV1AO2 shader variants.
* Dissolve 
   + Added variants to all the standard shaders so it is easier to apply the effect to common materials.
   + Changed the Cutoff parameter to use [0,1], rather than [0,1.01].
* Skin 
   + Moved to "Skin" folder.
   + Generalized to support other shader features (Decal, Detail, Rim, etc)
   + Added custom material editor support.
* Modified “Self-Illumin/Glow” and “Self-Illumin/Glow Cutout” to use the custom editor.
* Added support for Skyshop 1.07 and up.
   + Box projection is now accessed through skyshop's sky manager UI.
   + Added support for sky blending.
   + _PLEASE NOTE:_ Alloy will no longer work with older versions of Skyshop due to changes in how they do their calculations.
* Changed the custom editor parameter names and order to improve readability.
* Fixed an issue where the misnamed Decal material map parameter prevented it from showing up in our custom editor.
* Fixed an issue where we weren’t gamma-correcting the transition glow intensity in the Transition shaders.
* Restored support for low-quality vertex lighting mode.

### PackedTextures (ie. "_AlloyPM" and "_AlloyDM")
* Added support for setting the Wrap Mode on packed textures.
   + Still defaults to "Repeat".
* Added support for setting packed textures to "Automatic TrueColor" format.
   + Best to keep it on "Automatic Compressed" unless compression artifacts are harming visuals.
* Added support for setting max size on packed textures.
   + Capped to not exceed texture's dimensions.
* Fixed issue where user could accidentally set the packed textures to an invalid format.

_NOTE:_ It is also possible to set the Aniso level, in case you didn't know.

### Substance Designer
* SD4.1 shader fix so it no longer manually gamma-corrects the environment map. 

### Bug Fixes
* Fixed an issue where our custom material inspector's tab and texture name text was hard to read in Light Skin mode.
* Minor cleanup in our RSRM Generator and Material Map Packer to make them more readable using Light Skin.

### DEPRECATED
* The following shaders and paths are to be removed after this release:
   + "Assets/Alloy/FX/Transparent/Cutout/*"
   + "Assets/Alloy/Core/Skin Bumped"

## 2.0.4
* EMERGENCY hotfix because I'm an idiot.

## 2.0.3
* Added beta Skin shader in Core set (Skin Bumped).

## 2.0.2
* Fixed inspector bug preventing custom cubes to be input.

## 2.0.0
### Shading Improvements
* Increased Specular Power Range
* Better Visibility Function * Treyarch Shlick Approximation
* Specular Occlusion (Tri-ace style)
* Specular Anti-Aliasing via Roughness Correction

### Updated Shader Features
* Smoothness changed to Roughness (to line up with SD4, and other industry conventions)
* Added Specularity Parameter for varying specular intensity on dielectrics
* New RGBA Packed Data Map (R = Metallic, G = AO, B = Spec, A = Roughness)
* Dropdown for Ambient Lighting options, rather than multiple shader variants.
* Added Exposure Boost for traditional cube reflections 
* RSRMs now affect ambient diffuse
* More controls and texture features for Masked Incandescence and Rim Lighting

### New Workflow Tools
* Custom Material Inspectors
* Alloy Packed Map Generator
* Alloy RSRM Generator Editor
* Substance Designer 4 Preview Shader with sample graphs 

### New Shader Variants
* Decal Texture Versions in Each Variant Set
* Distortive Translucent Variant Set
* Alpha Cutout Variant Set
* VFX Dissolve and Transition Shaders

### Full Skyshop Compatibility
* Global Sky Settings, Diffuse SH, FIltered Spec Cube
* Custom Overridden FIltered Spec Cube
* HDR Filtered Cube-capture using Alloy Materials
* Box Projection Support

### Known Issues
* Some faceting can occur on super smooth surfaces in deferred mode due to normal buffer precision (only Unity can fix)
* Translucent shaders only receive 1 dynamic light in deferred mode due to a Unity 4.3 glitch (we have an open bug report)
* Deferred mode is totally busted on OSX. We have no idea wtf is happening, but we're trying to figure out what it is.
* We don't have a terrain shader currently. Don't worry, we're working hard on it, but didn't want to delay this update further.


## 1.0.1
* Standardized the API naming conventions to avoid name collisions when mixing shader libraries. This will break current user-created shaders, which will need to be updated to use the new API.
   + RimLight() -> aRimLight()
   + EPSILON -> A_EPSILON
   + DeGamma() -> AlloyDeGamma()
   + LinearLuminance() -> AlloyLinearLuminance()
   + etc.
* Added a new material API to move implementation details of our material system out of the individual shaders. 
   + Direct access to the SurfaceOutput will no longer work correctly.
   + For custom shaders, we strongly recommend using the new API.
* The headers are no longer obfuscated, and come fully commented.
* Renamed “Alloy/Transparent/MaskedIncandescence Rim” to “Alloy/Effects/MaskedIncandescence Rim” since it doesn’t integrate with Unity’s translucency system for baking.
* Fixed an issue in “Alloy/Effects/MaskedIncandescence Rim” where it wasn’t getting texture coordinates from the mask texture
* Reoredered the parameters for all the “*MaskedIncandescence*” shaders so that the Mask is higher up to show that it uses the first UV set while the Incandescence texture uses the second UV set.
* Removed an unnecessary energy conserving step from the distort pass of the alpha distort shaders.
* Fixed an issue where alpha was darkening albedo in cutout shaders.
* Fixed an issue in the terrain shaders where the blend weights were being applied twice to the smoothness, causing them to be biased toward rough values where multiple splats overlapped.
