My objective is to create a custom Slim node that procedurally generates a geometric incandescence. Additionally, my custom slim node can be used as a "Velocity Calculation" shader. The node can be connected to a GPSurface and shade many objects with variations of the pattern depending on the values of a user attribute or primvar. In my example, I have used Motion Capture animations from the Maya Visor. The characters from Pixar's "Inside Out" greatly inspired me to research and development methods to make a character incandescent.



dPdtime Slim Node:




Whatever area of the character is moving the most will be white. The sections of the video where there is the most movement, the entire character becomes white. The second half of the video has an inverted the shader color.




Stills:







The variation of stills were made by inverting the shader and background or camera environment color.





dPdtime Slim Node Breakdown:




"dPdtime" is the surface postion P changing per unit time, as described by motion blur in the scene. I brainstormed many different methods to achieve my desired "Character Animation Incandescence". The velocity of "Point P" from one frame to next is calculated to produce the difference of the 2 frames. A motion vector or vector map produce a data map which can be composited to produce a similiar look compared to my slim node. To enable my slim node, motion blur has to be turned on in the render settings.



        #__custom parameters End______________
  
        parameter float result1 {
            label "Float Out"
            access output
            display hidden
            }
        parameter color result2 {
            label "Color Out"
            access output
            display hidden
            }
        RSLFunction {
        void cutrSwirlST (
            color col_var;
            point  Q;
            vector dQu;
            vector dQv;
            // parameter vars goes here...
            float motion_scale;
            output float result1;
            output color result2;
            )
        {
        float    s_man = mod(xcomp(Q),1);
        float    t_man = mod(ycomp(Q),1);
        result1 = length(dPdtime) * motion_scale;
        result2 = col_var;
        }

View Slim Node

Download Slim Node





Above is a screenshot of my Slim project. I connected my Slim node to the "Incandescence" parameter of a GPsurface.





An early test of my slim node using dPdtime and Motion Blur connected to the "Incandescence" of a GPsurface:





I have animated the CV's of the Nurbs Sphere on a 5 frame timeline. The CV's that are moving are white and the non-animated CV's are black. This test shows the velocity of shape can be displayed.






Spiral Pattern Experimentation:





Artist can experiment with multiple parameters to adjust to find the perfect look they desire. In the video, I played with the values of every node to better understand how it works.




(Above) The multiple connections and parameters of the slim node and GPsurface


(Above) the spiral pattern used to drive my custom slim node



Arni or "X-Ray Effect" Slim Node Breakdown:



I have utilized an X-Ray slim node developed by Professor Kesson. The X-Ray slim node utilizes the viewing vector of "camera space" and the edge of the geometry it is looking at.





    //get angle of viewing vector and surface normal
        float dot = normalize(N).normalize(-I);
        dot = abs(pow(dot,contrast));
        //less confusing to artist
        float edgeMin = 1 - edge_min;
        float edgeMax = 1 - edge_max;
        result1 = smoothstep(edgeMax, edgeMin, dot);
        if(invert)
            result1 = 1 - result1;
        result2 = color(1,1,1);


View Arni or "X-Ray Effect" Slim Node

Download Arni or "X-Ray Effect" Slim Node



How to apply Slim or RenderMan Shaders to Visor Motion Capture Animation:







How to Sync Maya with Slim and Cutter:





Initially my batch render did not properly render my custom slim node. The solution I used was to click "Internalize Palette" in slim. "Internalize Palette" Makes an imported external palette "internal" to the current scene/session.





Conclusion:



The characters from Pixar's "Inside Out" greatly inspired me to research and development methods to make a character incandescent. I will continue to work on look development for characters using stylized incandescence. Fur would be a great addition to help tune in the capabilities of my custom slim nodes. Also, finding the perfect balance of intensity or scale of the incandescence can be a challenge for artists using my slim node. This exercise offered me new exciting challenges and hurdles that helped me gain a better understanding of the foundations of Slim. By mastering the begining steps of Slim, I have a better structure to advance my knowledge.