
Simple yet intricate, TTFE’s single-pivot system mimics multi-pivot foliage motion, inspired by Pivot Painter.Tested in Unity 2021.3.11f1+, 2022.3.1f1+, 2023.1.0f1+, 2023.2.14f1+, Unity 6 (6000.0.5f1), Unity 6 LTS ( 6000.0.23f1), Unity 6 Beta ( 6000.3.0b2).(SRP 12+, 14+, 15+, 16+ and 17+) are supported.Unity 6.3 beta is functional but not officially supported.* Default pipeline in use: Built-in. For URP and HDRP conversion, please install the necessary packages from the "Pipelines" folder!Bring your game worlds to life with the Toby Foliage Engine (TTFE) 2.0, a streamlined shader solution for stunning, wind-swept foliage.The Toby Foliage Engine (TTFE) delivers optimized, realistic wind and plant shading with a user-friendly interface. These Amplify Shader Editor-crafted shaders integrate seamlessly with PBR shading, using mesh-based vertex position volumes for dynamic wind effects that are fully customizable via material settings. Perfect for game foliage, TTFE balances performance and quality. There is no need for complex conversion steps, as the shaders streamline the process.Try out the light version for free: Toby Foliage Engine - LightYou can purchase the art assets separately here: Vegetation Pack - Toby Foliage Engine Assets○ Compatibility✓ TTFE supports various third-party terrain and vegetation tools like Gaia and Nature Renderer. (Tested with Nature Renderer)○ FeaturesUser Interface and ControlRevamped User Interface: A complete UI overhaul for intuitive navigation and control.Global Controller (TTFE): Seamlessly adjust global environmental settings, including wind, seasons, and other dynamic parameters.Real-Time Season Control: Dynamically switch between seasons with support for snow, wetness, randomized color variations, and contrast adjustments.Wind Direction Control: Rotate wind direction effortlessly using an intuitive controller gizmo.Wind SystemsDual Wind Systems: Choose between "Gentle Breeze" and "Strong Wind" modes, interchangeable in real time.Automatic Wind System: Features adjustable wind mask volumes defined via material settings for precise control.Realistic Wind Behavior: Enhanced trunk and branch bending system for lifelike motion.Dynamic Wind Interaction: Supports player and physics-based interactions with plants, including cloth physics for natural movement.Shading and RenderingHigh-Performance Shaders: Optimized for all platforms, including mobile, with fast and efficient rendering.Accurate PBR Shading: Delivers realistic material rendering across Built-in, URP, and HDRP pipelines.Innovative Deferred Translucency: Features "Translucency AO" for automatic occlusion in shadows, compatible with HDRP diffusion profiles.Translucency Fluffiness: Creates a fuzzy, natural appearance for grass and foliage.Self-Shading and Occlusion: Includes faux-mobile shading with vertex color features, vertex ambient occlusion, and self-occlusion for enhanced depth.Uber Cliff Shader: Tri-planar cliff shader with grass/snow coverage, accurate edge slope angles, and dual-layer support.Terrain Shader: Full integration with terrain systems, supporting snow and seasonal effects.Perspective Correction: Adjusts grass angles for optimal viewing from top-down perspectives.Full Specular Control: Adjust and customize specular parameters in all pipelines.Custom Normals: Secondary normal map set for custom normals.Emission: Supports emissive materials on fluorescent plants for a striking effect.Additional FeaturesAmplify Shader Functions: Robust support for advanced shader customization.Full Mesh Shader Integration: Seamlessly integrates with the TTFE controller for consistent behavior across assets.Nature Prefabs: Expanded library of grass, plants, and other environmental assets.Nine Example Scenes: Showcase features and provide learning resources for implementation.Appendices System: Enables attachment of hanging objects to main bodies or pivots for dynamic effects.Material Matcher: A utility for aligning material properties across assets.Terrain Plants to Prefab Converter: A non-destructive converter tool that transforms terrain plants into prefabs.Optimization and CompatibilityComplete Package Optimization: Streamlined for performance across all supported platforms.Modern Shader Integration: Utilizes global variables for fast and flexible shader management.Full Compatibility: Supports Built-in, URP, and HDRP pipelines, with optional fixes for Built-in rendering.○ Future UpdatesAmplify Impostor integration and more.○⚑ Limitations🞫 TTFE is designed to work with instancing; static batching is not supported.🞫 While Unity's built-in instancing is supported, using a third-party instancing solution is recommended for optimal performance, as the default option may not yield significant performance improvements.🞫 TTFE is slightly more expensive for mobile, but it can be optimized by removing features or using the mobile version of the shaders.🞫 Shader Model 4.5+ capable devices are required (Desktop / High-End Mobile).🞫 While Mobile is supported, the scenes are intended for performance testing and will not be suitable for mobile devices (performance-intensive scenes).🞫 Only the latest Unity (LTS) versions are officially supported.⚑ Due to the employed method, visible stretching may occur in the trunk and branches. Adjust the material settings until the desired outcome is achieved.⚑ The TTFE feature is functional without the implementation of vertex colors. However, green vertex color is necessary for the "flutter feature" to work on leaves. Grass does not require any vertex colors.⚑ TTFE is not a perfect alternative and may not produce results identical to those of Pivot Painter. The wind only relies on a single point of rotation!!⚑ Performance Intensive Scenes! The demo scenes were created to test the performance of the TTFE shaders, which can be compared with other shaders or used for testing. For lower-end devices, you can set the "LOD bias to 1" in your "Preferences -> Quality settings".⚑ Setting your prefabs to static will break the shader due to a lack of support for static batching. If you want to bake lighting, first bake and then uncheck "static" after you're finished.⚑ Subsurface Scattering bug in Built-in RP Deferred due to the "light direction node". Use the mobile version of the shaders if you encounter lighting glitches.○⚑ Player Interaction LimitationsSimple Player InteractionShader interaction with touch bedding animation. Works with any prefab as well as with terrain plants. It can be switched between multiple players.🞫 Limitations: Supports only one interactor at a time.Physics InteractionWorks with an unlimited number of interactors at the same time.🞫 Limitations: Doesn't work on terrain objects, as the terrain has its own collision system that is different from the default mesh. Use the "Terrain Plants to Prefab Converter" script as a workaround.○⚑ Terrain Requirement⚑ To ensure compatibility with the Global Controller (TTFE) when using prefabs as terrain trees or details on either Unity's default terrain or TTFE terrain, at least one instance of each prefab mesh with its associated material must be present in the scene. Without an instance of each material, the Global Controller will not function correctly.○ FeedbackFor questions, follow the Unity forum thread or contact me via email:florianalexandru05@gmail.comSupport Discussion ThreadOnline Documentation (To be updated soon)○ Polycount and texture specifications*(Triangles counting only LOD0) This list only presents a small example of a few meshes.Cliffs and rocks:CliffRockGCATA_A: 8609 triangles.CliffRockGCATA_B: 8480 triangles.CliffRockGCATA_C: 7424 triangles.CliffRockGCATA_D: 2840 triangles.CliffRockGCATA_E: 2072 triangles.CliffRockGCATA_F: 338 triangles.CliffRockGCATA_H: 228 triangles.CliffRockGCATA_H: 228 triangles.Props:IrregularStones: Under 600 triangles.Other Props: Under 1000 triangles.Vegetation:Various grasses: Under 2000 triangles (per clump).Various Bushes: Under 4000 to 700 triangles.Trees:*Notice! These assets are very dense and are considered mid(low poly) at lod0.JuniperGCATA_B: 39849 triangles.JuniperGCATA_F: 27521 triangles.JuniperGCATA_G: 24516 triangles.JuniperOldGCATA_A: 36523 triangles.JuniperOldGCATA_B: 29531 triangles.ShrubTrees: Under 13000 to 7000.Textures- Texture sizes: 4096 x 4096px (the majority of the texture atlases); 2048 x 2048px, 1024 x 1024px, 512 x 512px, 256 x 256px (tile textures, smaller texture atlases, particles, and splats).- Texture formats: "Tif" (if available), "Png" (all albedo, normal maps, height maps, and gloss/ao maps).Standard metalness shader workflow. Merged maps for the metalness/AO/Gloss.Metalness/ao/gloss" (MAG) are saved as transparent png textures.Other informationRigging: NoAnimation count: 0UV mapping: YesLOD information: 4 LODSTypes of materials and texture maps: PBR