I think it's because ptnum is treated as an Integer, meaning whole numbers only. That would explain the jump you get instead of the smooth interpolation between whole units.
By declaring a float, I get around that issue. There might be a more elegant solution to this.
Since my entire model is made of SubD cages, it looks like I have reached the stage where my 6 core i7 in Mantra is outpacing my GTX 1080 in Octane. The time it takes to pre-process the scene in Octane is almost 1 minute.
I reached a real low yesterday night because I don't seem to be making the progress that I was hoping for. The mind boggling number of shading and rendering options in Mantra is making me feel really stupid.
Anyway, today I managed to get to a stage where the basic shader I built in Mantra looks somewhat acceptable.
Today is a good day. It feels like the victory of willpower over fear, uncertainty and doubt.
My confidence in my ability to get Mantra to do what I want is increasing. I have definitely overcome a mental block. Mantra still boggles my mind tho!
Quick test render under different conditions to check that I haven't done anything utterly stupid with the shaders. I have stopped using the Disney shader and now using Mantra Surface nodes.