I want to render a bunch of circle SOPs with borders on a plane in orthographic 3D space. The trick is that I want each circle to have an three edge rings (concentric circles of a different color) of exactly 3 pixels each. What I mean is that if you cut the circle in half, it will be a solid color except 3 layers of 3 pixels of a different color at each edge. If I change the radius of the circle, I want the edge to remain the same thickness. Obviously, mapping a simple texture with an edge makes the edge get thinner when you scale the circle down.
I’m trying to do this with nodes, no shaders. Different textures, shaders or SOPs are fine. The three pixel number is arbitrary, just trying to simplify the problem.
This doesn’t handle the changing of the original circle’s size well… so that expression would need to change to account for the original proportion of the input circle.
Couldn’t get the above to work nicely. To be fair, it might have been my lack of patience and my inexperience with some of the systems involved. Ended up building a MAT texture out of circleTOPs that is based on the scale of the circle GEO it’s going to be applied to. Works well visually, and around 1ms cook time when the colors are changing. Not sure if that’s terrible or not.
Ohhkay - well - saw this just in time before calling it a night hmmmm.tox (2.4 KB)
For completeness 2 different approaches both involving a Tube SOP. First calculates the diameter of one end of the tube to match the 3 pixels per circle, the other one calculates the texture scale…
My final question is how to best make the inside of the circle an opaque color, separate from the edge color. (I know this reveals my lack of SOP/MAT skills but I will live with that embarrassment)
Inside color is only possible with option 2. For that I used a Layout TOP to add the background color, changed the texture repeat on the Constant MAT to Hold and halfed the scale on the Texture SOP.
Whats missing is Instancing. This can’t be instanced…