三角形网格[Triangle Mesh]图形的平滑着色[Smooth Shading],主要分三步:

1,计算单个三角形的法向量。根据三角形的三个顶点来求。

2,计算单个顶点处的法向量。根据共该顶点的所有三角形的法向量来求[求平均值]。

3,对三角形进行‘平滑着色’,即求单个三角形最终的法向量。根据三个顶点处的法向量来求[线性插值]。

相关代码截图如下:

‘平坦着色’和‘平滑着色’的三角形网格图形对比:

第一组:单像素点采样次数为1的平坦着色[前一个是低分辨率金鱼,后一个是高分辨率金鱼]

  

第二组:单像素点采样次数为1的平滑着色[前一个是低分辨率金鱼,后一个是高分辨率金鱼]

  

第三组:单像素点采样次数为100的平滑着色[前一个是低分辨率金鱼,后一个是高分辨率金鱼]

  

相关代码:
http://download.csdn.net/detail/libing_zeng/9779163
参考书籍:

[1]. Kevin Suffern, Ray Tracing from theGround Up, A K Peters Ltd, 2007.

Q82:三角形网格[Triangle Mesh]图形的平滑着色[Smooth Shading]相关推荐

  1. Q80:平坦着色(Flat Shading)和平滑着色(Smooth Shading)——“Q79:怎么用三角形网格(Triangle Mesh)细分曲面”(补充)

    80.1 概述 前面用三角形网格细分球面时,对单个三角形的着色方式采样的是"Flat Shading".即: 通过三角形三顶点的坐标计算出整个三角形的法向量. 这样就导致相邻两个三 ...

  2. 入门图形学:平直着色和平滑着色

    真是在老家关得有点郁闷了,不晓得这疫情什么时候结束.虽然我个人非常喜欢放假,因为有更多时间学习.玩游戏和搞自己的事情.不过这次疫情时间掐得太准了,刚好是放年假回老家拜年的时间,直接把我关在老家四十天, ...

  3. C4D模型工具—断开平滑着色(Phong)

    1:创建对象-球体: 2:将球体转为可编辑对象: 3:在线模式下,选中边: 4:右键属性-断开平滑着色(Phong): 5:效果:选中的边显示出硬边的效果: 6:此功能可用于建模时对模型硬边处理

  4. C4D模型工具—选择平滑着色(Phong)断开边

    < 选择平滑着色(Phong)断开边工具 >是选择工具的一种,会选择操作了< 断开平滑着色(Phong)>的边. 1:创建对象-球体: 2:将球体转为可编辑对象: 3:在线模式 ...

  5. Q79:怎么用三角形网格(Triangle Mesh)细分曲面

    79.1 思路分析 我们先以球心在原点的单位球面为例来说明细分过程. 79.2 C++代码实现 79.2.1 tessellate_flat_sphere()的实现 其实,实现起来还挺简单.只需要根据 ...

  6. java添加水印文字模糊问题(Graphics2D文字和图形边缘线条平滑效果)

    前言 最近有个证书管理系统的项目,但是发现用java的graphics2d绘制文字但是文字边缘模糊,于是有了本文的解决方案,可广泛适用于graphics2d绘制的水印等地方. 解决方案 这是项目实际代 ...

  7. 【WPF】用三角形网格构建三维图形

    虽然WPF只能支持部分三维模型,不过从应用功能开发的角度看,也已经够用了(非游戏开发).WPF 的三维图形,说得简单一点,也就两种而已. 1.把二维对象放到三维空间中,这个应该较为好办,像 Image ...

  8. 《Real-Time Rendering 4th Edition》读书笔记--简单粗糙翻译 第五章 着色基础 Shading Basics

    写在前面的话:因为英语不好,所以看得慢,所以还不如索性按自己的理解简单粗糙翻译一遍,就当是自己的读书笔记了.不对之处甚多,以后理解深刻了,英语好了再回来修改.相信花在本书上的时间和精力是值得的. -- ...

  9. 渲染(render)和着色(shading)

    Shader和renderer:shader中文为着色器,进行shading(着色):renderer为渲染器进行render(渲染).渲染是指以软件由模型生成图像的过程.模型是用计算机语言或者数据结 ...

最新文章

  1. sqlite c++插入 timestamp_Dqlite,基于sqlite 高可用(HA)数据库
  2. 基于jsp的教师科研工作量_基于jsp+mysql的JSP教师科研信息管理系统
  3. Objective-C:OC内部可变对象和不可变对象的深(复制)拷贝问题思考:
  4. 常用 API 函数(10): 硬件与系统函数
  5. 如何简单快速调试高大上的谷歌浏览器
  6. html表单与python交互,HTML表单不能与python一起使用
  7. HTML5法律律师咨询公司响应式模板
  8. server 2008 R2+IIS7.5安装cacti实验
  9. React-12 Context的使用
  10. 如何获取qq群成员的资料信息(爬虫)
  11. Android常用对话框大全——Dialog
  12. 联想计算机如何设置bios密码,Lenovo 消费笔记本如何设置BIOS密码
  13. 用火箭送快递?淘宝宣布联合蓝箭航天起启动“宝箭”计划
  14. 人脸实战之关键点检测
  15. html中class类怎么写,HTML class 属性 | 菜鸟教程
  16. [译]Veil-Pillage
  17. TL-WDN5200H无线usb网卡在ubuntu18.04/16.04上的使用
  18. The error may involve XXX(包)-Inline The error occurred while setting parameters
  19. 以太网 VLAN简介、MAC地址表与VLAN的关联内容
  20. 微服务架构 | 如何利用好日志链路追踪做性能分析?

热门文章

  1. 一套OA系统 破解中小企业4大管理难题
  2. CentOS7 安装管理KVM虚拟机
  3. linux 多窗口查看多命令的操作结果
  4. Part I 1.介绍Lustre文件系统
  5. 【重点】LeetCode 24. Swap Nodes in Pairs
  6. python 画图--简单开始及折线图
  7. 【React】JSX
  8. Python中使用tarfile压缩、解压tar归档文件
  9. Fiddler- 数据Mock(转)
  10. oracle创建用户和角色、管理授权以及表空间操作