Q96:PT(3.4):砂岩纹理(Sandstone Texture)

本文详细介绍如何通过调整噪声系数和使用真实砂岩照片作为颜色带来创建更逼真的砂岩纹理效果。文章对比了砂岩纹理与大理石纹理的区别,并提供了具体的代码实现及测试图形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标题中的“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.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值