Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”
来源:互联网 发布:哈飞里程表 算法 编辑:程序博客网 时间:2024/05/16 06:55
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为例
- 问题五十五:怎么用ray tracing画Utah teapot (bicubic bezier patches)
- 【修正】问题五十五:怎么用ray tracing画Utah teapot (bicubic bezier patches)
- bezier曲线和bezier曲面
- opengl实现bezier、b曲线和曲面,16个控制点的4*4bezier块;最后可以看到茶壶teapot的实现
- (28)Bezier曲线和曲面
- 简单光照模型(Phong模型(镜面反射)与 Blinn-Phong光照模型(修正镜面光) )
- BGRABitmap图像操作9c:同时使用莫林杂点和 phong 阴影制作纹理
- 镜面反射与Phong模型
- 镜面反射与Phong模型
- NURBS曲面显示Bezier曲面
- <Shader>phong 光照模型和 blinn phong 模式
- 【译】光线跟踪:理论与实现(二)Phong模型,镜面反射及阴影
- Phong模型
- 使用基本Bezier求值器绘制曲线和曲面
- 3次Bezier曲线,曲面和3次B样条曲线和曲面
- 噪声纹理
- Linux(CentOS)下,下载安装Nginx并配置
- 173. Binary Search Tree Iterator
- 如何使用 Node.js 开发交互式命令行应用程序
- ZOJ3696-Alien's Organ(泊松分布)
- 关于ActivityThread和ApplicationThread的解析
- Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”
- 进程间通信方式
- 第十章 对象和类
- TCP连接的建立和关闭详解
- ExtraTrees原理
- 【数据结构】学习笔记之基本概念
- iOS端VR视频播放
- 逆波兰表达式
- 简单插入排序