5
$\begingroup$

I'm trying to create a series of planes in Geometry nodes, each with one frame of an image sequence, like the attached imageenter image description here

I did the above manually but I need to replicate over hundreds of frames! I cannot work out a way to do this.

I have instanced grids along a curve to create the frames but get stuck when trying to texture each instance with a different frame.

Any suggestions?

Many thanks!

$\endgroup$
1
  • 1
    $\begingroup$ Why don't you use import images as planes? $\endgroup$
    – Crantisz
    May 25, 2022 at 13:28

1 Answer 1

6
$\begingroup$

Since you seem to have a sequence of images with consecutive numbers (Image.1001.png, Image.1002.png, Image.1003.png, ...), you could actually solve this easily with UDIM.

enter image description here

enter image description here

Assuming you have several images and load them in the Image Editor into a UDIM image, you have the possibility to map various grids created in Geometry Nodes with different images with a single material.

For example, to create an image sequence as a UDIM texture, you can do the following:

  1. Create a new image (enable Tiled)

  2. Select the first file of your image sequence (This creates the number of UDIM tiles corresponding to the number of your image sequence)

  3. In the name of the image replace the number with the placeholder <UDIM>.

enter image description here

enter image description here

And in Geometry Nodes, proceed as follows:

  1. Create a square grid, and map the position of the points so that they can be further processed (in this case I map the positions to the vector range $(0, 0, 0)$ to $(1, 1, 0)$, because the grid with a size of 1x1 runs from $(-0.5,-0.5,0)$ to $(0.5, 0.5, 0)$.).

  2. Then instantiate these grids along a Mesh Line (or you distribute them however you want). The important thing here is that the number of instances is equal to the number of your images.

  3. In the next step you need to capture the rows and columns of these instances, because a default UDIM texture always uses 10 images per row.

  4. Then scale the individual instances to the aspect ratio of the images (In this example 1920 x 1080).

  5. Finally, multiply the direction vectors for U and V by the previously captured values for columns and row and add this to the previously created mapping.

So that this vector information can then be easily read in the shader via the node Attribute, I pass these values to the Group Output and assign an identifier there.

enter image description here

$\endgroup$
7
  • $\begingroup$ very nice +1 for that solution...but i think he doesn't have UDIM.... $\endgroup$
    – Chris
    May 25, 2022 at 16:56
  • $\begingroup$ @Chris Thanks! But I don't quite understand this. If you have an image sequence with consecutive numbers (Image.1001.png, Image.1002.png, ...), you can load it directly into a UDIM texture... $\endgroup$
    – quellenform
    May 25, 2022 at 16:59
  • $\begingroup$ oh...didn't know that. Sorry, my UDIM knowledge is very limited... $\endgroup$
    – Chris
    May 25, 2022 at 17:00
  • 1
    $\begingroup$ I too think this is a great answer, but am at a loss as to how to load an image sequence to fill UDIM tiles? $\endgroup$
    – Robin Betts
    May 25, 2022 at 17:07
  • 1
    $\begingroup$ Thanks! ... and for noobs like me .. the <UDIM> token picks up only valid UDIM tile-numbers, so if you're rendering your own, they must wind up named : prefix.1001.suffix .. prefix.1002.suffix .. etc $\endgroup$
    – Robin Betts
    May 25, 2022 at 18:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .