alelievr / Mixture

Mixture is a powerful node-based tool crafted in unity to generate all kinds of textures in realtime
https://trello.com/b/2JiH2Vsp/mixture
MIT License
1.18k stars 124 forks source link
graphics-programming node-editor procedural-generation texture-synthesis

Discord openupm MIT License Documentation

Mixture is a powerful node-based tool crafted in unity to generate all kinds of textures in realtime. Mixture is very flexible, easily customizable through ShaderGraph and a simple C# API, fast with it's GPU based workflow and compatible with all the render pipelines thanks to the new Custom Render Texture API.

Getting Started

Installation

The current version is compatible with Unity 2022.2, for older versions you can use previous releases.

Instructions Mixture is available on the [OpenUPM](https://openupm.com/packages/com.alelievr.mixture/) package registry, to install it in your project, follow the instructions below. 1. Open the `Project Settings` and go to the `Package Manager` tab. 2. In the `Scoped Registry` section, click on the small `+` icon to add a new [scoped registry](https://docs.unity3d.com/2020.2/Documentation/Manual/upm-scoped.html) and fill the following information: ``` Name: Open UPM URL: https://package.openupm.com Scope(s): com.alelievr ``` 3. Then below the scoped registries, you need to enable `Preview Packages` (Mixture is still in preview). 4. Next, open the `Package Manager` window, select `My Registries` in the top left corner and you should be able to see the Mixture package. 5. Click the `Install` button and you can start using Mixture :) ![](docs/docfx/images/2020-11-09-11-37-01.png) :warning: If you don't see `My Registries` in the dropdown for some reason, click on the `+` icon in the top left corner of the package manager window and select `Add package from Git URL`, then paste `com.alelievr.mixture` and click `Add`. Note that sometimes, the package manager can be slow to update the list of available packages. In that case, you can force it by clicking the circular arrow button at the bottom of the package list.

Documentation

Here are some useful documentation links:

Roadmap

The roadmap is available on Trello: https://trello.com/b/2JiH2Vsp/mixture. If you have a Trello account, you can vote on cards to prioritize a feature.

Community

Discord

Join the Mixture Discord!

Feedback

To give feedback, ask a question or make a feature request, you can either use the Github Discussions or the Discord server.

Bugs are logged using the github issue system. To report a bug, simply open a new issue.

Contributions

All contributions are welcomed.

For new nodes, check out this documentation page on how to create a new shader-based node. Once you have it working, prepare a pull request against this repository.
In case you have any questions about a feature you want to develop of something you're not sure how to do, you can still create a draft pull request to discuss the implementation details.

Gallery / Cool things

You can open a Mixture graph just by double clicking any texture field in the inspector with a Mixture assigned to it.

Surface Gradient powered normal map operations.

Extract buffers (depth, normal, color or position) from the rendering of a prefab and use it directly in the graph (HDRP Only).

Fractal nodes in Mixture: image

Mixture Variants:

https://user-images.githubusercontent.com/6877923/115474571-03c75800-a23e-11eb-8096-8973aad5fa9f.mp4

Earth Heightmap node:

https://user-images.githubusercontent.com/6877923/123006036-64e2e780-d3b7-11eb-922e-018994b32da5.mov

Fluid simulation:

https://user-images.githubusercontent.com/6877923/125816983-610905ce-dd7a-4cbc-8559-e1e61ed5e33c.mp4