Metallic Scribbler

This is a simple imitation of https://www.instagram.com/p/BosaT7iAJwA/. (This composition uses gradient noise for the line’s path, instead of the original’s second-order pendulum.)

MetallicScribbler.zip (5.48 KB)

5 Likes

@smokris sweet comp!

1 Like

When this comp was first posted I liked it so much that I set out to try expanding upon it with a mesh made of triangles. That didn’t work out, seemed like the method using lines was specific to this and a bit of a dead end. The problem is texturing – so far I cannot get the UV mapped so the gradient behaves the same as @smokris’s. I’m revisiting, still wondering if it is possible.

Right now I have a setup with quads created with Make Triangles Object. I can get the gradient onto the object, but there are issues, UV is not mapped correctly… Changing point order for triangles does not help – counterclockwise, clockwise, other combos, all the same. Wondering if there is some other way to interleave the input points or something?

Clean quad structure:

Cube mapping, would seem this would be the correct setting but the UV is like half correct, half not:

Spherical shows the mapping issue for each quad a little better, how the mapping is flipped or backwards or something:

Using Remove Texture Coordinates makes the object smooth but loses the original gradient mapped across the object. I guess because it reverts to unlit color shader, one color per object instead of a gradient (image) mapped across each object?:

…which looks nice, but the point of @smokris’s comp was to map the gradient like Zach Lieberman’s original:

Help? (Attached comp does not require @smokris’s subcomps, expanded for testing.)  

MetallicScribbler-QuadsFromTriangles.vuo (17.8 KB)

I’ll try and explain what I understand to be going on here.
A quad is made of two triangles. UV’s should be mapped to a quad (not a triangle).
You need to find the corner verts of the quad and address the UV coordinates to them in the correct order.

The only way I found to do this was in version 1.2.x using the Parabox nodes. If you tear apart this comp you will see what was required: https://community.vuo.org/t/-/6287

Oh, I’m aware of your comps with the cylinders. Thing is, it’s a finite shape that gets animated, and I don’t quite know how to to apply something like it to drawing or random, unexpected animations. So I tried again, hoping something would look ok using built-in nodes (since all the parabox stuff is abandoned… why I kinda try to stay away from third party stuff, unless it’s for a special project. I like things to keep working, cuz sometimes it takes me a long time to figure something out…) Also I approached this after @jstrecker said Team Vuo is not including texture coordinate support in the new Get Vertices because nothing in Vuo currently uses it.

I’m still learning about shaders. They’re really good at gradients… can a Vuo shader / ISF format receive vertices and possibly map UV?  

Same comp as above, reposted just to be clear – is this expected behavior or is it a bug how it only shades some properly?

MetallicScribbler-QuadsFromTriangles.vuo (17.3 KB)

Good question. I wasn’t sure, so I created a simplified version of your composition to understand the behavior (1st attached composition). Instead of a constantly changing shader, each rectangle from Make Triangles Object is now shaded with a gradient that goes from yellow at one corner to blue at the opposite corner.

My initial hypothesis was that the composition would show a series of identical rectangles. If I understand correctly, that’s essentially the behavior you were expecting to see with your composition (except they would not be identical in your case, just facing the same way).

With Make Triangles Object’s Texture Mapping set to Cubic, what I actually saw was that the rectangles flipped several times along the path of the ribbon.

With Texture Mapping set to Spherical, the rectangles still flipped from time to time, although less often.

I discussed with a coworker and learned that both the Cubic and Spherical texture mappings are behaving as they’re supposed to. As the rectangle’s orientation changes, it gets mapped to different faces of an imaginary cube or to a differently positioned imaginary sphere.

Instead of the texture being mapped based on the rectangle’s orientation, I think you want the UV coordinates at the same points for all of the rectangles. For that, you could use Make Parametric Object (2nd attached composition; rotation is off, but it’s the basic idea).

MetallicScribbler-QuadsFromTriangles-mod.vuo (18.3 KB)

MetallicScribbler-QuadsFromTriangles-mod3.vuo (20.4 KB)

1 Like

@jstrecker, much appreciation for you taking the time with this. I’ll chip away with your version using Make Parametric Object.

Hmm, there are things I don’t get here with the last mod – attached comp is mod4, basically just edited to make the animation same as the original.

First, what is the |-1 for Z on Make Parametric Object? I don’t get the math and I can’t retype it in a new instance of the node.

Second, this does solve the issue of mapping the texture/material to the UV’s, but I haven’t solved the problem of creating a “seamless” object, where current “quad” connects/shares points with the previous – i.e., this makes multiple copies of the parametric object all oriented in the same direction. So at least right now this appears to be about the same as @smokris’s original, just with a parametric object node instead of a line strip.

Persistence aside, I wish I knew what skills I’m lacking to make something like this work – knowledge of parametric surfaces + UV mapping?

 

MetallicScribbler-ParametricObject-mod4.vuo (20.7 KB)

First, what is the |-1 for Z on Make Parametric Object?

That’s a capital I. From the node documentation:

Variables I and J — the integer index of the point, ranging from 1 to Columns and 1 to Rows, respectively

Since there are 2 rows, I-1 is 0 for the first row and 1 for the second row. It just gives you the same Z values as in your Front Left, Back Left, Front Right, Back Right.

I haven’t solved the problem of creating a “seamless” object, where current “quad” connects/shares points with the previous

Looks like you just need to rotate the quads 90º? Like venetian blinds :smiling_face: When I say “just”, it may be easier said than done to figure out the right transform at the right place (I got kind of confused myself, which is why my mod3 composition is simplified), but ultimately I think that’s all you need to do.

Ah, missed that documentation, thank you for clarifying.

I tried some rotating, no luck in the first go – yeah, the venetian blinds thing… Maybe something like atan2 could work, ie, something where the angle is calculated as it goes based on two (consecutive) sets of coords.