Search - User list
Full Version: Instanced Meshes. How to customize their material?
Root » Houdini Engine for Unreal » Instanced Meshes. How to customize their material?
Hello guys,

my goal is to create a semi-procedural building (with interiors too) and use it in UE4.
As far as I understand, for a good performance in UE I should make my building modular, and in a Houdini-UE4 workflow this means using Object Instances.

I've some questions regarding instances:

  1. Let's say myBulding.OTL inside UE4 has 600+ instanced windows: when I baked it down, the new blueprint will features a SINGLE “instanced mesh component”. This component contains my 600+ window instances.
    Problems arise when I want to texture them and have a little bit of control and variation over my material applied to my instances. “PerInstanceRandom” is useful but not enough.
    For example: what if I want a color progression (from black to white) on my instances? What if I want specific instances (like group 50-100) to be assigned to a specific Normal Map inside my base material? A “PerInstanceIndex” would be super-useful.
    But as far as I understand there's no way the material can access the “Index” of the currently evaluated Instance (which is weird because it already can get the “PerRandomIstance”).
    Also, if I move to the blueprint class itself, I can only use the “GetInstanceCount” function to retrieve the total amount of instances inside the “instanced mesh component” created by Houdini. But there's no way I can retrieve the current Index. So I cannot perform any per-instance customization inside my material. And of course I can't assign a totally different material to a specific instance.
    1A) Can you confirm it or am I missing something trivial?
    1B) Any workaround?

  2. I guess it's an already known issue: in case of digital assets with lots of different type of instances (like a procedural building would be with instanced doors, windows, etc etc), it would be super useful if their name could be kept after the bake. Now you'll get a generic “InstancedStaticMesh0,1,2,3,etc.”

thanks for any help!
You can't change parameters on the material for an individual instanced mesh because they are all done in one draw call. However you could use AbsoluteWorldPosition to do some per-instance customization.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB