A procedural floor grate texture generated with the texture editor Genetica. A procedural texture is a computer generated image created using an algorithm intended to create a realistic representation of natural elements such as wood, marble, granite, metal, stone, and others. Image File history File links An example of a procedural texture generated with the professional texture editor Genetica. ...
Image File history File links An example of a procedural texture generated with the professional texture editor Genetica. ...
The seawater creature in The Abyss marked CGIs acceptance in the visual effects industry. ...
Flowcharts are often used to graphically represent algorithms. ...
A tree trunk as found at the Veluwe, The Netherlands Wood is derived from woody plants, notably trees but also shrubs. ...
Venus de Milo, front. ...
Quarrying granite for the Mormon Temple, Utah Territory. ...
Hot metal work from a blacksmith In chemistry, a metal (Greek: Metallon) is an element that readily forms positive ions (cations) and has metallic bonds. ...
The rocky side of a mountain creek near OrosÃ, Costa Rica. ...
Usually, the natural look of the rendered result is achieved by the usage of fractal noise and turbulence functions. These functions are used as a numerical representation of the “randomness” found in everything that surrounds us. It has been suggested that Fractal animation be merged into this article or section. ...
In common use the word noise means unwanted sound or noise pollution. ...
In fluid dynamics, turbulence or turbulent flow is a flow regime characterized by chaotic, stochastic property changes. ...
Partial plot of a function f. ...
This article discusses the use of the word Number in Mathematics. ...
In general, these noise and fractal functions are simply used to “disturb” the texture in a natural way such as the undulations of the veins of the wood. In other cases, like marbles' textures, they are based on the graphical representation of fractal noise.
Example of a procedural marble texture:
(Taken from The Renderman Companion Book, by Steve Upstill) /* Copyrighted Pixar 1988 */ /* From the RenderMan Companion p.355 */ /* Listing 16.19 Blue marble surface shader*/ /* * blue_marble(): a marble stone texture in shades of blue * surface */ blue_marble( float Ks = .4, Kd = .6, Ka = .1, roughness = .1, txtscale = 1; color specularcolor = 1) { point PP; /* scaled point in shader space */ float csp; /* color spline parameter */ point Nf; /* forward-facing normal */ point V; /* for specular() */ float pixelsize, twice, scale, weight, turbulence; /* Obtain a forward-facing normal for lighting calculations. */ Nf = faceforward( normalize(N), I); V = normalize(-I); /* * Compute "turbulence" a la [PERLIN85]. Turbulence is a sum of * "noise" components with a "fractal" 1/f power spectrum. It gives the * visual impression of turbulent fluid flow (for example, as in the * formation of blue_marble from molten color splines!). Use the * surface element area in texture space to control the number of * noise components so that the frequency content is appropriate * to the scale. This prevents aliasing of the texture. */ PP = transform("shader", P) * txtscale; pixelsize = sqrt(area(PP)); twice = 2 * pixelsize; turbulence = 0; for (scale = 1; scale > twice; scale /= 2) turbulence += scale * noise(PP/scale); /* Gradual fade out of highest-frequency component near limit */ if (scale > pixelsize) { weight = (scale / pixelsize) - 1; weight = clamp(weight, 0, 1); turbulence += weight * scale * noise(PP/scale); } /* * Magnify the upper part of the turbulence range 0.75:1 * to fill the range 0:1 and use it as the parameter of * a color spline through various shades of blue. */ csp = clamp(4 * turbulence - 3, 0, 1); Ci = color spline(csp, color (0.25, 0.25, 0.35), /* pale blue */ color (0.25, 0.25, 0.35), /* pale blue */ color (0.20, 0.20, 0.30), /* medium blue */ color (0.20, 0.20, 0.30), /* medium blue */ color (0.20, 0.20, 0.30), /* medium blue */ color (0.25, 0.25, 0.35), /* pale blue */ color (0.25, 0.25, 0.35), /* pale blue */ color (0.15, 0.15, 0.26), /* medium dark blue */ color (0.15, 0.15, 0.26), /* medium dark blue */ color (0.10, 0.10, 0.20), /* dark blue */ color (0.10, 0.10, 0.20), /* dark blue */ color (0.25, 0.25, 0.35), /* pale blue */ color (0.10, 0.10, 0.20) /* dark blue */ ); /* Multiply this color by the diffusely reflected light. */ Ci *= Ka*ambient() + Kd*diffuse(Nf); /* Adjust for opacity. */ Oi = Os; Ci = Ci * Oi; /* Add in specular highlights. */ Ci += specularcolor * Ks * specular(Nf,V,roughness); } This article was taken from The Photoshop Roadmap with written authorization
- Procedural Texturing allows game developers to make games much smaller (size). Quote from bit-tech.net --> What do you think the impact of this technology could be in terms of physical space, with regards to games and PCs? At least 70% of the textures of your game could be replaced by procedural equivalents. 70% is a minimum number of textures you can replace, in actuality the likelihood is you can replace more. So for example: replace 80% of the textures and if those textures occupy 50% of your game size, the overall game size would end up a little less than 50% smaller. I have some actual examples from a recent game, Roboblitz. In this game, we replaced about 95% of the textures. The game has 6 levels and for each level the developers would use 80MB of compressed textures. So, let's do the numbers, a total of 6x80=480MB. Using our tools we replaced the 480MB with about 3MB of procedural data, a pretty spectacular decrease in game size. The game now fits within 50MB and can be downloaded through Xbox Live. Without our technology this game would weigh approx 50MB-3MB+480MB=527MB. So the gain, for Roboblitz, we saved 90% of the entire game size. That is a massive gain for the developers which allows them to reach the Live audience - something they couldn't otherwise have done.
See also |