Files
Outline-Toolkit/CHANGELOG.md
2025-07-20 21:01:09 +08:00

206 lines
7.6 KiB
Markdown

# UnityFx.Outline changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/); this project adheres to [Semantic Versioning](http://semver.org/).
## [0.8.5] - 2021.11.18
Bugfixes and improvements.
### Added
- Added support for HDR color pickers ([#42](https://github.com/Arvtesh/UnityFx.Outline/issues/42)).
### Fixed
- Added loop unroll statement to make shaders compatible with some platforms (WebGL 1.0) ([#45](https://github.com/Arvtesh/UnityFx.Outline/issues/45)).
## [0.8.4] - 2021.08.17
Misc improvements.
### Added
- Enabled ourlines for renderers with no materials attached ([#33](https://github.com/Arvtesh/UnityFx.Outline/issues/33)).
## [0.8.3] - 2021.01.25
Misc improvements and bugfixes.
### Fixed
- Fixed `OutlineBehaviour` not working in edit mode after disabling and enabling it again.
### Changed
- `OutlineEffect` now works in edit-mode.
- `OutlineEffect` now exposes `OutlineLayerCollection` instead of `IList`.
- `OutlineEffect` now uses `OnPreRender` to update its command buffer.
- Moved `MergeLayerObjects` flag to `OutlineLayer` from `OutlineLayerCollection`.
- Multiple `OutlineEffect` component instances can now be added to a camera.
## [0.8.2] - 2020.11.10
Misc improvements.
### Added
- Added support for Single Pass Instanced XR rendering for built-in render pipeline ([#13](https://github.com/Arvtesh/UnityFx.Outline/issues/13)).
### Changed
- Misc inspector improvements.
## [0.8.1] - 2020.09.21
Alpha test support, bugfixes and misc improvements.
### Added
- Added support for alpha-testing ([#10](https://github.com/Arvtesh/UnityFx.Outline/issues/10)).
- Added support for merging outline layer objects ([#12](https://github.com/Arvtesh/UnityFx.Outline/issues/12)).
- Added `RemoveGameObject` helper methof to `OutlineEffect` ([#15](https://github.com/Arvtesh/UnityFx.Outline/issues/15)).
- Added ability to customize render event in `OutlineBehaviour`.
- Added ability to render outlines to the specified camera only for `OutlineBehaviour`.
- Added warning for unsupported render pipelines for `OutlineBehaviour` and `OutlineEffect`.
### Changed
- Misc inspector improvements.
- Changed default render event to `AfterSkybox`.
### Fixed
- Fixed incorrect condition for selection of render method, which sometimes caused problems with outline rendering on mobiles ([#14](https://github.com/Arvtesh/UnityFx.Outline/issues/14)).
## [0.8.0] - 2020.05.30
Major refactoring and bugfixes.
### Added
- Use procedural geometry ([DrawProcedural](https://docs.unity3d.com/ScriptReference/Rendering.CommandBuffer.DrawProcedural.html)) on SM3.5+.
- Added support for both forward and deferred renderers.
- Added ignore layer mask settings to `OutlineLayerCollection` (previously the ignore layers were specified when adding game objects to layers).
- Added `OutlineBuilder` helper script for managinf `OutlineLayerCollection` content from editor ([#8](https://github.com/Arvtesh/UnityFx.Outline/issues/8)).
### Changed
- Changed `OutlineSettings` to display enum mask instead of checkboxes.
- Changed inspector look and feel for `OutlineLayerCollection` assets.
- Merged shaders for the 2 outline passes into one multi-pass shader.
- `OutlineLayerCollection` doe not depend on `OutlineRenderer` now.
### Fixed
- Fixed outline rendering on mobiles ([#7](https://github.com/Arvtesh/UnityFx.Outline/issues/7)).
- Fixed outline shader error on low-end devices.
### Removed
- Dropped .NET 3.5 support, minimal Unity version is set to 2018.4.
- Removed `IOutlineSettingsEx` interface.
## [0.7.2] - 2020.04.08
Depth testing support and performance optimizations.
### Added
- Added support for depth testing when rendering outlines. When enabled, outlines are only rendered around the visible object parts ([#1](https://github.com/Arvtesh/UnityFx.Outline/issues/1)).
- Added a few convenience methods to `OutlineEffect`.
- Added editor tooltips for outline component fileds.
### Fixed
- Get rid of GC allocatinos during command buffer updates.
- Fixed `IndexOutOfRangeException` when setting outline width to max value ([#4](https://github.com/Arvtesh/UnityFx.Outline/issues/4)).
### Removed
- Removed change tracking support in package entities ([#2](https://github.com/Arvtesh/UnityFx.Outline/issues/2)).
## [0.7.1] - 2020.01.28
Bugfixes and project layout changes.
### Fixed
- Fixed `OutlineBehaviour` to allow changing its state while its `GameObject` is inactive.
## [0.7.0] - 2019.11.26
`MaterialPropertyBlock`-based rendering and [Unity Post-processing Stack v2](https://github.com/Unity-Technologies/PostProcessing/tree/v2) compatibility.
### Added
- Moved to for `MaterialPropertyBlock`-based rendering. This is in-line with Unity post-processing Stack and is more performant approach.
- Significant optimizations made to `OutlineRenderer`.
### Changed
- `IOutlineSettings` now implements `IEquatable`.
- Changed all outline shaders to use HLSL-based macros.
- Modified all shaders to ignore MVP vertex transform to be compatible with the new rendering model.
- Exposed rendering APIs for `OutlineLayer` and `OutlineLayerCollection`.
### Fixed
- Fixed `TiledGPUPerformanceWarning` on mobile targets.
### Removed
- Removed `OutlineMaterialSet` class. It is not used in `MaterialPropertyBlock`-based effect rendering.
## [0.6.0] - 2019.09.26
Quality of life improvements.
### Added
- Added `OutlineLayer.Enabled`.
- Added `OutlineLayer.Name`.
- Added possibility to change render order of layers via `OutlineLayer.Priority`.
- Added possibility to edit renderers of an `OutlineLayer`.
- Added possibility to alter `CameraEvent` used to render `OutlineEffect`.
- Added more info to the `OutlineLayer` preview inspector.
### Changed
- `IOutilneSettings` setters now throw if overriden.
### Fixed
- Fixed `OutlineLayer.Add` not filtering renderers by the mask passed.
## [0.5.0] - 2019.09.09
Editor UI improvements and unit tests.
### Added
- Added `OutlineSettings`, that can be shared between dfferent `OutlineLayer` and `OutlineBehaviour` instances.
- Added custom inspectors for `OutlineSettings`, `OutlineLayerCollection`.
- Added undo/redo support to all custom inspectors.
- Added unit-tests.
### Changed
- Improved inspectors for `OutlineBehaviour` and `OutlineEffect`.
## [0.4.0] - 2019.08.31
Blurred outlines.
### Added
- Added Gauss blurring to outlines.
- Added outline mode parameter (possible values are `Solid` and `Blurred`).
- Added outline intensity parameter (for blurred outlines only).
- Added `IOutlineSettings` interface to make outline settings the same for `OutlineBehaviour` and `OutlineLayer`.
- Added `OutlineMaterialSet` helper.
### Changed
- Changed solid outline to use Gauss sampling (to achieve smoother outlines).
- Changed outline implementation to use different passed for horizontal and vertical sampling (to make algorithm complexity linear instead of quadric).
### Fixed
- Fixed an issue with `OutlineBehaviour` not rendering outlines if attached to a `GameObject` with no renderers.
### Removed
- Removed `OutlineResourceCache` class.
## [0.3.0] - 2019.08.27
### Added
- Added support for sharing outline layers between `OutlineEffect` instances.
- Added custom editors for `OutlineEffect` and `OutlineBehaviour`.
- Added possibility to setup outline layers as `ScriptableObject` asset.
### Fixed
- Fixed profiler error 'BeginSample and EndSample count must match'.
## [0.2.0] - 2019.08.19
### Added
- Added `OutlineBehaviour` for rendering per-object outlines.
- Added `OutlineResources` to help initialize outline effects in runtime.
- Added `OutlineRenderer` as low-level helper for outline rendering.
## [0.1.0] - 2019.08.18
### Added
- Initial release.