User Tools

Site Tools


xfur_studio_legacy

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
xfur_studio_legacy [2020/04/06 13:07]
irrsoft [Adding fur to a model]
xfur_studio_legacy [2020/08/29 07:17] (current)
irrsoft
Line 1: Line 1:
 ====== PIDI : XFur Studio™ : 1.9x Version ====== ====== PIDI : XFur Studio™ : 1.9x Version ======
-###+<WRAP justify>
 This is the documentation for the original release of XFur Studio, covering the last releases of the 1.x cycle starting with XFur Studio 1.9. If you haven't updated your XFur Studio installation to this release please be aware that this step is required if you plan to upgrade to XFur Studio 2 and newer XFur releases. This is the documentation for the original release of XFur Studio, covering the last releases of the 1.x cycle starting with XFur Studio 1.9. If you haven't updated your XFur Studio installation to this release please be aware that this step is required if you plan to upgrade to XFur Studio 2 and newer XFur releases.
-###+</WRAP>
  
-###+<WRAP justify>
 XFur Studio is the most complete and advanced toolset to add, manage, style and customize fur on any character inside of Unity. While a wide selection of parameters, settings and shaders is offered to ensure that XFur can be used on lower end devices with an acceptable quality, the system itself and most of its features are targeted to higher end devices. XFur Studio has all the features you need to achieve high quality and detailed fur simulations in your games. XFur Studio is the most complete and advanced toolset to add, manage, style and customize fur on any character inside of Unity. While a wide selection of parameters, settings and shaders is offered to ensure that XFur can be used on lower end devices with an acceptable quality, the system itself and most of its features are targeted to higher end devices. XFur Studio has all the features you need to achieve high quality and detailed fur simulations in your games.
-###+</WRAP>
  
  
Line 17: Line 17:
 ---- ----
  
-###+<WRAP justify>
 In this quick guide we will go through the whole process of using XFur Studio, from installing the software into your project, preparing a model, adding fur, customizing its parameters and having it ready to use. In this quick guide we will go through the whole process of using XFur Studio, from installing the software into your project, preparing a model, adding fur, customizing its parameters and having it ready to use.
-###+</WRAP>
  
-###+<WRAP justify>
 As a first step, please ensure that your project fully meets the requirements below : As a first step, please ensure that your project fully meets the requirements below :
-###+</WRAP>
  
   * It is being developed with Unity 2017.1+   * It is being developed with Unity 2017.1+
Line 29: Line 29:
   * Does not use XFur Mobile   * Does not use XFur Mobile
  
-###+<WRAP justify>
 If your project meets these requirements, then we are ready to move on towards the first steps of this small guide. If your project meets these requirements, then we are ready to move on towards the first steps of this small guide.
-###+</WRAP>
  
 \\ \\
Line 40: Line 40:
 ==== Installation & Initial setup ==== ==== Installation & Initial setup ====
  
-###+<WRAP justify>
 To add XFur to a project 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. To add XFur to a project 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&600 |}} {{ :fig0a_installation.png?direct&600 |}}
 \\ \\
-###+<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>
 \\ \\
 {{ :xfur_asset_store.png?direct&600 |}} {{ :xfur_asset_store.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>
 \\ \\
  
Line 62: Line 62:
 ==== Preparing your 3D models ==== ==== Preparing your 3D models ====
  
-###+<WRAP justify>
 XFur Studio is compatible with both regular and skinned meshes (meshes for animated characters, with a rig). Most models will work with XFur Studio without requiring any changes nor modifications, there are a few requirements that is recommended that your model meets in order to take full advantage of XFur Studio. XFur Studio is compatible with both regular and skinned meshes (meshes for animated characters, with a rig). Most models will work with XFur Studio without requiring any changes nor modifications, there are a few requirements that is recommended that your model meets in order to take full advantage of XFur Studio.
-###+</WRAP>
  
   * Use low-poly models whenever possible. Fur is rendered in samples, which means that for every pass the fur shader does (between 4 and 12) the geometry is re-drawn. The lower the polygon count, the better the performance of the shader will be.   * Use low-poly models whenever possible. Fur is rendered in samples, which means that for every pass the fur shader does (between 4 and 12) the geometry is re-drawn. The lower the polygon count, the better the performance of the shader will be.
Line 73: Line 73:
   * Whenever possible, try to use only one material on your character or two if there are large areas that will not be covered in fur. This will improve performance.   * Whenever possible, try to use only one material on your character or two if there are large areas that will not be covered in fur. This will improve performance.
   * Use as few bones as possible if you plan to use the physics module. It has a 64 bones limit. You can define these 64 bones manually.   * Use as few bones as possible if you plan to use the physics module. It has a 64 bones limit. You can define these 64 bones manually.
-###+<WRAP justify>
 For the examples of this Quick Start guide we will be using a very high quality model developed by [[https://assetstore.unity.com/publishers/16163|Malbers Animations]], the Realistic Raccoon model on its LOD3 variant, from the [[https://assetstore.unity.com/packages/3d/characters/animals/realistic-raccoons-and-red-panda-126443|Realistic Raccoons and Red Panda]] package that you can get in the Unity Asset Store. We want to thank [[https://twitter.com/MalberShark|Malbers Animations]] for sharing this model with us for the purpose of testing XFur and for this small tutorial. For the examples of this Quick Start guide we will be using a very high quality model developed by [[https://assetstore.unity.com/publishers/16163|Malbers Animations]], the Realistic Raccoon model on its LOD3 variant, from the [[https://assetstore.unity.com/packages/3d/characters/animals/realistic-raccoons-and-red-panda-126443|Realistic Raccoons and Red Panda]] package that you can get in the Unity Asset Store. We want to thank [[https://twitter.com/MalberShark|Malbers Animations]] for sharing this model with us for the purpose of testing XFur and for this small tutorial.
-###+</WRAP>
 \\ \\
 {{ :skinned_mesh_data.png?direct |}} {{ :skinned_mesh_data.png?direct |}}
 \\ \\
  
-###+<WRAP justify>
 For this particular model, to ensure it will work with XFur Studio without any issues, we set the rotation of the mesh (called Racoon Body LOD3) to be 0,0,0 instead of its original value of -90,0,0. We also set the Root Bone in the Skinned Mesh Renderer component to be the Raccoon Realistic root object instead of the Pelvis transform that it has assigned originally. This does not affect the animations in any way, but allows us to recalculate the normals in a more accurate way internally, which is necessary for XFur Studio to use the more advanced features such as snow coverage.  For this particular model, to ensure it will work with XFur Studio without any issues, we set the rotation of the mesh (called Racoon Body LOD3) to be 0,0,0 instead of its original value of -90,0,0. We also set the Root Bone in the Skinned Mesh Renderer component to be the Raccoon Realistic root object instead of the Pelvis transform that it has assigned originally. This does not affect the animations in any way, but allows us to recalculate the normals in a more accurate way internally, which is necessary for XFur Studio to use the more advanced features such as snow coverage. 
-###+</WRAP>
  
-###+<WRAP justify>
 You should follow this step with any model that doesn't have a 0,0,0 rotation, a 0,0,0 location or a 1,1,1 scale to reduce any errors that may happen if the transform values of your mesh are not the correct ones. You should follow this step with any model that doesn't have a 0,0,0 rotation, a 0,0,0 location or a 1,1,1 scale to reduce any errors that may happen if the transform values of your mesh are not the correct ones.
-###+</WRAP>
  
-### +<WRAP justify> 
-Finally, we re-adjust the bounds by hand to make sure that they are bigger than the mesh itself, otherwise our model will stop rendering while it is still in frame due to the bounds not being correctly sized.  +Finally, we re-adjust the bounds by hand to make sure that they are bigger than the mesh itself, otherwise our model will stop rendering while it is still in frame due to the bounds not being correctly sized. </WRAP>
-###+
  
-###+<WRAP justify>
 Following these requirements will ensure that your models take full advantage of XFur Studio, have the best performance possible and that all features and effects work without errors. Following these requirements will ensure that your models take full advantage of XFur Studio, have the best performance possible and that all features and effects work without errors.
-###+</WRAP>
  
 \\ \\
Line 102: Line 101:
 ==== Adding fur to a model ==== ==== Adding fur to a model ====
  
-###+<WRAP justify>
 Adding fur to a model is a straightforward task. We will first create a core XFur material for our entire project. For this tutorial, we will call this material XFur Tutorial mat. Once created, we will assign the sixteen samples shader from the Standard branch to our material. Adding fur to a model is a straightforward task. We will first create a core XFur material for our entire project. For this tutorial, we will call this material XFur Tutorial mat. Once created, we will assign the sixteen samples shader from the Standard branch to our material.
-###+</WRAP>
  
 \\ \\
Line 110: Line 109:
 \\ \\
  
-###+<WRAP justify>
 Once the shader is assigned, the material will display the custom shader inspector for XFur Studio. Since most of the features of the material are controlled by each XFur instance (and this is actually the intended behavior) we will not touch most of them. We will only assign the XFur_FurLayers1 map to the FUR GEN MAP slot and set the FUR CUTOFF value to 0.03 Once the shader is assigned, the material will display the custom shader inspector for XFur Studio. Since most of the features of the material are controlled by each XFur instance (and this is actually the intended behavior) we will not touch most of them. We will only assign the XFur_FurLayers1 map to the FUR GEN MAP slot and set the FUR CUTOFF value to 0.03
-###+</WRAP>
  
 \\ \\
Line 118: Line 117:
 \\ \\
  
-###+<WRAP justify>
 We then assign our material to the Racoon Body LOD03 mesh. The mesh will appear to explode, which is perfectly normal since most of the data XFur needs is not yet present.  We then assign our material to the Racoon Body LOD03 mesh. The mesh will appear to explode, which is perfectly normal since most of the data XFur needs is not yet present. 
-###+</WRAP>
  
 \\ \\
Line 126: Line 125:
 \\ \\
  
-###+<WRAP justify>
 Now, we will assign the XFur_System component to the mesh. After loading it, the component will inform us that we do not have a database asset assigned to it. We will solve this now, before proceeding. The XFur_System Component must always be placed next to the Mesh or Skinned Mesh Renderer Component. Now, we will assign the XFur_System component to the mesh. After loading it, the component will inform us that we do not have a database asset assigned to it. We will solve this now, before proceeding. The XFur_System Component must always be placed next to the Mesh or Skinned Mesh Renderer Component.
-###+</WRAP>
  
 \\ \\
Line 134: Line 133:
 \\ \\
  
-###+<WRAP justify>
 Inside the PIDI - XFur System folder, in the Database Module subfolder you can find a Database Asset pre-packaged with our tool. However, since this database gets overwritten with every update we release, you should not use it directly for your project. Instead, we will simply select it, press Ctrl+D to duplicate it, and store it somewhere else in our project. Inside the PIDI - XFur System folder, in the Database Module subfolder you can find a Database Asset pre-packaged with our tool. However, since this database gets overwritten with every update we release, you should not use it directly for your project. Instead, we will simply select it, press Ctrl+D to duplicate it, and store it somewhere else in our project.
-###+</WRAP>
  
 \\ \\
Line 142: Line 141:
 \\ \\
  
-###+<WRAP justify>
 Once we have our database ready to be used, we will assign it to the XFUR DATABASE ASSET slot in the UI of the XFur System component. The Unity Editor will freeze for a few seconds as the mesh of the raccoon character is being automatically copied, patched with the needed data, and stored safely in the database. This allows you to keep your original mesh untouched while providing XFur with everything it needs. Once the patching process is over the XFur Studio UI will show all the available options. Once we have our database ready to be used, we will assign it to the XFUR DATABASE ASSET slot in the UI of the XFur System component. The Unity Editor will freeze for a few seconds as the mesh of the raccoon character is being automatically copied, patched with the needed data, and stored safely in the database. This allows you to keep your original mesh untouched while providing XFur with everything it needs. Once the patching process is over the XFur Studio UI will show all the available options.
-###+</WRAP>
  
 \\ \\
Line 150: Line 149:
 \\ \\
  
-###+<WRAP justify>
 We will open now the **XFUR - MAIN SETTINGS** tab and set up some first parameters that will allow us to control the fur carefully. We will first set the FUR SAMPLES value to sixteen (more samples = higher quality strands = lower performance), the **SHADOWS MODE** to Standard Shadows and both the **BASE SKIN MODE** and the **FUR SETTINGS MODE** to be **FROM INSTANCE** rather than **FROM MATERIAL**. These last two options will allow us to override the material parameters on each object, which can let you share a single material across every single fur covered character in your game. We will open now the **XFUR - MAIN SETTINGS** tab and set up some first parameters that will allow us to control the fur carefully. We will first set the FUR SAMPLES value to sixteen (more samples = higher quality strands = lower performance), the **SHADOWS MODE** to Standard Shadows and both the **BASE SKIN MODE** and the **FUR SETTINGS MODE** to be **FROM INSTANCE** rather than **FROM MATERIAL**. These last two options will allow us to override the material parameters on each object, which can let you share a single material across every single fur covered character in your game.
-###+</WRAP>
  
-###+<WRAP justify>
 XFur Studio offers two sets of shaders for your characters that differ mostly in the way they interact with shadows and lighting. These shaders can be selected by changing the SHADOWS MODE setting in the XFur System UI. The Standard Shadows mode works by generating all the fur samples on the GPU, which makes it much faster to render but does not receive accurate shadows in Forward rendering, only in Deferred mode. XFur Studio offers two sets of shaders for your characters that differ mostly in the way they interact with shadows and lighting. These shaders can be selected by changing the SHADOWS MODE setting in the XFur System UI. The Standard Shadows mode works by generating all the fur samples on the GPU, which makes it much faster to render but does not receive accurate shadows in Forward rendering, only in Deferred mode.
-###+</WRAP>
  
-###+<WRAP justify>
 The Full Shadows mode generates the additional geometry and manages it on the CPU which is considerably more expensive but it also produces much more accurate results, higher quality fur strands, full and accurate shadows on Forward rendering and it also allows you to change the amount of samples dynamically. For our tutorial, we will select the Standard Shadows mode. The Full Shadows mode generates the additional geometry and manages it on the CPU which is considerably more expensive but it also produces much more accurate results, higher quality fur strands, full and accurate shadows on Forward rendering and it also allows you to change the amount of samples dynamically. For our tutorial, we will select the Standard Shadows mode.
-###+</WRAP>
  
 \\ \\
Line 166: Line 165:
 \\ \\
  
-###+<WRAP justify>
 A BASE SKIN block of settings followed by a FUR SETTINGS block will appear in the UI. In the BASE SKIN block, we will assign the corresponding texture of the Raccoon to our MAIN TEXTURE slot, set the MAIN COLOR to a dark gray (to simulate the shadow from the fur) and adjust any other values we wish. A BASE SKIN block of settings followed by a FUR SETTINGS block will appear in the UI. In the BASE SKIN block, we will assign the corresponding texture of the Raccoon to our MAIN TEXTURE slot, set the MAIN COLOR to a dark gray (to simulate the shadow from the fur) and adjust any other values we wish.
-###+</WRAP>
  
 \\ \\
Line 174: Line 173:
 \\ \\
  
-###+<WRAP justify>
 On the FUR SETTINGS block, we will set the FUR COLOR A and FUR COLOR B to a light gray color (you can play with these values until you get the result you want) and assign the same Albedo texture from the Raccoon to the FUR COLOR MAP slot. On the FUR SETTINGS block, we will set the FUR COLOR A and FUR COLOR B to a light gray color (you can play with these values until you get the result you want) and assign the same Albedo texture from the Raccoon to the FUR COLOR MAP slot.
-###+</WRAP>
  
-###+<WRAP justify>
 We will also play with the RIM COLOR and RIM POWER values (which adjust the backlight effect on the fur) as well as with the FUR LENGTH and FUR THICKNESS. For the best results, you can try to copy the values in the following picture into your own object. **Remember that Fur length values are most of the time very small to produce accurate, good looking results** We will also play with the RIM COLOR and RIM POWER values (which adjust the backlight effect on the fur) as well as with the FUR LENGTH and FUR THICKNESS. For the best results, you can try to copy the values in the following picture into your own object. **Remember that Fur length values are most of the time very small to produce accurate, good looking results**
-###+</WRAP>
  
 \\ \\
Line 186: Line 185:
 \\ \\
  
-###+<WRAP justify>
 For now, since we will not paint any additional data nor groom our character yet, we will also set the GROOMING ALGORITHM to ACCURATE and the FUR DIRECTION value to 0,0,0. Following the steps detailed above and copying all the parameters shown in the pictures will give us a great baseline to start working with our character and, in some cases, it will be everything we need to do, depending on the results you want. For now, since we will not paint any additional data nor groom our character yet, we will also set the GROOMING ALGORITHM to ACCURATE and the FUR DIRECTION value to 0,0,0. Following the steps detailed above and copying all the parameters shown in the pictures will give us a great baseline to start working with our character and, in some cases, it will be everything we need to do, depending on the results you want.
-###+</WRAP>
  
 \\ \\
Line 194: Line 193:
 \\ \\
  
-###+<WRAP justify>
 However, if your character needs additional details or more refined control over the appearance of the fur, its length, direction, etc. then you should continue reading this guide and move on to the XFur Painter section, where we will cover the basics of XFur Painter, the included tool to work over all the small details of your character's fur within the Unity Editor and through the use of easy, simple brushes and strokes. However, if your character needs additional details or more refined control over the appearance of the fur, its length, direction, etc. then you should continue reading this guide and move on to the XFur Painter section, where we will cover the basics of XFur Painter, the included tool to work over all the small details of your character's fur within the Unity Editor and through the use of easy, simple brushes and strokes.
-###+</WRAP>
  
-###+<WRAP justify>
 While the following video shows the workflow for XFur Mobile, an asset designed as a port from XFur Studio, all of the steps described in this quick guide and shown in the video are the same between both tools, so it might give you a good idea about how to set up your character to use it with XFur Studio 1.9 While the following video shows the workflow for XFur Mobile, an asset designed as a port from XFur Studio, all of the steps described in this quick guide and shown in the video are the same between both tools, so it might give you a good idea about how to set up your character to use it with XFur Studio 1.9
-###+</WRAP>
  
 \\ \\
Line 210: Line 209:
 ==== XFur Painter ==== ==== XFur Painter ====
  
-###+<WRAP justify>
 First, let's save our work. Create a prefab of the Raccoon model (or any model you are using) with all the XFur settings and parameters we have set up to this moment. First, let's save our work. Create a prefab of the Raccoon model (or any model you are using) with all the XFur settings and parameters we have set up to this moment.
-###+</WRAP>
  
-###+<WRAP justify>
 Then, open the XFur_Painter scene included with this asset. Once opened, disable the demo model of the dog from the root game object. XFur Painter will automatically detect the active object in the scene and leaving the German Shepherd in there will interfere with the Raccoon we want to paint. Once the German Shepherd is disabled, place the prefab we just made in the center of the scene, at location 0,0,0 and with a rotation of 0,0,0. Then, open the XFur_Painter scene included with this asset. Once opened, disable the demo model of the dog from the root game object. XFur Painter will automatically detect the active object in the scene and leaving the German Shepherd in there will interfere with the Raccoon we want to paint. Once the German Shepherd is disabled, place the prefab we just made in the center of the scene, at location 0,0,0 and with a rotation of 0,0,0.
-###+</WRAP>
  
-###+<WRAP justify>
 If your character has places that you believe will be difficult to reach (such as the inside of the mouth, under the arms, etc) you should modify its pose by hand to one that is easier to manage. In our case, we will open the mouth of the raccoon and disable all the unnecessary meshes such as the upper and bottom teeth, and the whiskers. If your character has places that you believe will be difficult to reach (such as the inside of the mouth, under the arms, etc) you should modify its pose by hand to one that is easier to manage. In our case, we will open the mouth of the raccoon and disable all the unnecessary meshes such as the upper and bottom teeth, and the whiskers.
-###+</WRAP>
  
 \\ \\
Line 226: Line 225:
 \\ \\
  
-###+<WRAP justify>
 Once the model is ready, you just need to hit play and XFur Painter will start. To see a detailed timelapse of how to use XFur Painter, please watch the video below. Once the model is ready, you just need to hit play and XFur Painter will start. To see a detailed timelapse of how to use XFur Painter, please watch the video below.
-###+</WRAP>
  
 \\ \\
Line 235: Line 234:
  
  
-###+<WRAP justify>
 The brushes available in XFur Painter are divided in Appearance Tools and Grooming tools. The appearance tools are, from left to right, **Fur Shaving, Fur Length, Fur Shadowing and Fur Thickness**. You can switch between the addition and subtraction modes of each tool with the left and right buttons of your mouse. You can use the middle mouse to rotate around the character or pan if you keep Left Shift pressed as you drag your mouse with the middle button. The brushes available in XFur Painter are divided in Appearance Tools and Grooming tools. The appearance tools are, from left to right, **Fur Shaving, Fur Length, Fur Shadowing and Fur Thickness**. You can switch between the addition and subtraction modes of each tool with the left and right buttons of your mouse. You can use the middle mouse to rotate around the character or pan if you keep Left Shift pressed as you drag your mouse with the middle button.
-###+</WRAP>
  
 \\ \\
Line 243: Line 242:
 \\ \\
  
-###+<WRAP justify>
 Once you are happy with the results you achieve in XFur Painter, you must click on the Export Fur Data button and save the resulting fur data maps somewhere in your project. Once this process finishes, you can stop the application. Your character will seem to have lost all fur data, but if you assign the Fur Data maps you exported to the corresponding slots of the XFur UI (the length map goes on Fur Data 0 while the grooming map goes on Fur Data 1) that information will be restored. Once you are happy with the results you achieve in XFur Painter, you must click on the Export Fur Data button and save the resulting fur data maps somewhere in your project. Once this process finishes, you can stop the application. Your character will seem to have lost all fur data, but if you assign the Fur Data maps you exported to the corresponding slots of the XFur UI (the length map goes on Fur Data 0 while the grooming map goes on Fur Data 1) that information will be restored.
-###+</WRAP>
  
 \\ \\
Line 251: Line 250:
 \\ \\
  
-###+<WRAP justify>
 While XFur Painter is versatile enough to provide high quality results in most meshes, there are a few situations in which XFur Painter will not be able to reach certain areas or in which the groom will not work properly (for example, in cases where the character is mirrored). We suggest you to experiment and see which feature, applied in which way fit better. Since the Fur Data maps are plain textures it is easy to add even more detail in programs such as Adobe Photoshop, GIMP, etc. While XFur Painter is versatile enough to provide high quality results in most meshes, there are a few situations in which XFur Painter will not be able to reach certain areas or in which the groom will not work properly (for example, in cases where the character is mirrored). We suggest you to experiment and see which feature, applied in which way fit better. Since the Fur Data maps are plain textures it is easy to add even more detail in programs such as Adobe Photoshop, GIMP, etc.
-###+</WRAP>
  
 \\ \\
Line 265: Line 264:
 \\ \\
  
-###+<WRAP justify>
 There are many more things you can do with XFur Studio, from switching different Fur Layer / Fur Noise maps to achieve different styles of fur to using physics, advanced LOD, randomization to generate dozens of instances with different fur variations, snow and blood effects and much much more. Please read carefully the next sections of this online documentation to learn in detail everything you can do with XFur Studio. There are many more things you can do with XFur Studio, from switching different Fur Layer / Fur Noise maps to achieve different styles of fur to using physics, advanced LOD, randomization to generate dozens of instances with different fur variations, snow and blood effects and much much more. Please read carefully the next sections of this online documentation to learn in detail everything you can do with XFur Studio.
-###+</WRAP>
  
 \\ \\
Line 273: Line 272:
 \\ \\
  
-###+<WRAP justify>
 With XFur Studio, the possibilities for your fur covered characters are limitless, to bring your projects to the next level. With XFur Studio, the possibilities for your fur covered characters are limitless, to bring your projects to the next level.
-###+</WRAP>
 \\ \\
 \\ \\
Line 283: Line 282:
 ---- ----
  
-###+<WRAP justify>
 This online documentation is regularly updated as new features are added to XFur Studio. It contains detailed descriptions of every component, feature and setting of XFur Studio. Many of the topics covered here are quite advanced so we recommend to read thoroughly through all the sections before using these features in your projects. This online documentation is regularly updated as new features are added to XFur Studio. It contains detailed descriptions of every component, feature and setting of XFur Studio. Many of the topics covered here are quite advanced so we recommend to read thoroughly through all the sections before using these features in your projects.
-###+</WRAP>
 \\ \\
  
Line 292: Line 291:
  
 ---- ----
-### +<WRAP justify>
 Fur rendering in XFur Studio depends on a wide array of components and data to ensure the best balance between quality and performance. Thanks to its unique design and the careful tuning done over more than a year through every section of the system, XFur can achieve the best fur rendering for Unity available.  Fur rendering in XFur Studio depends on a wide array of components and data to ensure the best balance between quality and performance. Thanks to its unique design and the careful tuning done over more than a year through every section of the system, XFur can achieve the best fur rendering for Unity available. 
-###+</WRAP>
     
-### +
 These main components that control fur rendering in XFur Studio are :  These main components that control fur rendering in XFur Studio are : 
-###+
  
  
Line 306: Line 305:
     *  XFur Database Assets, which contain the patched meshes with the additional data required by XFur as well as a list of all the available shaders.     *  XFur Database Assets, which contain the patched meshes with the additional data required by XFur as well as a list of all the available shaders.
     
-### +<WRAP justify> 
 XFur Studio comes with all the assets, shaders and noise maps you will need to start adding fur to your characters, to ensure that everything works as "out of the box" as possibly.  XFur Studio comes with all the assets, shaders and noise maps you will need to start adding fur to your characters, to ensure that everything works as "out of the box" as possibly. 
-###+</WRAP>
 \\ \\
 ==== XFur Studio - System Modules ==== ==== XFur Studio - System Modules ====
Line 314: Line 313:
 ---- ----
  
-###+<WRAP justify>
 XFur Studio has different **Modules** that add new, advanced features to the fur simulation. From LOD management and dynamic performance adjustments to full randomization and physics, these modules offer a whole new array of possibilities for the fur simulation that XFur Studio provides. XFur Studio has different **Modules** that add new, advanced features to the fur simulation. From LOD management and dynamic performance adjustments to full randomization and physics, these modules offer a whole new array of possibilities for the fur simulation that XFur Studio provides.
-###+</WRAP>
 \\ \\
 === LOD Module === === LOD Module ===
  
-###+<WRAP justify>
 The LOD Module is fairly simple to use. It controls the quality of the fur in samples as the object gets closer or further away from the camera. The LOD Module is fairly simple to use. It controls the quality of the fur in samples as the object gets closer or further away from the camera.
-###+</WRAP>
  
 \\ \\
Line 328: Line 327:
 \\ \\
  
-###+<WRAP justify>
 The LOD MODE setting controls whether the LOD Module will have a bias towards higher quality fur, switching to higher sample counts at a greater distance or towards performance, keeping the sample counts low unless the camera gets very close to the object. The LOD MODE setting controls whether the LOD Module will have a bias towards higher quality fur, switching to higher sample counts at a greater distance or towards performance, keeping the sample counts low unless the camera gets very close to the object.
-###+</WRAP>
  
-###+<WRAP justify>
 The MAX DISTANCE slider controls after which distance the fur will switch to the lowest sample count. This is useful to control performance and ensure that the objects far away in the distance do not consume as many resources. While you can combine this with the Standard LOD Module included with Unity, you may need to add a XFur component to every LOD level of your model and it may introduce some conflicts with the way XFur works, since it directly interacts with the render in the middle of the XFur normal processes. Please keep in mind this when designing how your LOD system will work.  The MAX DISTANCE slider controls after which distance the fur will switch to the lowest sample count. This is useful to control performance and ensure that the objects far away in the distance do not consume as many resources. While you can combine this with the Standard LOD Module included with Unity, you may need to add a XFur component to every LOD level of your model and it may introduce some conflicts with the way XFur works, since it directly interacts with the render in the middle of the XFur normal processes. Please keep in mind this when designing how your LOD system will work. 
-###+</WRAP>
  
 \\ \\
Line 343: Line 342:
 \\ \\
  
-###+<WRAP justify>
 The randomization module allows you to assign different fur profiles or even completely random parameters to the fur of your characters at runtime easily. These changes are applied on startup, but they can also be called at will from code at runtime. The randomization module allows you to assign different fur profiles or even completely random parameters to the fur of your characters at runtime easily. These changes are applied on startup, but they can also be called at will from code at runtime.
-###+</WRAP>
  
-###+<WRAP justify>
 For each Fur enabled material that your model has, you can assign any number of fur profiles with information about fur length, thickness, occlusion, color, textures etc. These profiles are created by setting up any configuration you want in your characters and then pressing the EXPORT PROFILE button. For each Fur enabled material that your model has, you can assign any number of fur profiles with information about fur length, thickness, occlusion, color, textures etc. These profiles are created by setting up any configuration you want in your characters and then pressing the EXPORT PROFILE button.
-###+</WRAP>
  
 \\ \\
Line 355: Line 354:
 \\ \\
  
-###+<WRAP justify>
 **IMPORTANT : You can also use these profiles to switch fast and easily between different fur configurations as if they were templates by just dropping them into the LOAD FUR PROFILE slot in the XFUR - MAIN SETTINGS tab.** **IMPORTANT : You can also use these profiles to switch fast and easily between different fur configurations as if they were templates by just dropping them into the LOAD FUR PROFILE slot in the XFUR - MAIN SETTINGS tab.**
-###+</WRAP>
  
-###+<WRAP justify>
 Once you have exported a few profiles, you can assign them in the list for your material, adding or removing as many slots as you need. Once you have exported a few profiles, you can assign them in the list for your material, adding or removing as many slots as you need.
-###+</WRAP>
  
-###+<WRAP justify>
 If you enable the RANDOMIZED PARAMETERS feature, the randomization module will take two of the profiles you assigned and iterate over every single parameter, getting a random value for each one of them that is contained between the original values of both profiles. This way, for example, you could have a clear colored profile with short fur and a dark colored one with long fur and enabling the RANDOMIZED PARAMETERS feature would give you random fur variations that take the clear and dark profiles as its min. and max. variation points. If you enable the RANDOMIZED PARAMETERS feature, the randomization module will take two of the profiles you assigned and iterate over every single parameter, getting a random value for each one of them that is contained between the original values of both profiles. This way, for example, you could have a clear colored profile with short fur and a dark colored one with long fur and enabling the RANDOMIZED PARAMETERS feature would give you random fur variations that take the clear and dark profiles as its min. and max. variation points.
-###+</WRAP>
  
 \\ \\
 === Physics Module === === Physics Module ===
  
-###+<WRAP justify>
 The physics module is a quite demanding one, since it has to perform expensive computations to simulate physics over the fur strands. These operations can be dynamically scaled up and down depending on the instance's distance to the camera if the LOD module is enabled. However, this dynamic scaling can also be disabled by setting the LOD INFLUENCED MODE to Disabled. The physics module is a quite demanding one, since it has to perform expensive computations to simulate physics over the fur strands. These operations can be dynamically scaled up and down depending on the instance's distance to the camera if the LOD module is enabled. However, this dynamic scaling can also be disabled by setting the LOD INFLUENCED MODE to Disabled.
-###+</WRAP>
  
 \\ \\
Line 378: Line 377:
 \\ \\
  
-###+<WRAP justify>
 The BASIC MODE limits the physics simulation to a fairly simple approximation based on bones movement. The ANGULAR FORCES setting allows the rotation of both the object and the bones to affect the fur's movement. The BASIC MODE limits the physics simulation to a fairly simple approximation based on bones movement. The ANGULAR FORCES setting allows the rotation of both the object and the bones to affect the fur's movement.
-###+</WRAP>
  
-###+<WRAP justify>
 PHYSICS ITERATIONS refers to the number of calculations that can be performed, at max, on a single second. These are also dependent on the amount of vertices of the character so in a very complex character the max amount of iterations may not be reached if it is set to a high number, since in these cases performance is prioritized. PHYSICS ITERATIONS refers to the number of calculations that can be performed, at max, on a single second. These are also dependent on the amount of vertices of the character so in a very complex character the max amount of iterations may not be reached if it is set to a high number, since in these cases performance is prioritized.
-###+</WRAP>
  
-###+<WRAP justify>
 PHYSICS SENSITIVITY refers to the amount of movement that the bones have to perform before they are tracked by the physics simulation, while PHYSICS STRENGTH controls the amount of influence the bones and object's movement will have over the fur PHYSICS SENSITIVITY refers to the amount of movement that the bones have to perform before they are tracked by the physics simulation, while PHYSICS STRENGTH controls the amount of influence the bones and object's movement will have over the fur
-### +</WRAP> 
- +<WRAP justify>
-###+
 Finally, the GRAVITY STRENGTH is the amount of force that will be applied downwards to the whole fur and INERTIA STRENGTH controls the way that the forces applied to the fur will slow down with some slight inertia after the bones/object have stopped moving. Finally, the GRAVITY STRENGTH is the amount of force that will be applied downwards to the whole fur and INERTIA STRENGTH controls the way that the forces applied to the fur will slow down with some slight inertia after the bones/object have stopped moving.
-###+</WRAP>
  
-###+<WRAP justify>
 In XFur Studio, there are two modes to define which bones will affect the physics simulation. If Auto Track Bones is enabled, the first 64 bones of the rig will be automatically assigned to the simulation. This might not always be desirable as some rigs may use multiple bones for facial expressions, fingers or other elements that may not require the physics simulation and take up the space of more important bones such as limbs and accessories. In XFur Studio, there are two modes to define which bones will affect the physics simulation. If Auto Track Bones is enabled, the first 64 bones of the rig will be automatically assigned to the simulation. This might not always be desirable as some rigs may use multiple bones for facial expressions, fingers or other elements that may not require the physics simulation and take up the space of more important bones such as limbs and accessories.
-###+</WRAP>
  
-###+<WRAP justify>
 If you disable the Auto Track Bones feature you will be able to assign the bones that will be tracked manually. The limit is the same, 64 bones, but by assigning them manually you may be able to reduce greatly the work of the module by limiting it to only the highest priority ones. This feature is however fairly experimental in comparison to the Auto Track method, so it is recommended to keep your rigs simple and use it. If you disable the Auto Track Bones feature you will be able to assign the bones that will be tracked manually. The limit is the same, 64 bones, but by assigning them manually you may be able to reduce greatly the work of the module by limiting it to only the highest priority ones. This feature is however fairly experimental in comparison to the Auto Track method, so it is recommended to keep your rigs simple and use it.
-###+</WRAP>
  
-###+<WRAP justify>
 **IMPORTANT : Whenever you enable or disable the Auto Track Bones setting or make any change to the array of bones that will be tracked you must press the Rebuild Data button so that the corresponding information is patched into the model again. You cannot define different bones for different instances of the same model, as this information is patched across all of them** **IMPORTANT : Whenever you enable or disable the Auto Track Bones setting or make any change to the array of bones that will be tracked you must press the Rebuild Data button so that the corresponding information is patched into the model again. You cannot define different bones for different instances of the same model, as this information is patched across all of them**
-###+</WRAP>
  
 \\ \\
 === FX Module === === FX Module ===
  
-###+<WRAP justify>
 The last module available is the FX Module. The FX Module controls the special effects applied to the fur, particularly the weather effects (wind, snow, water) and the blood effects. These effects can be applied either through the global weather system, through a global direction to specify wind, snow and rain or through collisions with other objects and particles, using the FX_Collision, FX_Volume and FX_Particle components. The last module available is the FX Module. The FX Module controls the special effects applied to the fur, particularly the weather effects (wind, snow, water) and the blood effects. These effects can be applied either through the global weather system, through a global direction to specify wind, snow and rain or through collisions with other objects and particles, using the FX_Collision, FX_Volume and FX_Particle components.
-###+</WRAP>
  
 \\ \\
Line 417: Line 415:
 \\ \\
  
-###+<WRAP justify>
 The AUTO NORMAL UPDATE setting lets the component update the normals direction as the character is being animated ensuring that some effects, such as the snow coverage, always fall on the faces that point upwards regardless of the pose of the character. This way, even if the character is laying down for example, the snow will fall accurately on top of it. The AUTO NORMAL UPDATE setting lets the component update the normals direction as the character is being animated ensuring that some effects, such as the snow coverage, always fall on the faces that point upwards regardless of the pose of the character. This way, even if the character is laying down for example, the snow will fall accurately on top of it.
-###+</WRAP>
  
-###+<WRAP justify>
 The MAX ITERATIONS and the VERTICES BUFFER values work similarly to those in the Physics Module. The LOCAL WIND STRENGTH is a modifier to control how much does the wind affect the fur. This allows you to control the intensity of the wind on a per instance basis on top of the global control that the XFur_WeatherSystem allows. The MAX ITERATIONS and the VERTICES BUFFER values work similarly to those in the Physics Module. The LOCAL WIND STRENGTH is a modifier to control how much does the wind affect the fur. This allows you to control the intensity of the wind on a per instance basis on top of the global control that the XFur_WeatherSystem allows.
-###+</WRAP>
  
-###+<WRAP justify>
 For each effect, you can control the way it will be applied to the fur, either GLOBALLY (through the Weather System) or ON DEMAND (with the Collision / Volume / Particle components or through code ). You can also control the color, specularity and smoothness of every effect, their falloff (to control how much they spread), penetration on the fur strands and even how long they take to fade out For each effect, you can control the way it will be applied to the fur, either GLOBALLY (through the Weather System) or ON DEMAND (with the Collision / Volume / Particle components or through code ). You can also control the color, specularity and smoothness of every effect, their falloff (to control how much they spread), penetration on the fur strands and even how long they take to fade out
-###+</WRAP>
  
-###+<WRAP justify>
 **IMPORTANT : For better results, please assign a FX Noise texture to your fur material on the ADDITIONAL SETTINGS tab, in the FX PARAM NOISE slot. These textures contain special channels that give a better appearance to snow and blood when applied over the fur** **IMPORTANT : For better results, please assign a FX Noise texture to your fur material on the ADDITIONAL SETTINGS tab, in the FX PARAM NOISE slot. These textures contain special channels that give a better appearance to snow and blood when applied over the fur**
-###+</WRAP>
  
 \\ \\
Line 437: Line 435:
 \\ \\
  
-###+<WRAP justify>
 The FX_Collision module will apply boold, snow or water effects over the fur in the points where it detects a collision with the character. The FX_Volume will do the same but for any section of the model that enters the volume. Finally, the FX_Particles component will make the particles of a particle system apply fx over the fur upon colliding with it. The FX_Collision module will apply boold, snow or water effects over the fur in the points where it detects a collision with the character. The FX_Volume will do the same but for any section of the model that enters the volume. Finally, the FX_Particles component will make the particles of a particle system apply fx over the fur upon colliding with it.
-###+</WRAP>
  
  
Line 446: Line 444:
 \\ \\
  
-###+<WRAP justify>
 The XFur_WeatherSystem component is quite self-explanatory, offering you easy to understand controls over wind, snow and rain effects. The XFur_WeatherSystem component is quite self-explanatory, offering you easy to understand controls over wind, snow and rain effects.
-###+</WRAP>
  
 \\ \\
Line 454: Line 452:
 \\ \\
  
-###+<WRAP justify>
 Using these components and the FX Module amazing results can be achieved on any of the supported platforms with a perfect balance between performance and quality, even on VR projects. Using these components and the FX Module amazing results can be achieved on any of the supported platforms with a perfect balance between performance and quality, even on VR projects.
-###+</WRAP>
  
 \\ \\
Line 465: Line 463:
  
 ---- ----
-###+<WRAP justify>
 XFur Studio is intended to be used through the different UIs and tools to make the whole workflow as easy as possible. However, for advanced users and very specific situations you have some functions and interfaces available that grant you access to different parts of the system.  XFur Studio is intended to be used through the different UIs and tools to make the whole workflow as easy as possible. However, for advanced users and very specific situations you have some functions and interfaces available that grant you access to different parts of the system. 
-### +</WRAP> 
-###+<WRAP justify>
 All XFur classes are contained within the XFurStudio namespace. To call any function from the XFur system or any of its components, you must write **using XFurStudio** at the top of your C# script. All XFur classes are contained within the XFurStudio namespace. To call any function from the XFur system or any of its components, you must write **using XFurStudio** at the top of your C# script.
-### +</WRAP> 
-###+<WRAP justify>
 The main entry point for any function is the XFur System Component. Usually, in your scripts, you would access it like this :  The main entry point for any function is the XFur System Component. Usually, in your scripts, you would access it like this : 
-###+</WRAP>
 \\ \\
 {{ :xfurstudio_codeaccess.png?direct&600 |}} {{ :xfurstudio_codeaccess.png?direct&600 |}}
 \\ \\
-###+<WRAP justify>
 Where gameObject is the target object from which you want to access the XFur_System component. Where gameObject is the target object from which you want to access the XFur_System component.
-### +</WRAP> 
-###+<WRAP justify>
 To access the fur properties of any of the materials, you use the FurProfiles interface and the index of the fur material you want to edit. After this, if you have auto-complete enabled on your coding IDE, you should see all the available methods and variables with a small explanation of what they do :  To access the fur properties of any of the materials, you use the FurProfiles interface and the index of the fur material you want to edit. After this, if you have auto-complete enabled on your coding IDE, you should see all the available methods and variables with a small explanation of what they do : 
-###+</WRAP>
  
 \\ \\
Line 488: Line 486:
 \\ \\
  
-###+<WRAP justify>
 Any function that does not have a description should not be called by your scripts, as they are most surely intended for internal use only. Do not call nor use any internal function unless you are sure of what you are doing. Any function that does not have a description should not be called by your scripts, as they are most surely intended for internal use only. Do not call nor use any internal function unless you are sure of what you are doing.
-### +</WRAP> 
-###+<WRAP justify>
 The main functions that you can call from other scripts and that you may need at some point in the development of your project are the following :  The main functions that you can call from other scripts and that you may need at some point in the development of your project are the following : 
-###+</WRAP> 
  
-### 
 **On XFur_System.cs : ** **On XFur_System.cs : **
-###+
  
 \\ \\
Line 503: Line 501:
 \\ \\
  
-### +<WRAP justify>This function lets you assign a fur profile (profile) to the XFur system manually, to the specified fur material (material Index). This is useful if, for example, you are allowing your players to customize their characters and need to let them choose among a series of fur patterns. Simply assign the profile that corresponds to the choice of the player, and load it with this function to make the system load all the fur properties. 
-This function lets you assign a fur profile (profile) to the XFur system manually, to the specified fur material (material Index). This is useful if, for example, you are allowing your players to customize their characters and need to let them choose among a series of fur patterns. Simply assign the profile that corresponds to the choice of the player, and load it with this function to make the system load all the fur properties. +</WRAP>
-###+
  
 \\ \\
Line 511: Line 508:
 \\ \\
  
-###+<WRAP justify>
 Forces all materials (or the specific material with index equals to profileIndex) to update and apply any changes that you have made.  Forces all materials (or the specific material with index equals to profileIndex) to update and apply any changes that you have made. 
-###+</WRAP>
  
-###+<WRAP justify>
 **WARNING : Once an XFur System component is added to an object, it will override and take control over the Materials array of said object's renderer. If you want to swap the materials of the object at runtime through code you need to override both the original material from the corresponding XFur material profile (this step is optional on Unity 2018.3+) and the material itself on the sharedMaterials array of the renderer :** **WARNING : Once an XFur System component is added to an object, it will override and take control over the Materials array of said object's renderer. If you want to swap the materials of the object at runtime through code you need to override both the original material from the corresponding XFur material profile (this step is optional on Unity 2018.3+) and the material itself on the sharedMaterials array of the renderer :**
-###+</WRAP>
  
 \\ \\
Line 523: Line 520:
 \\ \\
  
-###+<WRAP justify>
 **Do not swap a XFur material for another XFur material. Use Fur Profile Assets instead.** **Do not swap a XFur material for another XFur material. Use Fur Profile Assets instead.**
-###+</WRAP>
  
  
xfur_studio_legacy.1586178464.txt.gz · Last modified: 2020/04/06 13:07 by irrsoft