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.
    • H
      Hoi last edited by

      This is amazing, it would be great to get some technical and math background about the setup when you have some time. Thank you!

      1 Reply Last reply Reply Quote
      • 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