Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”
1,理论介绍
完整标题应该是:当“三角形网格细分后的”Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”。
其实,就是将“Q97:怎么用三角形网格细分Bezier曲面——以Utah Teapot为例”
(http://blog.csdn.net/libing_zeng/article/details/69360492)
中的材料由“SV_Matte”换成“SV_Phong”
“SV_Matte”的定义、实现可以参考:Q95:纹理映射(Texture Mapping)——地球仪
(http://blog.csdn.net/libing_zeng/article/details/65625675)
“SV_Phong”的定义、实现和“SV_Matte”非常十分特别相似,此处不赘述(后续有完整代码链接)。
(关于“Phong反射模型”的原理,参考:“问题六十八:Phong反射模型的C++实现”
(http://blog.csdn.net/libing_zeng/article/details/56676911))
“Phong反射模型”就说这么多;“噪声纹理”还是会用到marble、sandstone、wood。
简单说来,这一章节生成图形的三个步骤:
1,用三角形网格细分Bezier曲面(以Utah Teapot为例);
2,将“噪声纹理”设置给材料Phong(对应这“Phong反射模型”);
3,将“材料Phong”设置给曲面。
2,测试图形
2.1 测试代码
相对与“Q97”的测试代码,需要修改两处:
1,相机的位置(eye)、光源的方向
2,将SV_Matte换成SV_Phong
2.2 输出图形
接下来测试的三组图形,分别对应marble、sandstone、wood纹理。
前边是SV_Matte对应的图形;后边是SV_Phong对应的图形。
Marble:
Sandstone:
Wood:
3,其他说明
完整代码下载链接:http://download.csdn.net/detail/libing_zeng/9805846
Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”相关推荐
- Q97:怎么用三角形网格细分Bezier曲面——以Utah Teapot为例
0,引入 前续: Q79:怎么用三角形网格(Triangle Mesh)细分曲面 http://blog.csdn.net/libing_zeng/article/details/60600404 Q ...
- Q98:三角形网格细分Bezier曲面时,注意三角形顶点的顺序(确保其对应的法向量向外)
这一章节又是修正之前的错误."Q97:怎么用三角形网格细分Bezier曲面--以Utah Teapot为例" (http://blog.csdn.net/libing_zeng/a ...
- OpenGL(可编程管线):Bezier曲面
Bezier曲面 Bezier线 de Casteljau算法 Bezier曲面 bezier曲面编程思想 实例 代码 运行结果 Bezier线 贝塞尔曲线由一组参数方程定义,方程组中使用控制点指定特 ...
- MFC绘制双有理Bezier曲面
MFC绘制双有理Bezier曲面 双有理Bezier曲面可以精确表示任意二次曲面,如球面.柱面及圆锥面等,下面给出1/8球面的绘制类. 参考<计算几何算法与实现>–孔令德 #pragma ...
- MFC绘制旋转Bezier曲面
MFC绘制旋转Bezier曲面 给出一条Bezier曲线,通过旋转64个控制点,4个曲面片,绘制出一个完整曲面 已知四个控制点:(50,100)(150,70)(120,-30)(90,-80) 理论 ...
- 张量积型的Bezier曲面及matlab实现
1. 张量积型的Bezier曲面的定义 给定(m+1)(n+1)个空间向量Pi,j∈R3P_{i,j}\in{R^3}Pi,j∈R3(i=0,1,...,m,j=0,1,...,n)(i = 0,1 ...
- 计算机图形学 实验8 《复杂图形绘制-Bezier曲面及其纹理》
计算机图形学 实验8 <复杂图形绘制-Bezier曲面及其纹理> 一.实验目的 学习样条曲面绘制技术. 二.实验内容 1.绘制Bezier曲面: 2.将纹理图像映射到曲面. 三.实验方法 ...
- java3d bezier曲面_使用Bezier曲面渲染飘动的红旗
本例中我们使用的纹理如下: Bezier曲线大家应该都很熟悉了,Bezier曲线由4个控制点定义,Bezier曲线的数学定义为: 其中,p0~p3定义了4个控制点,b0~b3为伯恩斯坦多项式的项,s的 ...
- bezier曲面制作_利用de Casteljau算法绘制Bezier曲面
在之前绘制Bezier曲线的基础上绘制Bezier曲面,下面只是举了一类,其他的例子可以类似进行,下面直接贴代码~ function decasteljau_surf(vertices) %DECAS ...
最新文章
- Python os模块常用命令
- python安装成功的图标_ubuntu下:安装anaconda、环境配置、软件图标的创建、成功启动anaconda图形界面...
- TIMESTAMP 与 explicit_defaults_for_timestamp
- clob和blob是不是可以进行模糊查询_为省几十元买假内存条?金士顿内存条真伪查询与辨别方法...
- 深入理解编译优化之循环展开和粗化锁
- 结合领域驱动设计的SOA分布式软件架构
- 谈及未来的 AI, 也许你已身处其中 —— 记 InfoQ 对青云QingCloud 联合创始人林源的采访...
- add to -append Backend implementation
- Egret中使用P2物理引擎
- Self Attention和Multi-Head Attention的原理和实现
- java obj1 = obj2_无障碍assertEquals(Object obj1,Object obj2),想怎么比较就怎么比较!! [ 光影人像 东海陈光剑 的博客 ]...
- 中兴6908的三层交换
- Holt-Winters-季节性预测算法
- UCOS操作系统——任务管理(二)
- 计算机视觉(二)图像分类
- 多元函数第六:连续函数(5)康托尔(Cantor)闭集套定理
- 微信小程序代码大于2M的一种解决方法
- java编写定义圆类和圆柱体类,Java程序基础编程基础
- tcpdump man 手册页的详细中文翻译
- Kubernetes(K8s)基本概念:HPA(Pod横向自动扩容)、StatefulSet
热门文章
- tcp协议报文和三次握手与四次挥手
- java使用smartupload组件实现文件上传的方法
- ubuntu 14.04 下搭建SVN服务器 svn://
- 再学 GDI+[20]: TGPTextureBrush 与 TWrapMode
- 开发人员,请不要抱怨项目没有文档
- 基于lucene语法的实时文本搜索与匹配--Tripod
- 程序员面试金典——5.6奇偶位交换
- 程序员面试金典——4.4输出单层结点
- 补码,反码,原码的范围总结
- QT+OPENCV+FFTW内存问题