ice-boy opened this issue on Mar 14, 2009 · 121 posts
RobynsVeil posted Wed, 22 April 2009 at 7:50 PM
Made my own square, UV mapped it, gave it a material. Imported into Poser. Here's the shader setup:
s.Diffuse_Color = Blender(
IColor(77,77,77),
IColor(131,131,131),
FractalSum(u_texture_coordinate() * .00004,4 * Add(0,0),4 * Add(0,0),8,.3,.5,.5)
Blender will stay the same... FractalSum will change.
s.Alternate_Specular = Anisotropic(
FractalSum(u_texture_coordinate() * .00004,4 * Add(0,0),4 * Add(0,0),8,.3,.5,.5)
This is just recreating Ice-boy's shader:
Now, I'll take out the u_texture_coordinate node:
s.Alternate_Specular = Anisotropic(
FractalSum( .00004,4 * Add(0,0),4 * Add(0,0),8,.3,.5,.5)
So, it has nothing to do with u_texture_coordinate - the break is still there.
Then, I did something weird (gee, what a surprise!). I went back into Blender3D, and extended the UV-map about a fourth to a fifth lower than where the texture was:
Saved as new .blend, exported as new object, loaded shaders, rendered:
The break is not a clean, straight line. There is a bit of a jagged change as well.
Now, where do we want math nodes inserting? between the u_texture_c oordinate node and the x scale channel of FractalSum? Here is where a solid understanding of what exactly u_texture_coordinate() does mathmatically (and why the plugging into y and z scale of Add(0,0) - was that just to bring the global XYZ to uv xyz? Per:
*But my favorite nodes, Fractal_Sum and Turbulence, do not have this checkbox. What to do!!?!?
Well I discovered another bit of magic, an undocumented behavior that at first was very peculiar and difficult to comprehend, but I now use it a lot. If you plug any kind of node into "x scale", "y scale", or "z scale", those parameters STOP USING Model space x,y, or z values. Instead, they use the node you plugged in!!!
So, for example, I can plug a P node into any of those and use World space X, Y, or Z as I see fit. You have to either use one P node and three Comp nodes (to extract each coordinate) or use three P nodes, each set up to only pull out one coordinate. For example, P(x=1, y=0, z=0) will extract only the x coordinate. Unfortunately, due to how vector to scalar math works in the nodes, this gets divided by 3. So you should use P(x=3, y=0, z=0) instead, which cancels the divide by three.*
Monterey/Mint21.x/Win10 - Blender3.x - PP11.3(cm) - Musescore3.6.2
Wir sind gewohnt, daß die Menschen verhöhnen was sie nicht verstehen
[it is clear that humans have contempt for that which they do not understand]