{"id":17975952,"url":"https://github.com/tuxalin/vegetation-shader","last_synced_at":"2025-03-25T15:31:01.870Z","repository":{"id":91220406,"uuid":"201970706","full_name":"tuxalin/vegetation-shader","owner":"tuxalin","description":"A procedural wind material for vegetation in UE4.","archived":false,"fork":false,"pushed_at":"2019-08-21T17:28:22.000Z","size":25949,"stargazers_count":20,"open_issues_count":0,"forks_count":9,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-01-30T13:19:54.085Z","etag":null,"topics":["hlsl","material","procedural","shader","ue4","wind"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tuxalin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-08-12T16:43:56.000Z","updated_at":"2024-01-30T11:03:51.000Z","dependencies_parsed_at":"2023-09-21T20:13:29.449Z","dependency_job_id":null,"html_url":"https://github.com/tuxalin/vegetation-shader","commit_stats":{"total_commits":7,"total_committers":2,"mean_commits":3.5,"dds":0.1428571428571429,"last_synced_commit":"5bb72ca4d6f31d4b218a4c1ff180d9a40ac407db"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuxalin%2Fvegetation-shader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuxalin%2Fvegetation-shader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuxalin%2Fvegetation-shader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuxalin%2Fvegetation-shader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tuxalin","download_url":"https://codeload.github.com/tuxalin/vegetation-shader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245489756,"owners_count":20623789,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hlsl","material","procedural","shader","ue4","wind"],"created_at":"2024-10-29T17:21:24.567Z","updated_at":"2025-03-25T15:30:56.854Z","avatar_url":"https://github.com/tuxalin.png","language":null,"funding_links":[],"categories":["Physic :"],"sub_categories":["Videos"],"readme":"# Procedural Wind  \nA procedural wind material for vegetation in UE4.\n\n## Features\nThe material is designed for various vegetation types like trees (trunk and foliage), branches and bushes.\n\nFeatures:\n- configurable trunk animation such as bending or axis drag\n- configurable foliage animation for branches and leaves via edge and branch attenuation\n- material collection for controling the global wind settings\n- level of detail\t\n\n## Usage\n\nThere are two material functions that compute the wind displacement:\n- TreeWind, designed for trees, composed of a trunk and foliage animation\n- TreeTrunkWind, contains no foliage animation and can be used for LOD materials\n- FoliageWind, designed for bushes, composed of a main bending and foliage animation\n- FoliageWindLow, contains no foliage animation and can be used for LOD materials\n\nThe material functions are easy to use and only require the per-branch data:\n![material-usage](screenshots/material_usage.png)\n\nThus, the vegetation assets will require the branch data such as:\n- edge attenuation, for sideways movement of the leaf edges\n- branch attenuation, for vertical movement of the leaf\n- branch phase, phase variation of the leaf\n- branch weight, weight of the foliage animation (eg. zero for trunk vertices)\n\nThe foliage data can be stored in the textures (left is the edge attenuation, right is the branch attenuation):\n![texture-data](screenshots/texture_data.png)\n\nNOTE. The trunk will have a branch weight of 0 and not use these.\n\nOr in the vertex colors (red channel is the branch weight, green channel is the branch phase):\n![vertex-data](screenshots/vertex_data.png)\n\nNOTE. In the above case the branch weight is inverted, i.e. 1.0 weight for trunk.\n\nThe global wind settings can be controled in the WindSettings material collection.\n\n## Preview\n\n[![video](screenshots/wind_main.png)](https://www.youtube.com/watch?v=XKdIfGX-c2Q)\n\nGlobal wind settings:\n\n![wind-settings](screenshots/wind_settings.png)\n\nMaterial settings:\n\n![material-settings](screenshots/material_settings.png)\n\n## Contributing\n\nBased on:\n- [Vegetation Procedural Animation and Shading in Crysis by Tiago Sousa](https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch16.html)\n- [GPU-Generated Procedural Wind Animations for Trees by Renaldas Zioma](https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch06.html)\n\nBug reports and pull requests are welcome on GitHub at https://github.com/tuxalin/vegetation-shader.\n\n## License\n\nThe code is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftuxalin%2Fvegetation-shader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftuxalin%2Fvegetation-shader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftuxalin%2Fvegetation-shader/lists"}