【章节概览】

本章介绍的内容关于如何较容易地采集和渲染的真实材质,如布料、羊毛和皮革等的技术。这些材质难以用早先的技术渲染,它们基本来与兼得的纹理映射。本章的目标是在采集上花费少量的努力,在渲染上花费少量的技术,但是仍然达到真实的外观。

【核心要点】

本章介绍了一种可以只用少量图像就进行采集和渲染空间变化的复杂材质的方法。这种经验的方法并不是采集真实的BRDF,而是仅仅展示了细微表面的结构如何引起照明的改变:且BRDF在随后使用。而使用这项技术的实时渲染可以容易地实现。

本文的方法以Kautz等在2004年的工作为基础。根据观测,在某种情况下,表面的材质可以通过少许图像采集,产生的结果类似于完整的双向纹理函数(Bidirectional Texture Functions, BTF)所达到的。用这个近似的BTF渲染总共只需1对一个简单的着色模型求值,并执行一个对体纹理的查询即可。渲染在图形硬件上很容易达到实时的帧速率,并在多种材质上都达到了引人注目的结果。

采集

渲染

用通用的光照模型计算某一像素的亮度,根据该亮度值从图像栈中平均亮度与该值一样的图像,进而采样渲染最后效果。

(a)图是用完整的BTF完成的(6500个图像,用主元分析(Principle Components
Analysis, PCA)压缩成16个成分)。右图是用本章的技术做的。看得出来主要的差别在一些入射角上。

【关键词】

服饰的渲染(Clothing Rendering)

双向纹理函数(Bidirectional Texture Functions,BTF)

GPU Gems2 - 11 近似的双向纹理函数(Approximate Bidirectional Texture Functions)相关推荐

  1. R语言使用coin包应用于分类变量独立性问题的置换检验(permutation tests)、使用普通卡方检验chisq.test函数和置换近似卡方检验chisq.test函数、检验分类变量的独立性

    R语言使用coin包应用于分类变量独立性问题的置换检验(permutation tests).使用普通卡方检验chisq.test函数和置换近似卡方检验chisq.test函数.检验分类变量的独立性( ...

  2. 给定一组查找关键字(19,14,23,1,65,20,84,27,55,11,10,79) 哈希函数为:H(key)=key % 13, 哈希表长为m=15,设每个记录的查找概率相等。【MOOC】

    目   录 题 目①[关键字(19, 14, 23, 1, 65, 20, 84, 27, 55, 11, 10, 79)] 解法一(线性探测再散列) 解法二(链地址法) 题 目②[关键字(19, 1 ...

  3. C++11中,对于deleted函数

    C++11中,对于deleted函数,编译器会对其禁用,从而避免某些非法的函数调用或者类型转换,从而提高代码的安全性. 对于 C++ 的类,如果程序员没有为其定义特殊成员函数,那么在需要用到某个特殊成 ...

  4. C语言基础之11:字符串和字符串函数

    Tips1: 函数:gets().gets_s().fgets().puts().fputs().strcat().strncat(). strcmp().strncmp().strcpy().str ...

  5. 游戏中纹理压缩格式之Texture压缩纹理

    记载目录 1.杂言杂语 2.纹理格式与文件格式的区别 3.常见的纹理格式和应用场合及硬件的特定要求常见的压缩纹理格式硬件需求 4.压缩纹理特殊处理RGBA16 + Dithering 处理ETC1的通 ...

  6. flink表聚合函数(Table aggregate Functions)

    用户定义的表聚合函数(User-Defined Table Aggregate Functions) ,可以把一个表中数据,聚合卫具有多行和多列的结果表用户定义表聚合函数,是通过继承TableAggr ...

  7. Effective C++条款05:了解C++默默编写并调用哪些函数(Know what functions C++ silently writes and calls)

    Effective C++条款05:了解C++默默编写并调用哪些函数(Know what functions C++ silently writes and calls) 条款05:了解C++默默编写 ...

  8. C++的特殊成员函数(special member functions)及其生成规则

    特殊成员函数(Special member functions)是指那些编译器可以为类自动产生的函数. C++ 中有五种特殊成员函数(special member functions): 1. 默认构 ...

  9. GPU Gems2 - 13 动态环境光遮蔽与间接光照(Dynamic Ambient Occlusion and Indirect Lighting)

    本文摘自https://zhuanlan.zhihu.com/p/38411575 [章节概览] 这章在讲大家很熟知的环境光遮蔽(Ambient Occlusion , AO). 文中的描述是,介绍了 ...

最新文章

  1. Python使用matplotlib可视化多分类变量组合下分组小提琴图、使用seaborn中的catplot函数可视化多分类变量组合下分组小提琴图(Categorical Plots)
  2. 【LTE】LTEMIMO系统的MATLAB仿真
  3. 的路由放在本地_支持双频+WiFi 6,穿墙力强,领势AX3200路由器体验
  4. python声明_【瞎折腾-03】在Python里面写类型“声明”
  5. python解包操作_Python编程使用*解包和itertools.product()求笛卡尔积的方法
  6. WCF系列(五) -- 也谈序列化(下)
  7. 网易严选Java开发三面面经:java读文件内容
  8. 超融合带来的IT人员问题 企业是否看到?
  9. Activity.startManagingCursor方法
  10. BIOS和DOS中断例程的安装过程
  11. 欧姆龙PLC存储区划分小结
  12. 阿里巴巴字体库的下载以及三种用法
  13. 数模美赛论文Word模版_精装版(页码+目录+标题+修改须知)
  14. SLAM系统原理推导
  15. 如何快速将pdf转换成excel
  16. VA液晶屏底色发白是什么原因?
  17. 程序员是要专精,还是要广度?
  18. python学习笔记第六章文本词频统计
  19. 被割韭菜还是来割韭菜
  20. 爬虫有道翻译接口+图片文字识别

热门文章

  1. linux修改隐藏文件生效,在Linux传统文件系统下隐藏属性的修改-linux修改文件名...
  2. sap 打印预览界面点击打印时记录打印次数_SAP打印机设置
  3. java 静态类的实现_关于java:在类中实现静态方法
  4. python 检查文件是否存在_Python中如何判断文件是否存在?
  5. Ehab and Path-etic MEXs CodeForces - 1325C(思维+贪心)
  6. Codeforces Round #561 (Div. 2)ABC
  7. java button不显示_这段JAVA程序怎么不显示button等控件啊
  8. linux中 tar 报参数列表过长,四种解决”Argument list too long”参数列表过长的办法...
  9. python字母大小写排序_Python中sorted()排序与字母大小写的问题
  10. linux应用之----进程通信