Details
-
Suggestion
-
Resolution: Won't Do
-
Not Evaluated
-
None
-
None
-
None
Description
In 3D content creation software it is quite common to have node-based material systems.
This approach could be used also for meshes, which would greatly improve current workflow and reusability.
Currently setting a mesh is only done by loading it from file or creating one in code, managing and assigning it (also) in code. For example, a designer wants to have a grid mesh NxM sections to apply deformation shader to it. What's currently done is that mesh gets created in 3D software, then exported and reexported multiple times to make sure it looks right.
What could have been done is that certain GridMeshProvider (previously created by engineer) gets assigned to the "source" slot of the mesh object. It has (at least) two parameters to tweak: N sections and M sections.
This way to load a mesh from file instead designer would assign certain MeshAssetProvider that has (at least) one property: filename.
In the image above Map #3 and Map #4 can be seen as MeshAssetProviders as they load asset from file. While Map #2 is a certain node that provides with a procedurally generated asset, similar to GridMeshProvider.
To extend the system a MeshProvider can reference other mesh providers, say, we have a CityMeshProvider that references several types of buildings loaded from files. This node would populate a city based on set of parameters.