Textures not unique in identical Unique components


#1

I’m creating a model which is built from a variety of components. This model is then exported as a Collada file, and then loaded into threejs, using the threejs ColladaLoader. All works well, except for a small issue involving the component textures.

Within my model, the same components are used several times in different positions, resulting in multiple instances of identical components. I’m able to make each instance of each component “unique”, and I’m able to successfully reference each unique instance component within the threejs visualisation. All is good, except for the textures.

These instances are identical apart from their Name and Definition Names, and as a result their textures are all the same. Looking inside the .dae file exported by Sketchup, it appears that it does create a unique geometry for each unique component, but it doesn’t create a unique texture, instead, the textures for each unique component are pulled from the pool in library_materials. Each otherwise unique component is therefore using the same references to the textures.

When this is loaded into threejs, it replicates all this, and creates unique components, but the textures are common. So if you try to reference the texture of a unique component, all the instances of that texture are referenced… across every instance of the unique components

Any way around this? Or am I doing something wrong? TIA, James


#2

Even though you make a component instance unique, it’s still identical to any other instances born of the same parent until you change it. The benefit of using unique components is that they don’t automatically propagate changes to other instances. But you still have to make them different for them to be different.

In other words, after you make a unique component, you have to paint it with a unique texture or it will have the same texture as other unique offspring of the same original parent.

-Gully


#3

OK, I understand that.

The problem with that approach is that it means that I have to change every texture, and every effect on every instance, and make then all different across all the instances…


#4

I don’t know if I would call it “an approach.” That’s just the way the program works.

-Gully


#5

If the component is one flat colour (or one texture) then use the “default” texture for each face in the component and simply click to fill each component with a different fill.

(personally I really like the way it works)

You can re-name a fill, then select the original fill and use it, then re-name that instance, then keep going for each fill. This way every fill has a unique instance that can be changed, but they all look the same (until you change them).

You can r-click on a texture and “Make unique texture”, but I wouldn’t recommend it - this creates a new bitmap texture to the shape of the enclosing lines at the current resolution: there are better ways to achieve the same results.