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反射模型”相关推荐

  1. Q97:怎么用三角形网格细分Bezier曲面——以Utah Teapot为例

    0,引入 前续: Q79:怎么用三角形网格(Triangle Mesh)细分曲面 http://blog.csdn.net/libing_zeng/article/details/60600404 Q ...

  2. Q98:三角形网格细分Bezier曲面时,注意三角形顶点的顺序(确保其对应的法向量向外)

    这一章节又是修正之前的错误."Q97:怎么用三角形网格细分Bezier曲面--以Utah Teapot为例" (http://blog.csdn.net/libing_zeng/a ...

  3. OpenGL(可编程管线):Bezier曲面

    Bezier曲面 Bezier线 de Casteljau算法 Bezier曲面 bezier曲面编程思想 实例 代码 运行结果 Bezier线 贝塞尔曲线由一组参数方程定义,方程组中使用控制点指定特 ...

  4. MFC绘制双有理Bezier曲面

    MFC绘制双有理Bezier曲面 双有理Bezier曲面可以精确表示任意二次曲面,如球面.柱面及圆锥面等,下面给出1/8球面的绘制类. 参考<计算几何算法与实现>–孔令德 #pragma ...

  5. MFC绘制旋转Bezier曲面

    MFC绘制旋转Bezier曲面 给出一条Bezier曲线,通过旋转64个控制点,4个曲面片,绘制出一个完整曲面 已知四个控制点:(50,100)(150,70)(120,-30)(90,-80) 理论 ...

  6. 张量积型的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 ...

  7. 计算机图形学 实验8 《复杂图形绘制-Bezier曲面及其纹理》

    计算机图形学 实验8 <复杂图形绘制-Bezier曲面及其纹理> 一.实验目的 学习样条曲面绘制技术. 二.实验内容 1.绘制Bezier曲面: 2.将纹理图像映射到曲面. 三.实验方法 ...

  8. java3d bezier曲面_使用Bezier曲面渲染飘动的红旗

    本例中我们使用的纹理如下: Bezier曲线大家应该都很熟悉了,Bezier曲线由4个控制点定义,Bezier曲线的数学定义为: 其中,p0~p3定义了4个控制点,b0~b3为伯恩斯坦多项式的项,s的 ...

  9. bezier曲面制作_利用de Casteljau算法绘制Bezier曲面

    在之前绘制Bezier曲线的基础上绘制Bezier曲面,下面只是举了一类,其他的例子可以类似进行,下面直接贴代码~ function decasteljau_surf(vertices) %DECAS ...

最新文章

  1. Python os模块常用命令
  2. python安装成功的图标_ubuntu下:安装anaconda、环境配置、软件图标的创建、成功启动anaconda图形界面...
  3. TIMESTAMP 与 explicit_defaults_for_timestamp
  4. clob和blob是不是可以进行模糊查询_为省几十元买假内存条?金士顿内存条真伪查询与辨别方法...
  5. 深入理解编译优化之循环展开和粗化锁
  6. 结合领域驱动设计的SOA分布式软件架构
  7. 谈及未来的 AI, 也许你已身处其中 —— 记 InfoQ 对青云QingCloud 联合创始人林源的采访...
  8. add to -append Backend implementation
  9. Egret中使用P2物理引擎
  10. Self Attention和Multi-Head Attention的原理和实现
  11. java obj1 = obj2_无障碍assertEquals(Object obj1,Object obj2),想怎么比较就怎么比较!! [ 光影人像 东海陈光剑 的博客 ]...
  12. 中兴6908的三层交换
  13. Holt-Winters-季节性预测算法
  14. UCOS操作系统——任务管理(二)
  15. 计算机视觉(二)图像分类
  16. 多元函数第六:连续函数(5)康托尔(Cantor)闭集套定理
  17. 微信小程序代码大于2M的一种解决方法
  18. java编写定义圆类和圆柱体类,Java程序基础编程基础
  19. tcpdump man 手册页的详细中文翻译
  20. Kubernetes(K8s)基本概念:HPA(Pod横向自动扩容)、StatefulSet

热门文章

  1. tcp协议报文和三次握手与四次挥手
  2. java使用smartupload组件实现文件上传的方法
  3. ubuntu 14.04 下搭建SVN服务器 svn://
  4. 再学 GDI+[20]: TGPTextureBrush 与 TWrapMode
  5. 开发人员,请不要抱怨项目没有文档
  6. 基于lucene语法的实时文本搜索与匹配--Tripod
  7. 程序员面试金典——5.6奇偶位交换
  8. 程序员面试金典——4.4输出单层结点
  9. 补码,反码,原码的范围总结
  10. QT+OPENCV+FFTW内存问题