标题中的“PT”表示:Procedural Texture(过程纹理)。表示该章节属于“过程纹理”的内容。
当前章节在“过程纹理”内容中的位置:
过程纹理(0)——概述
过程纹理(1)——方格纹理(1)——3D方格纹理
过程纹理(1)——方格纹理(2)——2D方格纹理(1)——平面2D方格纹理
过程纹理(1)——方格纹理(2)——2D方格纹理(2)——球面2D方格纹理
过程纹理(1)——方格纹理(2)——2D方格纹理(3)——圆柱2D方格纹理
过程纹理(2)——纹理的仿射变换
过程纹理(3)——基于噪声的纹理(0)——概述
过程纹理(3)——基于噪声的纹理(1)——Basic Noise Texture
过程纹理(3)——基于噪声的纹理(2)——Wrapped Noise Texture
过程纹理(3)——基于噪声的纹理(3)——Marble
过程纹理(3)——基于噪声的纹理(4)——Sandstone Texture
1,理论介绍
“砂岩纹理”和“大理石纹理”基本是一样的。两者差异的地方:
1,“砂岩纹理”对应的“颜色带”来自真实砂岩的照片,所以“砂岩纹理”看起来更为逼真;
2,我们知道砂岩是沉积岩,所以纹理非常平整,所以我们需要将噪声系数perturbation设置得非常小(一般都是0.1左右)。
基于“大理石纹理”章节的代码,只需改动两处:
1,将“颜色带”图片换成“砂岩纹理”的;
2,将噪声系数设置成很小的正实数。
2,测试图形
2.1 测试代码
和marble章节差异的地方如下截图:
2.2 输出图形
求和项数6,求和幅值0. 5,求和频率2;噪声缩放系数为0.1
纹理仿射变换:
it_ptr->rotate_x(-60);
it_ptr->rotate_y(-60);
颜色带:
前边是纹理没有仿射变换时的图形;后边是纹理发生仿射变换时的图形。
颜色带:
前边是纹理没有仿射变换时的图形;后边是纹理发生仿射变换时的图形。
颜色带:
前边是纹理没有仿射变换时的图形;后边是纹理发生仿射变换时的图形。
颜色带:
前边是纹理没有仿射变换时的图形;后边是纹理发生仿射变换时的图形。
3,补充测试图形——Solid Cylinder
3.1 测试代码
3.2 输出图形
求和项数6,求和幅值0. 5,求和频率2;噪声缩放系数为0.1
纹理仿射变换1:
it_ptr->rotate_z(110);
纹理仿射变换2:
it_ptr->rotate_z(110);
it_ptr->translate(1.0, 0.0, 0.0);
纹理仿射变换3:
it_ptr->rotate_z(110);
it_ptr->translate(1.0, 4.0, 0.0);
颜色带:
第一张图形是没有纹理仿射变换;第二张图形是发生纹理仿射变换1;
第二张图形是发生纹理仿射变换2;第二张图形是发生纹理仿射变换3;
4,其他说明
完整代码下载路径:http://download.youkuaiyun.com/detail/libing_zeng/9799042
Referrance:
[1]. Kevin Suffern, Ray Tracing from theGround Up, A K PetersLtd, 2007.