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. 完全卸载SQL Server 2008 R2(转)
  2. 深挖之后吓一跳,谷歌AI专利何止一个dropout,至少30项今日生效
  3. 别再乱用 Prometheus 联邦了,分享一个 Prometheus 高可用新方案
  4. AS升级编译报错:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin....
  5. python控制窗口显示隐藏
  6. android 启动service报错,Android小经验
  7. input长度随输入内容动态变化 input光标定位在最右侧
  8. iOS高德地图SDK定位和搜索附近信息的具体使用
  9. C语言通过网络实现发送文件的一点记录
  10. AESRijndael加密
  11. 电脑数据恢复,哪种方法靠谱?
  12. SharePoint2013更改网站集端口方法
  13. java 操作日志记录_高效日志系统搭建秘技!架构师必读
  14. JS读取excel内容
  15. 地面控制点的作用_地下室人防预留预埋施工要点及控制点
  16. 常识——多台电脑共用一套键鼠
  17. 魔界/指环王三部曲(加长版)在线观看免费bt下载
  18. 平面视觉(二):一键还原父母儿时的记忆
  19. SSD固态盘已坏的数据就恢复不了吗?
  20. Eclipse单独设置注释字体加粗

热门文章

  1. C#会对于未赋值的变量/成员变量,给予一个初始值吗?
  2. 使用Docker保护软件供应链安全
  3. c语言:从标准输入读取几行输入,输入打印到标准输出上,加上行号
  4. CF Fox And Two Dots (DFS)
  5. systemverilog编译介绍
  6. vivo人工智能推荐算法岗提前批面试
  7. Leetcode 5067.统计只含单一字母的子串
  8. 【机器学习】选择模型
  9. 第一型曲面积分的总结思考
  10. JavaScript HTML DOM 元素(节点)