CINEVERSITY

    Maxon Logo
    • Login
    • Search
    • Recent
    • Popular
    • Users
    • Groups

    How do I repeat a ramp pattern on an object using the texture node?

    Question & Answers
    5
    19
    3492
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Dr. Sassi
      Dr. Sassi last edited by Dr. Sassi

      Hi Hoi,

      Here is a simpler example (less nodes), just using the first Ramp, but it explains very well the idea:
      https://www.youtube.com/watch?v=c5uhSkEiPRc
      This will help to go faster through the text below.

      Think of the Gray value-based Ramp as numbers, All between zero and one.

      When a certain "pixel" needs to be rendered (simplified said), the value from the Ramp will be requested; let's say it is 0.3 Somewhere in the middle, dependent on the interpolation.

      This value would then go into the second Ramp and use the Color that the gradient has at position 0.5

      Now we have used a multiplication after the first RRamp, so the example would be 0.5 times 20 (the number in the multiplication node, which can be set to anything you like) = 10

      The second Ramp would receive now 10, and that is outside of the gradient from 0-1.

      The next Node is now the critical one, ModuloModulo. Which is just a divider (like 10 divided by 4 equals 2.5), but it doesn't care about the numbers left from the period (2); it cares only about the value on the right side (.5)
      This is a value that the second Ramp can use for the gradient.

      When we take the first gradient, it has a lot of values between 0-1, but that results only in one gradient from black to white. One time.
      Multiplying this by 20 means it provides values between 0 and 20 as a list of increasing numbers.

      Which the Modulo, we use the ModuloModulo to divide it and get only the right side each time, which creates many short grades between the 0-20 value, but never exceeds the 2.5

      I used the divided by 4 to make a point, as dividing by one might be received as "abstract". But let's use the 20 divided by 1 and explore this.

      We need the second Ramp/Gradient to a maximum value of 1.0, so we divide this by one and always receive the remainder, never exceeding 1.0

      This means we get 20 black-to-white gradients, and that is each time translated into the color gradient of the second one.
      Ramp_Modulo.jpg

      Now I, the new Node, was an Add node (plus), which moved just the values up, and while animated, the whole gradient in this Node expression moved.

      I hope that helps a little bit, let me know if I missed a point, or where it stopped for you to create clarity.

      Cheers

      Dr. Sassi Sassmannshausen Ph.D.
      Senior Trainer, Maxon Master Trainer, L&D - Strategist
      Cinema 4D mentor since 2004, Member of VES, DCS.

      1 Reply Last reply Reply Quote
      • H
        Hoi last edited by

        wow, thanks for the great explanation and video reference! this definitely is a better method than jumping between apps to modify the ramp 🙂

        1 Reply Last reply Reply Quote
        • Dr. Sassi
          Dr. Sassi last edited by

          Thank you for the feedback, Hoi. 🙂

          Doing it in the node editor is nicer than moving in and out of the app.

          I'm sure after you have this as a muscle memory, you will expand this.

          I'm glad it was useful.

          Enjoy

          Dr. Sassi Sassmannshausen Ph.D.
          Senior Trainer, Maxon Master Trainer, L&D - Strategist
          Cinema 4D mentor since 2004, Member of VES, DCS.

          1 Reply Last reply Reply Quote
          • A
            atomician last edited by

            This is good, but I do find that this method doesn't produce a consistent pattern - in my case the repeated gradients in the middle are smaller then the ones on the ege of the texture.

            1 Reply Last reply Reply Quote
            • A
              atomician last edited by

              Ah, need to set the gradient interpolation to Linear of course!

              1 Reply Last reply Reply Quote
              • Dr. Sassi
                Dr. Sassi last edited by

                Thanks for updating your own question, atomician.

                Yes, for this we need linear values. Well spotted.

                Enjoy

                Dr. Sassi Sassmannshausen Ph.D.
                Senior Trainer, Maxon Master Trainer, L&D - Strategist
                Cinema 4D mentor since 2004, Member of VES, DCS.

                1 Reply Last reply Reply Quote
                • T
                  tear-one last edited by

                  i try this method with splines and work pretty well! thanks

                  1 Reply Last reply Reply Quote
                  • Dr. Sassi
                    Dr. Sassi last edited by

                    Thank you for you feedback, tear-one.

                    Enjoy your project

                    Dr. Sassi Sassmannshausen Ph.D.
                    Senior Trainer, Maxon Master Trainer, L&D - Strategist
                    Cinema 4D mentor since 2004, Member of VES, DCS.

                    1 Reply Last reply Reply Quote
                    • B
                      bench-sport last edited by

                      Hello, following this, it works, but it shows a universal projection even if I use object mode in UV projection. Any way to solve this so that all objects project according to their rotation?

                      image.png
                      image.png

                      1 Reply Last reply Reply Quote
                      • Dr. Sassi
                        Dr. Sassi last edited by Dr. Sassi

                        Hi bench-support,

                        Please have a look here.
                        CV4_2026_drs_25_RSrm_01.c4d

                        I rotated some of the UV polygons, and it is safer (additionally) to drag the UV Tag into the material (or write the exact name into it, to always ensure you have the correct one.

                        Screenshot 2025-11-25 at 9.44.30 PM.jpg
                        Is this working for you?

                        My best wishes for your project

                        Dr. Sassi Sassmannshausen Ph.D.
                        Senior Trainer, Maxon Master Trainer, L&D - Strategist
                        Cinema 4D mentor since 2004, Member of VES, DCS.

                        B 1 Reply Last reply Reply Quote
                        • B
                          bench-sport @Dr. Sassi last edited by

                          @Dr-Sassi Thanks for the reply. My particular case is using a material for various objects with user data node but combined with this repeated ramp bump map.. So what could be more effective than using just manually rotating UV map?

                          https://1drv.ms/u/c/cd71275177a2d3eb/IQAf6AjLHRbkR62wJvb5O0UUAUDhr_FHNGYOi1Q4lutPBoE?e=mNnNOY

                          1 Reply Last reply Reply Quote
                          • Dr. Sassi
                            Dr. Sassi last edited by Dr. Sassi

                            Hi bench-sport,

                            The UV-Map has a transform option (three values) and a rotation (single value), but there is no tiling for this Ramp effect. Which means the only way to cover the area is by scaling and offsetting. Which might be quite cumbersome, as the rotation and the scale are not uniformly during a rotation.

                            https://help.maxon.net/c4d/2026/en-us/Default.htm#html/COM_REDSHIFT3D_REDSHIFT4C4D_NODES_CORE_UVPROJECTION-NET_MAXON_NODE_BASE_GROUP_INPUTS.html?TocPath=The%2520Node%2520Editor%257CRedshift%2520Nodes%257CRedshift%2520Utility%2520Nodes%257CUV%2520Projection%257C_____3

                            Below are two examples, differentiated only where the scale and offset take place (UV Transform node)

                            CV4_2026_drs_25_RSrr_11.c4d
                            CV4_2026_drs_25_RSrr_12.c4d

                            Screenshot 2025-11-26 at 1.19.43 PM.jpg

                            The User Data was copied from the Node (Right Mouse Click, Copy UI),
                            Then pasted into the User Data (Click on the top entry UserData Default, to enable pasting)

                            For any file sharing, Wetransfer, DropBox, Google, Apple or Adobe Cloudservices. Data uncompressed during upload, URLs pasted fully and plainly.

                            All the best

                            Dr. Sassi Sassmannshausen Ph.D.
                            Senior Trainer, Maxon Master Trainer, L&D - Strategist
                            Cinema 4D mentor since 2004, Member of VES, DCS.

                            B 1 Reply Last reply Reply Quote
                            • B
                              bench-sport @Dr. Sassi last edited by

                              @Dr-Sassi Thanks for the examples!

                              1 Reply Last reply Reply Quote
                              • Dr. Sassi
                                Dr. Sassi last edited by

                                You're very welcome, bench-sport!

                                If there is any question, please let me know. Note: Nov 28th is a (US) Holiday here and I will be off-line.

                                My best wishes for your project

                                Dr. Sassi Sassmannshausen Ph.D.
                                Senior Trainer, Maxon Master Trainer, L&D - Strategist
                                Cinema 4D mentor since 2004, Member of VES, DCS.

                                1 Reply Last reply Reply Quote
                                • First post
                                  Last post