Q96:PT(3.1):基本的基于噪声的纹理(Basic Noise-Based Textures)
标题中的“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-Based Textures)
0,定义“晶格噪声”对应的类LatticeNoise
先看一下LatticeNoise的继承关系图:
1,定义及初始化“噪声数组”
2,实现hash(打乱)算法
3,插值方式
我们接下来会用到的插值方式是:线性插值、三次插值。
插值的具体分析,在此不表(或者说,留坑在此,后续在填吧)。这里直接贴出相关代码。
对晶格中各个顶点的“噪声数据”进行插值运算得到撞击点P对应的噪声值(即所谓的“噪声函数”,由于插值的方式不同,可能得到两种“噪声函数”:Linear Noise、Cubic Noise)
3.1 线性插值对应LinearNoise
3.2 三次插值对应CubicNoise
由于“三次插值”的效果比“线性插值”的好,所以后续我们使用的是“三次插值”。
4,对噪声函数值“求和”
前面我们已经提到,我们会用到三种求和方式:Fractal Sum、Turbulence、Fractal Brownian Motion。接下来,我们依次进行说明。
4.1 Fractal Sum
求和公式:
求和过程中整体噪声函数图形变化如下图:
对应C ++代码:
4.2 Turbulence
求和公式:
对应C++代码:
4.3 Fractal Brownian Motion
求和公式:
发现:若gain=0.5、lacunarity=2的fBm其实就是Fractal Sum。
对应C++代码:
5,Basic Noise Texture
接下来定义两种基本的基于噪声的纹理(分别对应前面的“求和”方式,fractal sum是Fractal Brownian Motion的一种特殊形式):TurbulenceTexture、FBmTexture。
5.1 TurbulenceTexture
5.2 FbmTexture
6,测试图形
6.1 测试代码
6.2 输出图形
Turbulence,求和项数2,求和幅值0.75,求和频率2
Turbulence,求和项数8,求和幅值0.75,求和频率2
FBm,求和项数2,求和幅值0.5,求和频率2(即Fractal Sum)
FBm,求和项数8,求和幅值0.5,求和频率2(即Fractal Sum)
FBm,求和项数2,求和幅值0.25,求和频率2
FBm,求和项数2,求和幅值0.75,求和频率2
FBm,求和项数2,求和幅值0.75,求和频率8
FBm,求和项数2,求和幅值0.25,求和频率8
FBm,求和项数8,求和幅值0.25,求和频率8
FBm,求和项数8,求和幅值0.75,求和频率8
FBm,求和项数8,求和幅值0.75,求和频率2
FBm,求和项数8,求和幅值0.25,求和频率2
7,其他说明
完整代码下载路径: http://download.csdn.net/detail/libing_zeng/9798075
Referrance:
[1]. Kevin Suffern, Ray Tracing from theGround Up, A K PetersLtd, 2007.
Q96:PT(3.1):基本的基于噪声的纹理(Basic Noise-Based Textures)相关推荐
- Q96:PT(3.2):包裹的基于噪声的纹理(Wrapped Noise-Based Textures)
标题中的"PT"表示:Procedural Texture(过程纹理).表示该章节属于"过程纹理"的内容. 当前章节在"过程纹理"内容中的位 ...
- Q96:PT(3):基于噪声的纹理(Noise-Based Textures)(0)——概述
标题中的"PT"表示:Procedural Texture(过程纹理).表示该章节属于"过程纹理"的内容. 当前章节在"过程纹理"内容中的位 ...
- 基于噪声学习的卷积降噪自动编码器用于图像去噪
python tensorflow1.14实现 卷积降噪自动编码器用于图像去噪,这个博客主要是借鉴了DnCNN用于图像去噪的方式,论文可以直接搜到(https://arxiv.org/pdf/1608 ...
- python cnn 实例_基于CNN的纹理合成实践【附python实现】
Q0: Preliminary knowledge of Texture Synthesis Baseline请见此处,下文所有的代码修改均建立此代码基础之上. 1. 纹理合成简述 纹理合成(Tex ...
- 基于块的纹理合成 matlab程序,基于块的纹理合成方法和装置制造方法
基于块的纹理合成方法和装置制造方法 [专利摘要]本发明公开了一种基于块的纹理合成方法和装置.其中,该方法包括:查找候选纹理块集合中的每个候选纹理块与在目标纹理图中已合成纹理块的重叠区:将已合成纹理块中 ...
- Glcm 灰度共生矩阵,保姆级别教程,获取图片的Glcm和基于Glcm的纹理特征,附讲解思路,python代码的实现
保姆级别教程,获取图片的Glcm和基于Glcm的纹理特征,附讲解思路,python代码的实现 网络上Glcm的原理很多,但是实现的python代码我确实没找到,讲的也不是很清楚 此文介绍了如何在一张图 ...
- CVPR 2019 论文解读 | 基于多级神经纹理迁移的图像超分辨方法 (Adobe Research)
基于多级神经纹理迁移的图像超分辨方法 超分辨(Super-Resolution)图像恢复旨在从低分辨模糊图像中恢复出高分辨的清晰图像,是计算机视觉中的一个重要任务,在工业界有非常强的应用前景.CVPR ...
- matlab 除噪点,MATLAB应用在基于噪声检测的图像均值去噪法
引言 图像是用各种观测系统以不同形式和手段观测客观世界而获得的,可以直接或间接作用于人眼并进而产生视知觉的实体,是人类感知世界的视觉基础,是人类获取信息.表达信息和传递信息的重要手段.研究表明,人类获 ...
- 基于噪声伪标签和对抗学习的医学图像分割标注高效学习
目录 背景: 面临问题: 解决方案: 一 没有图像标注对的学习 二 为训练图像生成伪标签 2.1 为训练图像生成伪标签 2.2 VAE-Based鉴别器 2.3 鉴别器引导的发生器信道校准 这里有 ...
最新文章
- Altium Designer Bottom Solder层的作用
- 内存分析工具MAT的使用
- 成功解决TypeError: __init__() got an unexpected keyword argument 'n_iterations'
- 什么样的产品适合跨境电商?这里告诉你答案!
- python中的数据类型有哪些是可阅读,Python中典型的数据类型中哪个只能阅读不能修改...
- Tomcat9 启动警告 org.apache.catalina.webresources.Cache.getResource ...请考虑增加缓存的最大空间
- springboot配置对jsp页面的解析支持
- appinventor贪吃蛇制作步骤_旋转RGB制作指导
- C++串口交互数据监听方法与虚拟串口工具安装
- 使用linux的MTD tests support测试flash性能
- 红帽Linux7考题,RHCSA题库-RedHat-7.pdf
- 超全的人脸识别数据集汇总
- 手机上什么App能连接mysql_这款APP让你的手机瞬间变身服务器,php+mysql,太硬核了!...
- DXP2004生成PCB不显示连线
- 迅雷 linux 命令行 版本号,在Linux系统下使用wine运行迅雷5的方法
- 好兄弟们,做了份上海落户政策总结给大家看看
- 简单的回显客户端/服务器应用
- win10家庭版如何修改用户名对应的用户文件夹下的用户文件名字(中文该成英文字符)
- 全返模式是怎样玩的?解析购盈利模式
- OpenCV读取图片和保存图片全黑