User Tools

Site Tools


pidi_2d_reflections_2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pidi_2d_reflections_2 [2020/08/25 01:40]
irrsoft [PIDI 2D Reflections 2]
pidi_2d_reflections_2 [2021/01/17 03:49] (current)
irrsoft [Universal RP Add on Limitations]
Line 1: Line 1:
 ====== PIDI 2D Reflections 2 ====== ====== PIDI 2D Reflections 2 ======
 <WRAP justify> <WRAP justify>
-PIDI 2D Reflections 2 is the most efficient and complete solution to add real-time reflections to your 2D games in Unity+ PIDI 2D Reflections 2 is the most efficient and complete solution to add real-time reflections to your 2D games in Unity
 </WRAP> </WRAP>
 <WRAP justify> <WRAP justify>
-A full redesign of the original release, packed with impressive new features, amazing performance and an easy workflow as well as support for many high end effects such as masking, fading, Post Process Stack v2, LWRP and more, PIDI 2D Reflections 2 is the only tool you need for all your 2D reflection needs. +A full redesign of the original release, packed with impressive new features, amazing performance and an easy workflow as well as support for many high end effects such as masking, fading, Post Process Stack v2, Universal RP and more, PIDI 2D Reflections 2 is the only tool you need for all your 2D reflection needs. 
 </WRAP> </WRAP>
 \\ \\
 ===== PIDI 2D Reflections 2, Standard vs Lite ===== ===== PIDI 2D Reflections 2, Standard vs Lite =====
-###+<WRAP justify>
 PIDI 2D Reflections 2 is available in two different editions which may adapt to all kinds of teams and budgets. A Lite edition with only the essential features is offered at a much lower price while the fully featured Standard edition is targeted to projects and developers that may need more advanced features out of the 2D reflections system. PIDI 2D Reflections 2 is available in two different editions which may adapt to all kinds of teams and budgets. A Lite edition with only the essential features is offered at a much lower price while the fully featured Standard edition is targeted to projects and developers that may need more advanced features out of the 2D reflections system.
-### +</WRAP> 
-### +<WRAP justify> 
-Below you can see a comparison table showing the full feature set of each edition. The Lite edition has an additional module that adds LWRP support in Unity 2019.1+ (this module is included in the Standard edition). To learn more about the specific limits and differences between the standard Unity rendering pipeline (also known as Built-in) and the new LWRP pipeline, please go to the corresponding section of the documentation. +Below you can see a comparison table showing the full feature set of each edition. The Lite edition has an additional module that adds Universal RP support in Unity 2019.4+ (this module is included in the Standard edition). To learn more about the specific limits and differences between the standard Unity rendering pipeline (also known as Built-in) and the new Universal RP pipeline, please go to the corresponding section of the documentation. 
-###+</WRAP>
  
 {{tablelayout?colwidth="360px,240px, 240px"&rowsHeaderSource=1&rowsVisible=20&float=center}} {{tablelayout?colwidth="360px,240px, 240px"&rowsHeaderSource=1&rowsVisible=20&float=center}}
Line 29: Line 29:
 | Reflections on any direction |  X  |  ✓  | | Reflections on any direction |  X  |  ✓  |
 | Mobile support |  ✓  |  ✓  | | Mobile support |  ✓  |  ✓  |
-LWRP Support (Unity 2019.1+) |  Sold separately  |  ✓  |+Universal RP Support (Unity 2019.4+) |  Sold separately  |  ✓  |
  
-###+<WRAP justify>
 Both versions grant you access to our support services (via email and the Unity forums) as well as to free updates for this tool during the whole 2.x cycle which covers versions 2.0 through 2.9 of PIDI 2D Reflections 2 Both versions grant you access to our support services (via email and the Unity forums) as well as to free updates for this tool during the whole 2.x cycle which covers versions 2.0 through 2.9 of PIDI 2D Reflections 2
-###+</WRAP>
  
 \\ \\
-===== LWRP Add on Limitations ===== +===== Universal RP Add on Limitations ===== 
-### +<WRAP justify> 
-The Lightweight SRP is a new rendering pipeline introduced in Unity 2018.1 and currently in development. It has been marked as stable in Unity 2019 but it still receives frequent updates, feature changes, bug fixes etc+The Universal RP is a new rendering pipeline that is currently supported by our asset in Unity 2019.4 LTS 
-###+</WRAP>
  
-### +<WRAP justify> 
-Because of its "in-development" nature, compatibility-breaking bugs and serious performance issues can be expected while using this tool alongside LWRP, which will be solved as the rendering pipeline itself becomes more stable and usable. +Due to regular changes in the pipeline, compatibility-breaking bugs and some performance issues can be expected while using this tool alongside any Universal RP version not verified for the latest LTS Unity release 
-###+</WRAP>
  
-### +<WRAP justify> 
-Besides this, the Lightweight pipeline lacks several core features present in the Standard (Built-in) pipeline which has make it impossible to fully port all features of PIDI 2D Reflections 2 to LWRP. Below you can find a small comparison detailing which features are available in LWRP and which ones are absent or just partially implemented. +Besides this, the Universal RP pipeline lacks several core features present in the Standard (Built-in) pipeline which has make it impossible to fully port all features of PIDI 2D Reflections 2 to Universal RP. Below you can find a small comparison detailing which features are available in Universal RP and which ones are absent or just partially implemented. 
-###+</WRAP>
  
 {{tablelayout?colwidth="400px,220px, 220px"&rowsHeaderSource=1&rowsVisible=20&float=center}} {{tablelayout?colwidth="400px,220px, 220px"&rowsHeaderSource=1&rowsVisible=20&float=center}}
-^ Feature  ^  Lightweight SRP (LWRP)   Standard (Built-in)  ^+^ Feature  ^  Universal RP   Standard (Built-in)  ^
 | Post Process Stack v2 support |  ✓  |  ✓  | | Post Process Stack v2 support |  ✓  |  ✓  |
 | Parallax backgrounds support |  X  |  ✓  |   | Parallax backgrounds support |  X  |  ✓  |  
-| Dynamic Reflection Resolution |    ✓  | +| Dynamic Reflection Resolution |  ✓   ✓  | 
-| Masked reflections |  ✓   ✓  |+| Masked reflections |  Limited   ✓  |
 | Faded reflections |  ✓  |  ✓  | | Faded reflections |  ✓  |  ✓  |
 | Ultra-optimized simple shader based reflection |  X  |  ✓  |  | Ultra-optimized simple shader based reflection |  X  |  ✓  | 
Line 60: Line 60:
 | Support for skewed reflections |  ✓  |  ✓  | | Support for skewed reflections |  ✓  |  ✓  |
 | Support for custom shaders |  ✓  |  ✓  | | Support for custom shaders |  ✓  |  ✓  |
-| 2D Water shader example |  Partial   ✓  |+| 2D Water shader example |  ✓   ✓  |
 | Reflections on any direction |  ✓  |  ✓  | | Reflections on any direction |  ✓  |  ✓  |
-| Mobile support |  Partial   ✓  |+| Mobile support |  ✓   ✓  |
  
-### 
-Notice : There are several differences and apparent issues when working with LWRP due to the unfinished nature of the pipeline. Many of the "hooks" or internal functions needed for this tool are subject to constant change or limited in comparison to their Standard pipeline equivalents. 
-### 
- 
-### 
-So far, these undesired behaviors include not being able to correctly preview reflections in the Scene View since the Scene View has not been fully integrated to LWRP yet and a slight delay in the way the reflections are rendered inside the Editor. This delay has also been observed when using very high quality settings in a build (high MSAA and VSync) in a few devices when using Unity 2019.1 but is not apparent in most configurations 
-### 
- 
-### 
-Unfortunately, these issues are outside of our control and will be fixed by Unity as the Lightweight Pipeline (soon becoming the Universal Pipeline) keeps moving through the development stage. We recommend that you use LWRP with caution to prevent any loss of work while it stays in active development by Unity. 
-### 
 \\ \\
 ---- ----
 ===== Quick Start Guide ===== ===== Quick Start Guide =====
 ---- ----
-###+<WRAP justify>
 While this guide and the documentation itself have been written with the full version of the asset in mind, most of the concepts and workflows described can be used directly on the Lite version as well. Features exclusive to the Standard version are marked as such. While this guide and the documentation itself have been written with the full version of the asset in mind, most of the concepts and workflows described can be used directly on the Lite version as well. Features exclusive to the Standard version are marked as such.
-###+</WRAP>
  
  
 ==== Installation and upgrade ==== ==== Installation and upgrade ====
-### +<WRAP justify> 
-While PIDI : 2D Reflections 2 has been designed to be integrated to any project at any stage of development with little to no setup required, there are still some considerations to be made for projects which are upgrading from the original release (version 1.0 - 1.9 ) or projects using the new Lightweight Rendering Pipeline (LWRP). Below you will find the steps to follow in order to install and setup PIDI : 2D Reflections 2 in any of these cases. +While PIDI : 2D Reflections 2 has been designed to be integrated to any project at any stage of development with little to no setup required, there are still some considerations to be made for projects which are upgrading from the original release (version 1.0 - 1.9 ) or projects using the Universal Rendering Pipeline. Below you will find the steps to follow in order to install and setup PIDI : 2D Reflections 2 in any of these cases. 
-###+</WRAP>
  
 ---- ----
Line 94: Line 83:
 === Standard Pipeline Projects === === Standard Pipeline Projects ===
  
-###+<WRAP justify>
 For projects working with the Standard Pipeline there is little to no setup required. If this is a first time installation you just need to head to the Asset Store and find this asset either under the section "My Assets" or by a normal search in the store itself. For projects working with the Standard Pipeline there is little to no setup required. If this is a first time installation you just need to head to the Asset Store and find this asset either under the section "My Assets" or by a normal search in the store itself.
-###+</WRAP>
 \\ \\
 {{ :fig0a_installation.png?direct&400 |}} {{ :fig0a_installation.png?direct&400 |}}
  \\  \\
-###+<WRAP justify>
 If you have bought the asset, a Download / Import / Update button will show, depending on if you have never downloaded the asset before, you have downloaded it and it is in cache already or there is a new version available for download, respectively. If you have bought the asset, a Download / Import / Update button will show, depending on if you have never downloaded the asset before, you have downloaded it and it is in cache already or there is a new version available for download, respectively.
-###+</WRAP>
 \\ \\
 {{ :fig0a_installation2.png?direct&600 |}} {{ :fig0a_installation2.png?direct&600 |}}
 \\ \\
-###+<WRAP justify>
 Once the import dialog appears, just import all the contents of the asset as usual. To verify that the asset was imported without any errors try to open one of the demo scenes. If they work without issues, the package has been imported correctly. If you see any graphical errors you must re-import the asset. If the issues persist even with a brand new and empty project, please contact us at our [[support@irreverent-software.com|support email]] Once the import dialog appears, just import all the contents of the asset as usual. To verify that the asset was imported without any errors try to open one of the demo scenes. If they work without issues, the package has been imported correctly. If you see any graphical errors you must re-import the asset. If the issues persist even with a brand new and empty project, please contact us at our [[support@irreverent-software.com|support email]]
-###+</WRAP>
 ---- ----
-=== LWRP Projects ===+=== Universal RP Projects ===
  
-### +<WRAP justify> 
-If you are using the Full version or have purchased the LWRP Add-on for the Lite version you must follow additional steps before using this asset in a LWRP compatible project. +If you are using the Full version or have purchased the Universal RP Add-on for the Lite version you must follow additional steps before using this asset in a Universal RP compatible project. 
-###+</WRAP>
  
-### +<WRAP justify> 
-In the last step described above, once you see the import dialog while adding this asset to your project,** DO NOT** import the Standard Pipeline folder to your project. Importing this folder would cause errors due to the shaders and materials included in it being incompatible with LWRP. +In the last step described above, once you see the import dialog while adding this asset to your project,** DO NOT** import the Standard Pipeline folder to your project. Importing this folder would cause errors due to the shaders and materials included in it being incompatible with Universal RP.</WRAP>
-###+
 \\ \\
-{{ :fig0a_installation3.png?direct&600 |}}+{{ :reflections2d_universalrpinstall.jpg |}}
 \\ \\
-### +<WRAP justify> 
-Instead, once the tool has been fully imported, unpack LWRP_57.unitypackage (which is located inside the LWRP Add on folder) into the project and import its contentsThis will add all the necessary shadersdemo scenes and additional files for you to start using PIDI 2D Reflections 2 in Unity 2019.1 with LWRP 5.7+ +Instead, once the tool has been fully imported, unpack the unitypackage file that most closely matches the Universal RP and Unity version you are usingFor the best resultsalways use the latest LTS Unity version available
-###+</WRAP>
  
-### +<WRAP justify> 
-While we do our best to keep up to date with LWRP releases there may be times when Unity updates their pipelines and adds or removes functionality from them (and in most cases breaking the compatibility of LWRP shaders) before we can issue the corresponding update. If your version of LWRP does not load the shaders appropriately or the demo scenes inside the LWRP Add on folder show pink materials please be patient, as we will issue the corresponding patch usually within 1-2 days of a new LWRP release or contact us to let us know the details of the error to our [[support@irreverent-software.com|support email]]. +While we do our best to keep up to date with Universal RP releases there may be times when Unity updates their pipelines and adds or removes functionality from them before we can issue the corresponding update. If your version of Universal RP does not load the shaders appropriately or the demo scenes inside the Universal RP Add on folder show pink materials please be patient, as we will issue the corresponding patch usually within 1-2 days of a new Universal RP release or contact us to let us know the details of the error to our [[support@irreverent-software.com|support email]]. 
-###+</WRAP>
 \\ \\
 ---- ----
Line 134: Line 122:
 === Upgrade from version 1.9x (Standard Only) === === Upgrade from version 1.9x (Standard Only) ===
  
-###+<WRAP justify>
 Upgrading from version 1.9 is a slightly more complex process. The internal code of the tool has been re-written from the ground up to allow for better performance, improved effects, greater accuracy and a wide array of new features. While this is great for new projects it represents a challenge when trying to upgrade as most of the features of version 1 do not translate directly to version 2.  Upgrading from version 1.9 is a slightly more complex process. The internal code of the tool has been re-written from the ground up to allow for better performance, improved effects, greater accuracy and a wide array of new features. While this is great for new projects it represents a challenge when trying to upgrade as most of the features of version 1 do not translate directly to version 2. 
-###+</WRAP>
  
-###+<WRAP justify>
 To help with this issue, a small tool is provided in its own Unity Package called "Auto-Upgrade PIDI2D.unitypackage". Inside of this package is a special utility that will go through all the objects in a scene that have a PIDI_2DReflection component from the first release and replace it with the new version while, at the same time, porting and adjusting all the corresponding variables and settings to match those of the new version.  To help with this issue, a small tool is provided in its own Unity Package called "Auto-Upgrade PIDI2D.unitypackage". Inside of this package is a special utility that will go through all the objects in a scene that have a PIDI_2DReflection component from the first release and replace it with the new version while, at the same time, porting and adjusting all the corresponding variables and settings to match those of the new version. 
-###+</WRAP>
 \\ \\
 {{ :fig0b_auto_upgrade.png?800 |}} {{ :fig0b_auto_upgrade.png?800 |}}
 \\ \\
-###+<WRAP justify>
 Unpack this package into your project by double clicking on it. Once all the contents of the unity package have been imported to your project, a new menu will appear under Assets/PIDI 2D Reflections 2/Update all Reflections. Unpack this package into your project by double clicking on it. Once all the contents of the unity package have been imported to your project, a new menu will appear under Assets/PIDI 2D Reflections 2/Update all Reflections.
-###+</WRAP>
 \\ \\
 {{ :fig0c_auto_upgrade.png?direct&400 |}} {{ :fig0c_auto_upgrade.png?direct&400 |}}
 \\ \\
-###+<WRAP justify>
 Selecting this option will automatically update all the reflection objects in your scene and replace their PIDI_2DReflection component (version 1.9x) to the new version 2 component. After the upgrade has finished, you just need to assign a material compatible with version 2 of this tool (since most version 1 materials are not compatible) and the reflections will start to work again. Selecting this option will automatically update all the reflection objects in your scene and replace their PIDI_2DReflection component (version 1.9x) to the new version 2 component. After the upgrade has finished, you just need to assign a material compatible with version 2 of this tool (since most version 1 materials are not compatible) and the reflections will start to work again.
-###+</WRAP>
  
-###+<WRAP justify>
 While some additional setup might be done for some objects, the utility should take care of most of it and update all the reflections of a scene in a matter of seconds. While some additional setup might be done for some objects, the utility should take care of most of it and update all the reflections of a scene in a matter of seconds.
-###+</WRAP>
  
-###+<WRAP justify>
 **Warning : Please remember to make a backup of your project before upgrading or installing any tool or asset. While we do our best to ensure that our software is free of errors and easy to use, we are not responsible for any loss of data, corrupted files or projects produced during the installation or use of this software.** **Warning : Please remember to make a backup of your project before upgrading or installing any tool or asset. While we do our best to ensure that our software is free of errors and easy to use, we are not responsible for any loss of data, corrupted files or projects produced during the installation or use of this software.**
-###+</WRAP>
  
-###+<WRAP justify>
 Once the asset has been successfully installed into your project, adding reflections to an existing scene is a simple process that can be done in just a few minutes. For more advanced uses and in-depth information about each feature please continue reading this documentation. Once the asset has been successfully installed into your project, adding reflections to an existing scene is a simple process that can be done in just a few minutes. For more advanced uses and in-depth information about each feature please continue reading this documentation.
-###+</WRAP>
  
 \\ \\
Line 171: Line 159:
  
 ==== Adding reflections to a sprite ==== ==== Adding reflections to a sprite ====
-###+<WRAP justify>
 PIDI 2D Reflections 2 is designed to work in a fully two dimensional space. This means that the reflections will work in a single direction at a time and the actual reflective surface has to be assigned to one of the edges of the sprite. PIDI 2D Reflections 2 is designed to work in a fully two dimensional space. This means that the reflections will work in a single direction at a time and the actual reflective surface has to be assigned to one of the edges of the sprite.
-###+</WRAP>
  
 {{ :fig1_spriteorigin_wiki.png?direct&600|}} {{ :fig1_spriteorigin_wiki.png?direct&600|}}
  
-###+<WRAP justify>
 To make this process as simple as possible, the tool by default reflects objects in a Y- (upwards) direction from the origin of the sprite. This means that, to get the best results, the origin of the object must be located on the upper edge of the object. To make this process as simple as possible, the tool by default reflects objects in a Y- (upwards) direction from the origin of the sprite. This means that, to get the best results, the origin of the object must be located on the upper edge of the object.
-###+</WRAP>
  
-###+<WRAP justify>
 Do not try to match the origin of the object to the actual "surface" from where you want to reflect. For example, if your sprite shows a small puddle of water in the middle of the object, do not try to set the origin on the puddle but instead set it to the edge of the object, even if the origin ends up floating above the actual puddle. Do not try to match the origin of the object to the actual "surface" from where you want to reflect. For example, if your sprite shows a small puddle of water in the middle of the object, do not try to set the origin on the puddle but instead set it to the edge of the object, even if the origin ends up floating above the actual puddle.
-###+</WRAP>
  
-###+<WRAP justify>
 To adjust the reflection's distance to the edge of the object you should use the SURFACE OFFSET variable inside of the reflections settings tab. To adjust the reflection's distance to the edge of the object you should use the SURFACE OFFSET variable inside of the reflections settings tab.
-###+</WRAP>
 \\ \\
-###+<WRAP justify>
 Once the sprite is ready, simply add the PIDI_2DReflections component to it and ensure that your Sprite Renderer is using a compatible material, preferably one of the ones included with the tool itself or any material with a _2DReflectionTex property. For better results, set the color of the sprite to a dark gray or black. Since reflections are blended in an additive way, if your sprite is set to a white color the resulting reflection may appear too bright or whited out Once the sprite is ready, simply add the PIDI_2DReflections component to it and ensure that your Sprite Renderer is using a compatible material, preferably one of the ones included with the tool itself or any material with a _2DReflectionTex property. For better results, set the color of the sprite to a dark gray or black. Since reflections are blended in an additive way, if your sprite is set to a white color the resulting reflection may appear too bright or whited out
-###+</WRAP>
 \\ \\
 {{ :fig1b_2dreflectionsadded_wiki.png?direct&600 |}} {{ :fig1b_2dreflectionsadded_wiki.png?direct&600 |}}
 \\ \\
-###+<WRAP justify>
 To avoid recursive reflections ( when a mirror reflects itself while reflecting another mirror ) any object with the PIDI_2DReflections component must be in a layer which will not be reflected. By default, PIDI_2DReflections ignores the "Water" layer so it is always recommended to place all your reflective sprites / objects in this layer. To avoid recursive reflections ( when a mirror reflects itself while reflecting another mirror ) any object with the PIDI_2DReflections component must be in a layer which will not be reflected. By default, PIDI_2DReflections ignores the "Water" layer so it is always recommended to place all your reflective sprites / objects in this layer.
-###+</WRAP>
 \\ \\
-###+<WRAP justify>
 {{  :fig_3b_basicreflectionsettings.png?direct&400|}} {{  :fig_3b_basicreflectionsettings.png?direct&400|}}
 \\ \\
 Inside the Reflection Settings Tab you can adjust the Reflection's Tint (its color), the surface offset as we explained before and, most importantly, the layers you want your surface to reflect. For now, since we are starting, select "Everything". Add any object to the scene and test your new reflective surface, which should now be working without any issues. Inside the Reflection Settings Tab you can adjust the Reflection's Tint (its color), the surface offset as we explained before and, most importantly, the layers you want your surface to reflect. For now, since we are starting, select "Everything". Add any object to the scene and test your new reflective surface, which should now be working without any issues.
-###+</WRAP>
  
-###+<WRAP justify>
 If your scene is not too complex or if you are targeting small screen devices such as mobile phones or consoles, you may want to test the Resolution Multiplier slider, which will allow you to downscale the final resolution of the rendered reflection. If your scene is not too complex or if you are targeting small screen devices such as mobile phones or consoles, you may want to test the Resolution Multiplier slider, which will allow you to downscale the final resolution of the rendered reflection.
-### +</WRAP> 
-###+<WRAP justify>
 Alternatively, a RenderTexture asset can be assigned to the Target Texture slot to ensure that the reflections have a specific resolution, properties and format that adapt better to your target devices. Alternatively, a RenderTexture asset can be assigned to the Target Texture slot to ensure that the reflections have a specific resolution, properties and format that adapt better to your target devices.
-### +</WRAP> 
- +<WRAP justify>
-###+
 For more information about what the rest of the settings do and how to use them you can read the rest of this online documentation, click on the corresponding button of the Help & Support tab or just hover your mouse over the corresponding settings, since all of them have fully detailed tooltips. For more information about what the rest of the settings do and how to use them you can read the rest of this online documentation, click on the corresponding button of the Help & Support tab or just hover your mouse over the corresponding settings, since all of them have fully detailed tooltips.
-###+</WRAP>
 \\ \\
 ---- ----
Line 220: Line 207:
 ==== Performance tips ==== ==== Performance tips ====
  
-###+<WRAP justify>
 PIDI 2D Reflections 2 has been designed to provide a careful balance between performance and flexibility. Just like any other real time reflections system it depends on re-drawing the scene for each reflection which, depending on the complexity of the game, may have a greater or lower performance impact.  PIDI 2D Reflections 2 has been designed to provide a careful balance between performance and flexibility. Just like any other real time reflections system it depends on re-drawing the scene for each reflection which, depending on the complexity of the game, may have a greater or lower performance impact. 
-###+</WRAP>
  
-###+<WRAP justify>
 Reflecting Post Process Effects, masking reflections or using Parallax backgrounds make the reflections even more expensive. There might be cases where it will be unavoidable to enable these effects and, in those cases sharing reflection textures can be a good option to keep an acceptable performance. Reflecting Post Process Effects, masking reflections or using Parallax backgrounds make the reflections even more expensive. There might be cases where it will be unavoidable to enable these effects and, in those cases sharing reflection textures can be a good option to keep an acceptable performance.
-###+</WRAP>
  
-###+<WRAP justify>
 It is highly recommended to share a single reflection mask on as many reflections as possible, since masks can be quite expensive to render. By assigning a static RenderTexture as the output for the mask rendering the performance impact can be reduced since this static texture can be assigned to multiple reflection instances while letting only one make the actual rendering. It is highly recommended to share a single reflection mask on as many reflections as possible, since masks can be quite expensive to render. By assigning a static RenderTexture as the output for the mask rendering the performance impact can be reduced since this static texture can be assigned to multiple reflection instances while letting only one make the actual rendering.
-###+</WRAP>
  
-###+<WRAP justify>
 Reflection textures can also be shared, but due to the way reflections work they can only be shared across objects located at the same Y or X coordinate (depending on the orientation) and when all the mirrors share the same orientation. Reflection textures can also be shared, but due to the way reflections work they can only be shared across objects located at the same Y or X coordinate (depending on the orientation) and when all the mirrors share the same orientation.
-###+</WRAP>
  
-###+<WRAP justify>
 If using Post Process effects, it is recommended to reduce the resolution of the reflections to improve performance, since most of these effects work on a per-pixel basis and their performance cost is entirely dependent on the resolution of the screen or reflection. Motion Blur is not compatible with the reflections and will most likely produce graphical errors. If using Post Process effects, it is recommended to reduce the resolution of the reflections to improve performance, since most of these effects work on a per-pixel basis and their performance cost is entirely dependent on the resolution of the screen or reflection. Motion Blur is not compatible with the reflections and will most likely produce graphical errors.
-###+</WRAP>
  
-### 
-LWRP is a rendering pipeline still in development by Unity and, as such, has several limitations when compared to the Standard Pipeline. The lack of a proper manual rendering function as well as additional data required for the cameras to work mean that the performance of reflections in LWRP is usually lower. Besides this, due to a lack of support for Camera stacking, LWRP is not compatible with Parallax Backgrounds. All other features are available, but might be slower. 
-### 
 \\ \\
  
Line 253: Line 237:
 ==== User Interface ==== ==== User Interface ====
 {{  :fig4_closedui.png?direct&600|}}  {{  :fig4_closedui.png?direct&600|}} 
-###+<WRAP justify>
 The user interface for PIDI 2D Reflections 2 has been designed to be as simple and efficient as possible. When you first add the PIDI_2DReflections component to a sprite you will notice that only a handful of tabs with some options inside are available. The user interface for PIDI 2D Reflections 2 has been designed to be as simple and efficient as possible. When you first add the PIDI_2DReflections component to a sprite you will notice that only a handful of tabs with some options inside are available.
-### +</WRAP> 
-###+<WRAP justify>
 In the General Settings tab you can find several toggles to enable and disable additional features on your reflection and, as you do, additional tabs will appear. Features that are not compatible with the settings you are using will automatically disappear, help boxes will pop up to give detailed explanations for everything. In the General Settings tab you can find several toggles to enable and disable additional features on your reflection and, as you do, additional tabs will appear. Features that are not compatible with the settings you are using will automatically disappear, help boxes will pop up to give detailed explanations for everything.
-###+</WRAP>
 \\ \\
-###+<WRAP justify>
 At the top of the UI for the tool you can always find, next to the name and logo, the current version you are using. After installing any update to this asset always verify a correct installation by checking that the version number displayed in the UI matches the installed update. At the top of the UI for the tool you can always find, next to the name and logo, the current version you are using. After installing any update to this asset always verify a correct installation by checking that the version number displayed in the UI matches the installed update.
-###+</WRAP>
 \\ \\
 ---- ----
  
 ==== Basic Reflection Settings ==== ==== Basic Reflection Settings ====
-###+<WRAP justify>
 In this section we will cover the basic features of PIDI 2D Reflections 2, how to use them and how the affect the resulting reflections. Several images, GIFS and other resources are included to provide a deep enough learning material. Reading this whole section is heavily recommended before using PIDI 2D Reflections 2. In this section we will cover the basic features of PIDI 2D Reflections 2, how to use them and how the affect the resulting reflections. Several images, GIFS and other resources are included to provide a deep enough learning material. Reading this whole section is heavily recommended before using PIDI 2D Reflections 2.
-###+</WRAP>
 \\ \\
 === Reflection Tint and Resolution === === Reflection Tint and Resolution ===
Line 275: Line 259:
 {{ :colors.gif?direct |}} {{ :colors.gif?direct |}}
 \\ \\
-###+<WRAP justify>
 The Reflection Tint controls the final color applied to the reflection. This color is multiplicative meaning that if your reflection has a mostly red color and you add a blue tint to it, the result will look mostly purple. The Reflection Tint controls the final color applied to the reflection. This color is multiplicative meaning that if your reflection has a mostly red color and you add a blue tint to it, the result will look mostly purple.
-###+</WRAP>
  
  
-###+<WRAP justify>
 Furthermore, the reflection itself is additive which means that the darker the tint you add, the fainter the reflection will look as it is displayed over the sprite's surface. Furthermore, the reflection itself is additive which means that the darker the tint you add, the fainter the reflection will look as it is displayed over the sprite's surface.
-###+</WRAP>
  
-###+<WRAP justify>
 The best results for reflections are achieved when a dark sprite color is mixed with a lighter reflection tint, as this produces a colored, clear and evident reflection over the surface of your sprite.  The best results for reflections are achieved when a dark sprite color is mixed with a lighter reflection tint, as this produces a colored, clear and evident reflection over the surface of your sprite. 
-###+</WRAP>
 \\ \\
-###+<WRAP justify>
 If you need different blending techniques for your sprites or for the reflection then you may need to create your own custom shaders that integrate this system. Please refer to the Additional Topics section at the end of this article to learn more about how to integrate PIDI 2D Reflections 2 to custom shaders. If you need different blending techniques for your sprites or for the reflection then you may need to create your own custom shaders that integrate this system. Please refer to the Additional Topics section at the end of this article to learn more about how to integrate PIDI 2D Reflections 2 to custom shaders.
-###+</WRAP>
  
 \\ \\
 {{ :resolution.gif?600 |}} {{ :resolution.gif?600 |}}
 \\ \\
-###+<WRAP justify>
 If no Target Texture texture has been assigned to the reflection you can adjust its resolution to any value you want between 0.1 and 1.0. If no Target Texture texture has been assigned to the reflection you can adjust its resolution to any value you want between 0.1 and 1.0.
-### +</WRAP> 
-###+<WRAP justify>
 These adjustments can be a great help when optimizing a scene and the resources each reflection takes, especially when using Post Process Effects. These adjustments can be a great help when optimizing a scene and the resources each reflection takes, especially when using Post Process Effects.
-###+</WRAP>
  
-###+<WRAP justify>
 The resolution of the reflection can also be changed at run-time allowing for further control over its quality and a better adaptation to the end user's device, making it possible to adjust on the fly towards higher qualities or higher performance. The resolution of the reflection can also be changed at run-time allowing for further control over its quality and a better adaptation to the end user's device, making it possible to adjust on the fly towards higher qualities or higher performance.
-###+</WRAP>
 \\ \\
 === Reflection Surface and Layers === === Reflection Surface and Layers ===
-###+<WRAP justify>
 Each reflection is calculated and displayed using the origin of the object / sprite as a reference. All internal calculations expect this origin to be located on the upper edge of the sprite.  Each reflection is calculated and displayed using the origin of the object / sprite as a reference. All internal calculations expect this origin to be located on the upper edge of the sprite. 
-###+</WRAP>
  
 {{ :rotation.gif?direct |}} {{ :rotation.gif?direct |}}
  
-###+<WRAP justify>
 This however, doesn't mean that the reflections can be displayed in only one direction. If you turn around the reflective object the reflections will adjust automatically to the corresponding orientation, always keeping an accurate and realistic result.  This however, doesn't mean that the reflections can be displayed in only one direction. If you turn around the reflective object the reflections will adjust automatically to the corresponding orientation, always keeping an accurate and realistic result. 
-### +</WRAP> 
-###+<WRAP justify>
 **Notice : In the Lite Edition of this tool, reflections can only be displayed in a Horizontal or Vertical direction and have to be marked as such by enabling the corresponding features in the Reflection Settings tab.** **Notice : In the Lite Edition of this tool, reflections can only be displayed in a Horizontal or Vertical direction and have to be marked as such by enabling the corresponding features in the Reflection Settings tab.**
-###+</WRAP>
 \\ \\
 {{ :surfaceoffset.gif?direct |}} {{ :surfaceoffset.gif?direct |}}
 \\ \\
-###+<WRAP justify>
 The distance between the edge of the reflection and the origin of the sprite can be modified with the Surface Offset value in the Reflection Settings tab. This displacement is based on the Y axis of the sprite. The distance between the edge of the reflection and the origin of the sprite can be modified with the Surface Offset value in the Reflection Settings tab. This displacement is based on the Y axis of the sprite.
-###+</WRAP>
  
-###+<WRAP justify>
 Each reflection can reflect any number of layers. Selecting which layers the reflection renders and which ones it ignores can be a great aid when trying to optimize a scene since not all objects might need to be re-drawn by each reflection and thus, by ignoring some of them, the performance can be improved. Each reflection can reflect any number of layers. Selecting which layers the reflection renders and which ones it ignores can be a great aid when trying to optimize a scene since not all objects might need to be re-drawn by each reflection and thus, by ignoring some of them, the performance can be improved.
-###+</WRAP>
 \\ \\
 === Faded and Skewed Reflections === === Faded and Skewed Reflections ===
Line 334: Line 318:
 {{ :faded.gif?direct |}} {{ :faded.gif?direct |}}
 \\ \\
-###+<WRAP justify>
 The reflections produced with this tool can be faded out either to the sprite color or to full transparency (if the Remove Backgrounds feature is enabled). The reflections produced with this tool can be faded out either to the sprite color or to full transparency (if the Remove Backgrounds feature is enabled).
-### +</WRAP> 
-###+<WRAP justify>
 This is useful to produce more artistic results with the reflections for cases where you need to reflect text or other elements during cutscenes or menus, etc. This is useful to produce more artistic results with the reflections for cases where you need to reflect text or other elements during cutscenes or menus, etc.
-###+</WRAP>
  
-###+<WRAP justify>
 The fading effect is applied ONLY to the reflection itself, and it does not fade the rest of the sprite nor its colors. The fading effect is applied ONLY to the reflection itself, and it does not fade the rest of the sprite nor its colors.
-###+</WRAP>
 \\ \\
-###+<WRAP justify>
 Notice : At the moment, PIDI 2D Reflections 2 is not capable of reflecting UI Elements nor anything rendered through the Canvas system. Notice : At the moment, PIDI 2D Reflections 2 is not capable of reflecting UI Elements nor anything rendered through the Canvas system.
-###+</WRAP>
  
-###+<WRAP justify>
 The Standard Edition includes the ability to further control the appearance of the reflection by modifying its projection parameters and skewing the results. This means that the reflection can be projected in a distorted way to simulate different perspectives over the surface. The Standard Edition includes the ability to further control the appearance of the reflection by modifying its projection parameters and skewing the results. This means that the reflection can be projected in a distorted way to simulate different perspectives over the surface.
-###+</WRAP>
 \\ \\
 {{ :skewedr.gif?direct |}} {{ :skewedr.gif?direct |}}
 \\ \\
-###+<WRAP justify>
 To use skewed reflections with PIDI 2D Reflections 2 simply enable this feature (you can find it in the Reflection Settings tab) and use the sliders to control the appearance, scale and offset of the top and bottom edges of the projection. While the control provided over the projection is limited (since otherwise the whole reflection might be broken) it still provides enough control to achieve highly interesting results. To use skewed reflections with PIDI 2D Reflections 2 simply enable this feature (you can find it in the Reflection Settings tab) and use the sliders to control the appearance, scale and offset of the top and bottom edges of the projection. While the control provided over the projection is limited (since otherwise the whole reflection might be broken) it still provides enough control to achieve highly interesting results.
-###+</WRAP>
 \\ \\
 === Distortion Maps === === Distortion Maps ===
-###+<WRAP justify>
 All included shaders support the use of distortion maps. The map itself has to be assigned to the material but the specific properties of the distortion map including its strength, the UV space in which it is projected as well as its scale can be defined on a per-instance basis. All included shaders support the use of distortion maps. The map itself has to be assigned to the material but the specific properties of the distortion map including its strength, the UV space in which it is projected as well as its scale can be defined on a per-instance basis.
-###+</WRAP>
 \\ \\
 {{ :distortionref.gif?direct |}} {{ :distortionref.gif?direct |}}
 \\ \\
-###+<WRAP justify>
 Depending on the effect that you want to achieve you may want to select different UV spaces for the distortion. The four available projections for the distortion map are Local Space which refers to the actual UV coordinates of the sprite, Reflection Space which refers to the coordinates calculated to project the reflection and which can be skewed alongside it, Screen Space and World Space. The Distortion Map Scale is applied on the corresponding UV space. Depending on the effect that you want to achieve you may want to select different UV spaces for the distortion. The four available projections for the distortion map are Local Space which refers to the actual UV coordinates of the sprite, Reflection Space which refers to the coordinates calculated to project the reflection and which can be skewed alongside it, Screen Space and World Space. The Distortion Map Scale is applied on the corresponding UV space.
-###+</WRAP>
 ---- ----
  
 \\ \\
 ==== Advanced Reflection Settings ==== ==== Advanced Reflection Settings ====
-###+<WRAP justify>
 The topics included in this section are intended for more advanced uses of the tool and may require a different scene setup and design in order to work correctly. Furthermore, most of these topics use features available only in the Standard Edition.  The topics included in this section are intended for more advanced uses of the tool and may require a different scene setup and design in order to work correctly. Furthermore, most of these topics use features available only in the Standard Edition. 
-###+</WRAP>
 === Post Process FX === === Post Process FX ===
  
-###+<WRAP justify>
 PIDI 2D Reflections 2 is designed to work out of the box with the Post Process Stack v2. Once this package is installed into your project either through the Package Manager (Unity 2018.3+) or manually, everything you need to do to take advantage of PostFX in your reflections is to enable them in the General Settings tab PIDI 2D Reflections 2 is designed to work out of the box with the Post Process Stack v2. Once this package is installed into your project either through the Package Manager (Unity 2018.3+) or manually, everything you need to do to take advantage of PostFX in your reflections is to enable them in the General Settings tab
-###+</WRAP>
 \\ \\
 {{ :postfx.gif?direct |}} {{ :postfx.gif?direct |}}
 \\ \\
-###+<WRAP justify>
 There are however a few considerations to take into account when using Post FX with our reflections system : There are however a few considerations to take into account when using Post FX with our reflections system :
-###+</WRAP>
  
   * Effects dependent on Motion Vectors (Motion Blur, TAA) are not compatible and cannot be rendered within the reflection itself   * Effects dependent on Motion Vectors (Motion Blur, TAA) are not compatible and cannot be rendered within the reflection itself
Line 393: Line 377:
  
 \\ \\
-###+<WRAP justify>
 Starting with PIDI 2D Reflections 2 version 2.1 there are two different ways to configure the Post FX support of each reflection, either copying the settings from the camera that looks at the reflection itself (in most cases the game camera) or by setting up a custom set of overrides, which allows you to set unique PostFX volumes for the reflections that are independent from those used for the rest of the game.  Starting with PIDI 2D Reflections 2 version 2.1 there are two different ways to configure the Post FX support of each reflection, either copying the settings from the camera that looks at the reflection itself (in most cases the game camera) or by setting up a custom set of overrides, which allows you to set unique PostFX volumes for the reflections that are independent from those used for the rest of the game. 
-###+</WRAP>
  
-###+<WRAP justify>
 When enabling the POST PROCESS FX SUPPORT setting on the General Settings tab you will see a new tab appear on the UI called POST FX SETTINGS When enabling the POST PROCESS FX SUPPORT setting on the General Settings tab you will see a new tab appear on the UI called POST FX SETTINGS
-###+</WRAP>
  
 \\ \\
Line 405: Line 389:
 \\ \\
  
-###+<WRAP justify>
 The POST FX SETTINGS MODE allows you to select from where will the POST FX SETTINGS for this reflection be read from, either the game camera or a custom set of options. If you use CUSTOM SETTINGS then a set of controls corresponding to a default POST PROCESS LAYER will appear. For additional information about these settings please read the [[https://docs.unity3d.com/Packages/com.unity.postprocessing@2.1/manual/Quick-start.html|Post Process Stack v2 documentation]]. The POST FX SETTINGS MODE allows you to select from where will the POST FX SETTINGS for this reflection be read from, either the game camera or a custom set of options. If you use CUSTOM SETTINGS then a set of controls corresponding to a default POST PROCESS LAYER will appear. For additional information about these settings please read the [[https://docs.unity3d.com/Packages/com.unity.postprocessing@2.1/manual/Quick-start.html|Post Process Stack v2 documentation]].
-###+</WRAP>
  
-### +<WRAP justify> 
-This system may not be fully compatible with custom Post Process FX nor is compatible with third party tools. The PostFX compatibility of PIDI 2D Reflections 2 is limited and designed only for the Post Process Stack v2 (Standard Renderer and LWRP 5.x-6.x) and v3 (Universal RP). +This system may not be fully compatible with custom Post Process FX nor is compatible with third party tools. The PostFX compatibility of PIDI 2D Reflections 2 is limited and designed only for the Post Process Stack v2 (Standard Renderer) and v3 (Universal RP). 
-###+</WRAP>
 \\ \\
 === Masked Reflections (Standard Only)=== === Masked Reflections (Standard Only)===
  
-###+<WRAP justify>
 Sometimes it is necessary to render a reflection over a large surface while keeping only some parts of it visible. This is especially true when using local reflections over other reflective surfaces. To achieve this effect and ensure that your reflection is visible ONLY when it is over another object you need to use the Masked Reflections feature, which can be enabled in the General Settings tab.  Sometimes it is necessary to render a reflection over a large surface while keeping only some parts of it visible. This is especially true when using local reflections over other reflective surfaces. To achieve this effect and ensure that your reflection is visible ONLY when it is over another object you need to use the Masked Reflections feature, which can be enabled in the General Settings tab. 
-###+</WRAP>
 \\ \\
 {{ :maskedrefs.png?direct&400 |}} {{ :maskedrefs.png?direct&400 |}}
 \\ \\
-###+<WRAP justify>
 Once enabled, a new settings tab will appear called "Masked Reflections Settings". Inside this tab are all the settings needed to control the masking process, including the possibility of rendering the mask texture (used to define where the reflection can be displayed) to an external RenderTexture that can be shared across multiple instances as well as the layers over which this reflection can be rendered. Once enabled, a new settings tab will appear called "Masked Reflections Settings". Inside this tab are all the settings needed to control the masking process, including the possibility of rendering the mask texture (used to define where the reflection can be displayed) to an external RenderTexture that can be shared across multiple instances as well as the layers over which this reflection can be rendered.
-###+</WRAP>
  
-###+<WRAP justify>
 Just as when rendering the reflection itself to an external texture, if a Target Texture is assigned and Passive mode is disabled, this reflection will render its mask to the RenderTexture. If Passive mode is enabled, the RenderTexture will be read instead, saving performance. This way it is possible to have only one instance with Passive mode disabled and rendering its mask to a RenderTexture while all the others just read from it. Just as when rendering the reflection itself to an external texture, if a Target Texture is assigned and Passive mode is disabled, this reflection will render its mask to the RenderTexture. If Passive mode is enabled, the RenderTexture will be read instead, saving performance. This way it is possible to have only one instance with Passive mode disabled and rendering its mask to a RenderTexture while all the others just read from it.
-###+</WRAP>
 \\ \\
 === Parallax Reflections (Standard Only)=== === Parallax Reflections (Standard Only)===
-###+<WRAP justify>
 PIDI 2D Reflections 2 is also compatible with [[https://en.wikipedia.org/wiki/Parallax_scrolling|Parallax Scrolling]] (or Parallax Backgrounds) with very little setup required. While these kinds of reflections can be considerably more expensive than regular ones due to several cameras having to be combined into a single reflection, the results are optimized enough to be used without issues. PIDI 2D Reflections 2 is also compatible with [[https://en.wikipedia.org/wiki/Parallax_scrolling|Parallax Scrolling]] (or Parallax Backgrounds) with very little setup required. While these kinds of reflections can be considerably more expensive than regular ones due to several cameras having to be combined into a single reflection, the results are optimized enough to be used without issues.
-###+</WRAP>
  
-###+<WRAP justify>
 You can enable this feature directly in the General Settings tab. Once enabled, a new settings tab called "Parallax Reflections Settings" will appear showing all the relevant settings. Due to the way that parallax reflections work, they are incompatible with some other features such as local reflections and the "remove background" feature. You can enable this feature directly in the General Settings tab. Once enabled, a new settings tab called "Parallax Reflections Settings" will appear showing all the relevant settings. Due to the way that parallax reflections work, they are incompatible with some other features such as local reflections and the "remove background" feature.
-###+</WRAP>
 \\ \\
 {{ :parallax.png?direct&800 |}} {{ :parallax.png?direct&800 |}}
 \\ \\
-###+<WRAP justify>
 Once Parallax Reflections are enabled, all you have to do to make use of them is to assign the cameras of your scene to its camera's list, ordering them from back to front. PIDI 2D Reflections 2 will take care of the rest. Once Parallax Reflections are enabled, all you have to do to make use of them is to assign the cameras of your scene to its camera's list, ordering them from back to front. PIDI 2D Reflections 2 will take care of the rest.
-###+</WRAP>
  
-###+<WRAP justify>
 **Notice : Parallax Reflections are NOT previewable in the Scene view due to the way they are handled. They can only be previewed in the Game View.** **Notice : Parallax Reflections are NOT previewable in the Scene view due to the way they are handled. They can only be previewed in the Game View.**
-###+</WRAP>
  
 === Local Reflections === === Local Reflections ===
-###+<WRAP justify>
 Local reflections are designed for specific cases where you need a reflection to follow an object ( for example a character ) and to move with it over another reflective surface. This is useful to better simulate water surfaces and floors where the characters and objects may need to move over the surface without having their reflections disappear. Local reflections are designed for specific cases where you need a reflection to follow an object ( for example a character ) and to move with it over another reflective surface. This is useful to better simulate water surfaces and floors where the characters and objects may need to move over the surface without having their reflections disappear.
-###+</WRAP>
  
-###+<WRAP justify>
 PIDI 2D Reflections 2 provides a basic integrated workflow for this behavior, but it works with horizontal reflections ONLY. PIDI 2D Reflections 2 provides a basic integrated workflow for this behavior, but it works with horizontal reflections ONLY.
-###+</WRAP>
 \\ \\
 {{ :localref1.png?direct |}} {{ :localref1.png?direct |}}
 \\ \\
-###+<WRAP justify>
 In the General Settings Tab you can find the feature Local Reflections. Once enabled, a new tab with the corresponding settings will appear. In the General Settings Tab you can find the feature Local Reflections. Once enabled, a new tab with the corresponding settings will appear.
-###+</WRAP>
  
-###+<WRAP justify>
 Inside the Local Reflections Settings tab you can control the horizontal and vertical limits of the local reflection. These limits are represented in the scene view as red and blue lines and help you to limit the are in which the local reflection will follow the target object. In the Multi-Effects demo scene included with the package the local reflection has been set up to be masked as well, to prevent it from displaying outside of the boundaries of the reflective floor. Inside the Local Reflections Settings tab you can control the horizontal and vertical limits of the local reflection. These limits are represented in the scene view as red and blue lines and help you to limit the are in which the local reflection will follow the target object. In the Multi-Effects demo scene included with the package the local reflection has been set up to be masked as well, to prevent it from displaying outside of the boundaries of the reflective floor.
-###+</WRAP>
 \\ \\
 {{ :localref2.png?direct |}} {{ :localref2.png?direct |}}
 \\ \\
-###+<WRAP justify>
 The Target Transform slot should receive the transform / object that you want the local reflection to follow. Once this is done, you just need to set up the Reflection Layers (inside of Reflection Settings) to be the same as the layer of the object you want to reflect. Local reflections are designed to reflect only one object at a time, so they require a careful layer management in order to achieve the best results. The Target Transform slot should receive the transform / object that you want the local reflection to follow. Once this is done, you just need to set up the Reflection Layers (inside of Reflection Settings) to be the same as the layer of the object you want to reflect. Local reflections are designed to reflect only one object at a time, so they require a careful layer management in order to achieve the best results.
-###+</WRAP>
 \\ \\
 ---- ----
Line 477: Line 461:
 ==== Additional Topics ==== ==== Additional Topics ====
 === Shader Based Reflections === === Shader Based Reflections ===
-###+<WRAP justify>
 Included with this tool are two shaders that generate reflections without any additional components. These shaders are designed for ultra-fast performance and can, with some tweaks in the scene, reflect both Parallax backgrounds and PostFX. Included with this tool are two shaders that generate reflections without any additional components. These shaders are designed for ultra-fast performance and can, with some tweaks in the scene, reflect both Parallax backgrounds and PostFX.
-###+</WRAP>
  
 \\ \\
Line 486: Line 470:
  
  
-###+<WRAP justify>
 These shaders however have many important limitations when compared to the usual reflections that PIDI 2D Reflections 2 produces and should be used sparingly, mostly in cases where performance is a much higher priority than quality. These shaders however have many important limitations when compared to the usual reflections that PIDI 2D Reflections 2 produces and should be used sparingly, mostly in cases where performance is a much higher priority than quality.
-###+</WRAP>
  
-###+<WRAP justify>
 The limits of the Shader based reflections are the following :  The limits of the Shader based reflections are the following : 
  
Line 500: Line 484:
  
  
-###+</WRAP>
 \\ \\
  
 === Custom Shaders (Code based) === === Custom Shaders (Code based) ===
-###+<WRAP justify>
 Custom shaders can be created to expand or customize the behavior of the reflections and achieve different effects. To be recognized by this tool as a PIDI 2D Reflections compatible shader, your shader must contain the following parameters : Custom shaders can be created to expand or customize the behavior of the reflections and achieve different effects. To be recognized by this tool as a PIDI 2D Reflections compatible shader, your shader must contain the following parameters :
-###+</WRAP>
  
   * _2DReflectionTex as a 2D sampler   * _2DReflectionTex as a 2D sampler
   * _SurfaceXY as a Vector4 parameter   * _SurfaceXY as a Vector4 parameter
  
-###+<WRAP justify>
 Additionally, the shader can have a _2DReflectionMask 2D sampler which will receive the corresponding mask texture and many other parameters that you can see on the included shaders' source code. Additionally, the shader can have a _2DReflectionMask 2D sampler which will receive the corresponding mask texture and many other parameters that you can see on the included shaders' source code.
-###+</WRAP>
  
  
-###+<WRAP justify>
 This guide will not cover how to write custom shaders, as this is a very extensive topic much better covered by other articles, guides and tutorials. There are however a few technical details that might be useful for you when deciding how to handle the reflection output from our tool in your own shaders : This guide will not cover how to write custom shaders, as this is a very extensive topic much better covered by other articles, guides and tutorials. There are however a few technical details that might be useful for you when deciding how to handle the reflection output from our tool in your own shaders :
-###+</WRAP>
  
   * The reflection texture output is not flipped nor mirrored. It is rendered in a default Y up orientation with its lowest edge matching the edge of the reflective surface.    * The reflection texture output is not flipped nor mirrored. It is rendered in a default Y up orientation with its lowest edge matching the edge of the reflective surface. 
Line 526: Line 510:
 === Custom Shaders (Amplify Shader Editor) === === Custom Shaders (Amplify Shader Editor) ===
  
-###+<WRAP justify>
 Creating custom shaders with ASE (Amplify Shader Editor) that are compatible with all effects and features of PIDI 2D Reflections 2 is extremely fast and easy in both Lite and Standard Editions of this asset. Creating custom shaders with ASE (Amplify Shader Editor) that are compatible with all effects and features of PIDI 2D Reflections 2 is extremely fast and easy in both Lite and Standard Editions of this asset.
-###+</WRAP>
  
-###+<WRAP justify>
 First, install ASE into your project. Afterwards, unpack the ASE Samples Pack.unitypackage file into your project. It contains two already made copies of the standard shaders re-written with ASE Nodes as well as a special [[http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Shader_Editor/Manual#Shader_Functions|Shader Function Node]] called 2D Reflections Outputs which automatically creates all the parameters needed by the tool and generates all the necessary outputs for you to render them. First, install ASE into your project. Afterwards, unpack the ASE Samples Pack.unitypackage file into your project. It contains two already made copies of the standard shaders re-written with ASE Nodes as well as a special [[http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Shader_Editor/Manual#Shader_Functions|Shader Function Node]] called 2D Reflections Outputs which automatically creates all the parameters needed by the tool and generates all the necessary outputs for you to render them.
-###+</WRAP>
 \\ \\
 {{ :2drefoutputs.png?direct&600 |}} {{ :2drefoutputs.png?direct&600 |}}
 \\ \\
-###+<WRAP justify>
 In most cases, you will want to plug the Final Reflection (RGB) output from the 2D Reflection Outputs node to the Emission output of your shader and its Background & Masked Alpha output to the Opacity output of your shader. In most cases, you will want to plug the Final Reflection (RGB) output from the 2D Reflection Outputs node to the Emission output of your shader and its Background & Masked Alpha output to the Opacity output of your shader.
-###+</WRAP>
 \\ \\
 {{ :ase_refnode.png?direct&600 |}} {{ :ase_refnode.png?direct&600 |}}
 \\ \\
-###+<WRAP justify>
 For a more detailed description of this whole process, please watch the small video tutorial below. For a more detailed description of this whole process, please watch the small video tutorial below.
-###+</WRAP>
  
 {{ youtube>Jf_kKB25Yns?large }} {{ youtube>Jf_kKB25Yns?large }}
Line 551: Line 535:
 === Custom Shaders (ShaderGraph Editor) === === Custom Shaders (ShaderGraph Editor) ===
  
-### +<WRAP justify> 
-Starting with version 2.07, the LWRP Add on package of PIDI 2D Reflections 2 comes with an additional package called "ShaderGraph Elements" and the number of the LWRP version they are intended for. They include ShaderGraph example shaders that you can use as a reference to build your own as well as a very useful SubGraph that handles most of the reflection parameters for you, as long as you provide the necessary inputs. +Starting with version 2.07, the Universal RP Add on package of PIDI 2D Reflections 2 comes with an additional package called "ShaderGraph Elements" and the number of the Unviersal RP version they are intended for. They include ShaderGraph example shaders that you can use as a reference to build your own as well as a very useful SubGraph that handles most of the reflection parameters for you, as long as you provide the necessary inputs. 
-###+</WRAP>
  
 \\ \\
Line 560: Line 544:
  
  
-###+<WRAP justify>
 To make the process of creating your own custom shaders as easy as possible, the subgraph included with the Shader Graph elements includes all the inputs that you will need to use PIDI 2D Reflections and their names are the exact names you need to give each parameter so that they can be automatically managed by the PIDI 2D Reflections component To make the process of creating your own custom shaders as easy as possible, the subgraph included with the Shader Graph elements includes all the inputs that you will need to use PIDI 2D Reflections and their names are the exact names you need to give each parameter so that they can be automatically managed by the PIDI 2D Reflections component
-###+</WRAP>
  
 \\ \\
Line 568: Line 552:
 \\ \\
  
-###+<WRAP justify>
 Remember that in ShaderGraph the parameter names you assign are not the same as the ones used by the shaders internally. However, PIDI 2D Reflections requires these names to be the same, except that the internal names or References must have a "_" symbol before their name as in the following picture. Remember that in ShaderGraph the parameter names you assign are not the same as the ones used by the shaders internally. However, PIDI 2D Reflections requires these names to be the same, except that the internal names or References must have a "_" symbol before their name as in the following picture.
-###+</WRAP>
  
 \\ \\
Line 576: Line 560:
 \\ \\
  
-###+<WRAP justify>
 While a lot of effort was put into making sure that all shader editors have the easiest workflow possible, ShaderGraph is still an evolving tool that receives new features on each iteration. One such feature is the Custom Function node, added in Unity 2019.2 but non-existent in 2019.1. Due to these differences, we recommend that if you are going to use ShaderGraph in your project to create shaders for PIDI 2D Reflections 2, you should upgrade your project to Unity 2019.2 to take full advantage of all features, since our ShaderGraph implementation on Unity 2019.1 lacks a few features, most importantly the ability to select the projection space for the distortion maps While a lot of effort was put into making sure that all shader editors have the easiest workflow possible, ShaderGraph is still an evolving tool that receives new features on each iteration. One such feature is the Custom Function node, added in Unity 2019.2 but non-existent in 2019.1. Due to these differences, we recommend that if you are going to use ShaderGraph in your project to create shaders for PIDI 2D Reflections 2, you should upgrade your project to Unity 2019.2 to take full advantage of all features, since our ShaderGraph implementation on Unity 2019.1 lacks a few features, most importantly the ability to select the projection space for the distortion maps
-###+</WRAP>
  
 \\ \\
 \\ \\
-###+<WRAP justify>
 If you have additional questions about the functionality of our tool or are having issues with any of the components included with it please don't hesitate in contacting us at our [[support@irreverent-software.com|support email]]. If you have additional questions about the functionality of our tool or are having issues with any of the components included with it please don't hesitate in contacting us at our [[support@irreverent-software.com|support email]].
-###+</WRAP>
 \\ \\
 \\ \\
-### +<WRAP justify> 
-//Copyright© 2017-2019 - Jorge Pinal Negrete. PIDI 2D Reflections, PIDI Game Development Framework, Irreverent Software, their logos and branding as well as the content and documentation in this wiki are trademarks and or copyright property of Jorge Pinal Negrete. All other trademarks and copyrights belong to their respective owners.// +//Copyright© 2017-2020 - Jorge Pinal Negrete. PIDI 2D Reflections, PIDI Game Development Framework, Irreverent Software, their logos and branding as well as the content and documentation in this wiki are trademarks and or copyright property of Jorge Pinal Negrete. All other trademarks and copyrights belong to their respective owners.// 
-### +</WRAP> 
  
  
  
pidi_2d_reflections_2.1598319606.txt.gz · Last modified: 2020/08/25 01:40 by irrsoft