Page MenuHome

texture coordinates using an object is not updated when an instance of the collection is created
Closed, DuplicatePublic

Description

System Information
Operating system: Windows-10-10.0.17134 64 Bits
Graphics card: GeForce GTX 970/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 417.71

Blender Version
Broken: version: 2.80 (sub 75), branch: master, commit date: 2019-07-29 14:47, hash: rBf6cb5f54494e
Worked: (optional)

Short description of error
If the material of an object has texture coordinates using another object when the collection is instantiated the material does not update the coordinate according to the location of the instance. The texture coordinate remains where the object is in the collection.

Exact steps for others to reproduce the error
1 create a collection
2 create an object
3 apply a material with a texture whose coordinates are obtained by means of the "texture coordinate" node
4 an empty object is created and chosen as an object in the "texture coordinate" node of the previous object
5 an instance of the collection is created
6 when moving the instance the coordinate based on the second object is not updated according to the position of this object within the instance, it remains where the original object of the collection is.

  translated with google :P

Event Timeline

Philipp Oeser (lichtwerk) lowered the priority of this task from 90 to 30.Aug 1 2019, 1:44 PM

Not sure I understand correctly...

Here is a file:

  • texture coordinates of the instance seem to be relative from the location of the instance to the empty
  • texture coordinates of the "original" seem to be relative from the location of the "original" to the empty

What would be the expected behavior vs. what is actually happening?
Sorry if I am misunderstanding, but the behavior I see is actually what I would expect?

the empty also inside the collection, then there you can see that the instance has the empty and as it is supposed everything moves together but the texture remains where the empty "original" is in the collection and is not updated with the empty of the instance.

it is as if the material did not consider the instantiated object and retains the original object in the coordinate node

the case would be that I create an entire object and apply textures using coordinates according to other objects within the same collection and then use instances of the collection.

Philipp Oeser (lichtwerk) raised the priority of this task from 30 to 80.Aug 1 2019, 2:49 PM

Ah Ok, get it, so it would be like

Not sure, but assume this cannot be supported efficiently?
CC @Clément Foucault (fclem)
CC @Brecht Van Lommel (brecht)

Now is the case I say. Apparently the instantiation does not reach that aspect of the materials. Thanks for your time!

Actually, there is kind of a way to achieve this (subtracting the Object Info > location from the Texture Coordinate > Object coordinates), see

So maybe I spoke to soon [just forgot that we have access to per object location in the shader tree], not sure if that fits your needs @Daniel (entumonitor)?

Thank you! If it is very useful! Sometimes one loses perspective on the info that can be accessed.