科技: 人物 企业 技术 IT业 TMT
科普: 自然 科学 科幻 宇宙 科学家
通信: 历史 技术 手机 词典 3G馆
索引: 分类 推荐 专题 热点 排行榜
互联网: 广告 营销 政务 游戏 google
新媒体: 社交 博客 学者 人物 传播学
新思想: 网站 新书 新知 新词 思想家
图书馆: 文化 商业 管理 经济 期刊
网络文化: 社会 红人 黑客 治理 亚文化
创业百科: VC 词典 指南 案例 创业史
前沿科技: 清洁 绿色 纳米 生物 环保
知识产权: 盗版 共享 学人 法规 著作
用户名: 密码: 注册 忘记密码?
    创建新词条
科技中国——欢迎光临全球最大的互联网博物馆
  • 人气指数: 1672 次
  • 编辑次数: 1 次 历史版本
  • 更新时间: 2009-07-02
明天
明天
发短消息
相关词条
Danese Cooper
Danese Cooper
加里·基尔代尔
加里·基尔代尔
Rob Barnaby
Rob Barnaby
安迪·鲁宾
安迪·鲁宾
布莱姆·科恩
布莱姆·科恩
Richard Greenblatt
Richard Greenblatt
Thomas Knoll
Thomas Knoll
盖茨的人生掠影
盖茨的人生掠影
软件工程师不可不知的10个概念
软件工程师不可不知的10个概念
Stan Lippman
Stan Lippman
推荐词条
辍学富翁
辍学富翁
Ehud Tenenbaum
Ehud Tenenbaum
麦戈文
麦戈文
黑鹰安全网
黑鹰安全网
基因预测
基因预测
10位选择自杀的世界级科学家
10位选择自杀的世界级科学家
电子书战国时代
电子书战国时代
淘宝网拐点
淘宝网拐点
权钱交易入侵互联网
权钱交易入侵互联网
可视图文
可视图文
最新词条

热门标签

Time Google tax 谷歌税 詹姆斯·索罗维基 詹姆斯·索诺维尔基 James Surowiecki 詹姆斯·索罗维奇 2010年The Crunchies奖 网络托拉斯 设计的政治性 查尔斯·里德比特 i一代 尼尔·哥申菲尔德 尼尔·盖什菲尔德 尼尔·哲申费尔德 Neil Gershenfeld 尼尔·格申菲尔德 保拉·安特那利 赛斯·高汀 菲利浦·斯塔克 Philippe Starck 菲力浦·斯塔克 约翰·霍金斯 卢吉·科拉尼 Luigi Colani 路易吉·克拉尼 肯·凯图 Dan Reisinger 丹·雷辛格 海曼·林博格 凯瑞·皮蓬 Marcel Duchamp 马歇尔·杜尚 霍尔格·马蒂亚斯 Holger Matthies 霍尔格·马蒂斯 BDP9500 Lotfi A. Zadeh Lotfali Askar-Zadeh 扎德 拉特飞·扎德 Microprofessor II Multitech MPF II 小教授二号 Thomas Arithmometer 汤玛斯计算器 Arithmometer 四则运算机 IBM 7090 Lorenz Cipher Lorenz SZ 42 Lorenz SZ 40 Lorenz SZ 40/42 劳伦兹密码机 洛仑兹密码机 摩斯密码 Morse code 摩斯电码 莫尔斯电码 摩尔斯电码 萨缪尔·摩尔斯 Norden bombsight 诺顿轰炸机瞄准器 大富豪计算器 Millionaire Calculat Colossus 10年来的100本好书 10年来20大最具创新性消费电子产品 技术节食 网络淫秽表演 机械强迫症之电子篇 Bombe计算机 Bombe 自动计算机 飞行者ACE计算机 Pilot ACE ACE EDVAC 20家年度失意大公司 Z3 Differential Analyze 微分分析仪 微分分析器 ABC Z1计算机 Zuse Z1 Z1 马克一号 Haward Mark I Mark Ⅰ IAS machine IAS 2009年IT业盘点 “第二人生”的失乐园 亨利·马克拉姆 亨利-马克拉姆 亨利·马克莱姆 熊猫烧香 李俊 埃尼阿克

(图)Jim BlinnJim Blinn

Jim Blinn, 全名James F. Blinn,世界图形学先驱。曾荣获Siggraph年度计算机图形学成就奖。系微软公司研究所图形学研究员。

凸凹纹理映射: 由Jim Blinn发明,用法向扰动技术模拟带褶皱的曲面。

Bump mapping最初由Jim Blinn在1978年发明。

元球渲染技术最初是Jim Blinn 于1980年代初提出的。

Blinn阴影:是用James Blinn的名字命名的,是Torrance-Sparrow-Cook阴影模型的计算机图形应用。Torrance-Sparrow-Cook阴影模型是用Kenneth F.Torrance、Ephraim M.Sparrow和Robert L.Cook三位科学家的名字命名的,它基于现实的镜面反射和漫反射原理,即假设一个物体的表面由一些类似于镜面的微小平面组成,这些小平面具有自身遮掩的能力。当从确定的角度观察时,它是确定材料上镜面的边缘。最开始,这种阴影只是一种在物理学领域的理论模型,后来由James Blinn首次应用到计算机制图中来,从而称之为Blinn阴影。

个人主页:http://research.microsoft.com/users/blinn/

目录

[显示全部]

数字技术带来动画的复兴 编辑本段回目录

在传统动画几经浮沉之际,一股新的动画革命在悄悄酝酿。1950年,麻省理工大学的计算机专家制作了第一部计算机动画。到了70年代,一大批科学家和艺术家开始投身计算机图像(CG)领域。70年代后期,杰姆斯·布林(James Blinn)领导的实验室Jet Propulsion Laboratory(JPL)制作了早期的三维动画短片Voyage2。传统动画的实践者也投入这一领域,加拿大动画电影局(NFB)于1974年出品了彼得福德斯(Peter Foldes)导演的动画片Hunger,应用了最新的计算机技术。

(图)Jim BlinnJim Blinn

80年代初,计算机动画技术步入实用阶段。1982年迪斯尼公司制作的电影Tron中有超过20分钟的数字动画。同一时期美国的工业光魔公司(Industrial Light and Magic)开始在电脑特效领域应用数字动画技术。1984年,他们在《印第安那·琼斯和魔殿》一片中首次制作了一个全数字的合成镜头。1989年的电影《深渊》(Abyss)里,更是出现了第一个全电脑制作的三维动画角色。在数字动画方面,日本也是起步较早的国家。1984年日本大阪大学(Osaka University)就制作了数字动画短片Bio-Sensor。传统动画的工艺也因数字技术发生了彻底的变革,提高了效率和质量。1989年,迪斯尼公司的动画长片《小美人鱼》(The Little Mermaid)成为他们最后一部用传统工艺制作的动画。

80年代,一大批数字动画制作公司也相继成立。1980年成立的Pacific Data Images(PDI)、1985年成立的Pixar、1987年成立的Blue Sky Studios,如今都已成为生产电影动画的大型工作室。

90年代数字技术在欧美和日本的动画工作室开始得到普及。数字图像技术成为电影和动画工业复兴的催化剂。迪斯尼公司自1990年的《救难小英雄》(The Rescuers Down Under)以来就利用数字技术降低成本和营造更加美轮美奂的画面,《美女与野兽》(1991)、《阿拉丁》(1993)等动画电影取得巨大成功。1994年的《狮子王》更成为迪斯尼公司有史以来最卖座的一部动画长片。

(图)Jim BlinnJim Blinn

三维动画片成为动画产业的新主流。1995年,Pixar工作室之作了第一部三维动画长片《玩具总动员》(Toy Story),开三维动画之滥觞。十多年来,美国生产的《虫虫特工队》(A Bug’s Life)、《小蚁雄兵》(ANTZ)、《冰河世纪》(Ice Age)、《怪物史莱克1、2》(Shrek 1 & 2)、《海底总动员》(Finding Nemo)、《超人特攻队》(The Incredibles)、《机器人历险记》(Robots)等片,都取得了空前的商业成功。

数字动画的浪潮,也在美国之外的区域蔓延。日本动画也大量采用了数字技术,近年来的《幽灵公主》、《千与千寻》、《攻克机动队2》、《蒸汽男孩》等动画片,都采用了数字动画技术。韩国、法国等国也借助这一浪潮大力发展动画产业,成为新的动画生产大国。

动画产业的空前活跃,使得动画成为新媒体的核心之一。中国动画产业也有新的一批数字动画制作者加入,动画从业人员和动画专业学生迅速增加。中国动画,既面临着积重难返的各种体制弊端,也面临着新的发展契机。

Jim Blinn简介编辑本段回目录

James F. Blinn is a computer scientist who first became widely known for his work as a computer graphics expert at NASA's Jet Propulsion Laboratory (JPL), particularly his work on the pre-encounter animations for the Voyager project,[1] his work on the Carl Sagan Cosmos documentary series and the research of the Blinn–Phong shading model.

(图)Jim BlinnJim Blinn

经历Biography
In 1970, he received his bachelor's degree in physics and communications science, and later a master's degree in engineering from the University of Michigan. In 1978 he received a Ph.D. in computer science from the College of Engineering at the University of Utah.

Blinn devised new methods to represent how objects and light interact in a three dimensional virtual world, like environment mapping and bump mapping. He is well known for creating animation for two television series: Carl Sagan's Cosmos: A Personal Voyage, and the pioneering instructional graphics in The Mechanical Universe. His simulations of the Voyager spacecraft visiting Jupiter and Saturn have been seen widely. He is now a graphics fellow at Microsoft Research.

名人名言 Quotes
"All problems in computer graphics can be solved with a matrix inversion." —Blinn
"I like to collect things. When I was young I collected stamps; now I collect empty margarine tubs and algorithms for drawing circles." —Blinn
"The big problem in making the space movies is that of figuring out where to place the camera and in what direction to point it in order to get an interesting picture." —Blinn
"The first problem is simply finding something that hasn't been done yet." —Blinn
"An ancient Greek named Democritus first came up with the idea that the world was made of indivisible particles called atoms. (He didn't base this on any physical evidence — it's just that there were so many Greeks coming up with random ideas that one of them was bound to be right.)" —Blinn
"Many of you are involved in the microcircuit revolution and tend to think this also applies to the text on your slides." —Blinn
"There are about a dozen great computer graphics people, and Jim Blinn is six of them." —Ivan Sutherland

(图)Jim BlinnJim Blinn

著作Further reading
Blinn, James F.: Jim Blinn's Corner: Dirty Pixels, Morgan Kaufmann Publishers, Inc., ISBN 1-55860-455-3
Blinn, James F.: Jim Blinn's Corner: A Trip Down The Graphics Pipeline, Morgan Kaufmann Publishers, Inc., ISBN 1-55860-387-5
Blinn, James F.: Jim Blinn's Corner: Notation, Notation, Notation, Morgan Kaufmann Publishers, Inc., ISBN 1-55860-860-5
Blinn, James F.: Simulation of Wrinkled Surfaces, Computer Graphics, Vol. 12 (3), pp. 286-292 SIGGRAPH-ACM (August 1978)
Blinn, James F.: Texture and Reflection In Computer Generated Images, CACM, 19(10), October 1976, pp 542-547.
Blinn, James F.: Models of Light Reflection for Computer Synthesized Pictures, SIGGRAPH 77, pp 192-198.
Blinn, James F.: A Generalization of Algebraic Surface Drawing, ACM Transactions on Graphics, 1(3), July 1982, pp 235-256.
Blinn, James F.: Light Reflection Functions for the Simulation of Clouds and Dusty Surfaces, SIGGRAPH 82, pp 21-29.

(图)Jim BlinnJim Blinn

获得奖项Awards
1983, NASA Exceptional Service medal for Voyager Fly-by animation.
1983, SIGGRAPH Computer Graphics Achievement Award.
1989, IEEE Outstanding Contribution Award for Jim Blinn's corner.
1991, MacArthur Fellowship in recognition of and to allow continuation of his work in educational animation.
1995, Honorary Doctor of Fine Arts degree from the Parsons School of Design for contributions to computer graphics.
1999, Steven Anson Coons Award for Outstanding Creative Contributions to Computer Graphics.

Jim Blinn博士的报告编辑本段回目录

Jim Blinn博士系微软公司研究所图形学研究员,首届SIGGRAPH图形学成就奖获得者。会上,他应邀就计算机图形学25年来的发展作综述报告,受到了热烈欢迎。由于没有文字资料,下面仅凭作者听讲时的记录和个人理解,作一简要介绍。

(图)Jim BlinnJim Blinn

Jim Blinn博士的报告分两大部分。第一部分逐个对前24届SIGGRAPH大会进行综述,介绍了各届大会的主要贡献,第二部分介绍他本人对图形学已解决的问题、尚未解决的问题的阐述,以及未来发展的预测和25年成就的总结。
1. 10个至今尚未解决的问题
创新性 应寻找至今尚未做过的题目进行研究。
教育 应跟踪、明确哪些问题已经研究过,并广泛传播新的发现。
系统集成 把现有的全部技术集成在一个系统之中。
简单化 简化界面和操作。
象素算术运算理论(Pixel Arithmetic Theory) 象素是计算机图形学的基础,象素本身又可表示为一个四元组rgbα,其中rgb为红绿兰三原色,α表示象素的覆盖因子(不透明因子),以此为基础的数字图像组合(Digital Image Compositing),又称α混合(Alpha Blending)或叠加(Overlaying)理论,以及不同表示的象素值的校正、转换和覆盖等操作均是以象素算术运算理论为基础的。
遗产的兼容性 不同学科、不同技术成果的兼容性问题。
Arithmetic Sloppiness 针对实时3D图形系统中象素量化、纹理滤波及光照模型等问题中计算精度的标准问题。
反走样(Antialiasing)问题。
造型、绘制、动画的挑战性问题 意大利面条的造型、绘制和动画的实现。
为实时3D图形学寻找新的应用 开拓除计算机游戏和仿真应用外的新的应用领域。
2. 图形学的发展趋势

(图)Jim BlinnJim Blinn

Jim Blinn博士在报告中对计算机图形学的发展趋势作了如下预测:
·越来越快;
·越来越便宜;
·采用更多的存储器芯片;
·真实感越来越强;
·各种技术的无缝集成;
·采用NT平台;
·与实际演员无异的人造演员将于2000年4月23日下午3时登台;
·出现更好的显示屏技术;
·普及基于小块(Sprite)的显示技术;
·采用层次结构的分布式视频格式;
·全息投影将实用化;
·2000年的SIGGRAPH将在虚拟现实中召开;
·任何不在Web上的资料将被遗忘。
3. 图形学25年成就
最后,Jim Blinn博士把计算机图形学25年成就归纳为:
·创建了一个新的行业;
·创建了一种新的媒体;
·改变了传统学术会议的形式;
·改变了世界。

Bump Mapping概述编辑本段回目录

1. 概述

(图)Jim BlinnJim Blinn

无论是程序员还是美工人员,几乎每个游戏开发者都知道一些3D图形学的知识,因此每个人都或多或少了解一点bump mapping。Bump mapping是在像素级别扰动物体表面法向量的一种光照技术,它一般采用纹理映射作为输入表示扰动的大小。在光照计算时考虑到扰动的法向量,不需要增加额外的几何信息就可以增强被渲染物体的表面细节。
       Bump mapping在许多离线渲染系统中已经存在很久了,并且现在也已成为实时渲染引擎的标准。可是,在实时渲染引擎中实现Bump mapping的技术也有很多种,从非常简单的到非常复杂的,不是所有的图形程序员都很熟悉它们。本文的目标就是向Bump mapping初学者介绍最重要的实时技术,解释围绕着这些技术的难题。

2. 最初的方法

Bump mapping最初由Jim Blinn在1978年发明,他发表了一篇名为 “Simulation of Wrinkled Surfaces”的论文。Blinn使用了一种灰度高度图(grayscale height map)来建模物体表面法向的扰动,扰动法向量的大小用某些表面参数(典型的为纹理坐标)的偏微分和高度图来计算。这些微分表示了某些潜在值的变化率,因此,如果高度的微分值很大,则表示高度图中该点坡度很陡。

正如上面所说的,这些扰动的法向量需要加入光照模型中进行计算,这就暗示说所采用的光照模型必须是像素级的("Phong shading"),而不能是顶点级的("Gouraud shading")。这里必须指出"Phong shading"和"Phong's lighting model"是不同的概念,尽管鲜见有人作出区分。Phong shading意思是插值顶点法向量在片元(fragment)级别计算光照公式,而Gouraud shading意思是逐顶点计算光照公式,最后再插值颜色。Phong光照模型(Phong's lighting model)只是一种特定的计算光照的公式,可以在顶点级别也可以在片元级别进行计算。例如OpenGL的标准光照是基于Phong光照模型但使用Gouraud shading。因此,bump mapping可以看作为Phong shading的扩展(使用bump map来扰动法向量),但并不是说你必须用Phong光照模型。

(图)Jim BlinnJim Blinn

3. 实时技术

下面的几段将讨论bump mapping实现的不同方法,我们从最简单的开始逐渐过渡到最复杂的技术。

3.1         Emboss bump mapping

Emboss bump mapping也是采用一张height map,就像Blinn的最初方法,但它不是计算逐像素扰动的法向量,而是直接计算光照密度。因此,与Blinn的bump mapping技术不同,不能随意选择光照模型。

       实现emboss bump mapping的第一步是对height map进行预处理产生两个分离的映射图。第一张图具有原始height map一半的明亮度,第二张具有原始height map反转图一半的明亮度。绘制需要分三步完成(当然可以用多纹理方法一步完成),第一遍绘制使用半明亮度图;第二遍采用反转半明亮贴图,但纹理坐标需要朝着光源方向做微小的偏移,同时采用 “Additive blending”纹理混合模式;最后一遍使用逐顶点的光照模型并将结果与原来的纹理相乘。下图显示了前两步的处理过程。
       因为没有计算扰动的法向量,emboss bump mapping只能用于diffuse lighting中,因此这种技术缺乏实用性,但由于几乎不需要任何的特殊硬件支持,它可以用标准OpenGL1.1实现,甚至可以不使用多纹理技术。

3.2         Environment-mapped bump mapping (EMBM)

环境影射bump mapping最初由Bitboys开发,但实际将这种技术带入市场的显卡是Matrox G400。EMBM扰动纹理坐标而不是法向量,其输入纹理是一个二维的DU/DV图像:其中的纹理像素表示应用到U/V纹理坐标上的偏移量。换句话说,存取特定图元的纹理坐标是(U + DU, V + DV),其中U和V分别表示逐顶点插值的纹理坐标,DU和DV则是从bump map中获得。

       从扰动的纹理坐标来实现bump mapping效果,你的光照必须来自纹理。典型的是,纹理可以是一个环境映射(因此命名为EMBM),用来存取这些纹理的纹理坐标可以用表面法向量的函数计算获得。环境映射可以是基于视线的也可以不是,并且可以用于仿真散射与镜面光照。因此,逐像素扰动环境映射纹理坐标可以仿真扰动法向量的bump mapping效果而不必真正地计算法向量。

(图)Jim BlinnJim Blinn

       典型的,这种DU/DV bump map产生自一个灰度高度图(grayscale height map),通过查询高度值的微分,可以得到:物体表面越陡,DU/DV就越大。注意偏移是有符号的值,因此需要缩放到0~255这个范围,当运用这个映射进行渲染时,你需要将这个值再映射到-1~1这个范围。
很明显,EMBM也可以应用于环境反射(环境映射的典型用法),这意味着你可以用它来仿真凹凸反射物体。这向着实现真实的bump mapping效果前进了一大步,但是你仍然没有存取扰动的表面法向量,因此从环境图中提取的信息量限制了可以选择的光照模型。

3.3         Normal mapping
Normal mapping是当前最通用的实时bump mapping技术,该技术最初来源于Peercy等人的论文"Efficient Bump Mapping Hardware"。输入纹理是一个normal map,在其不同的颜色通道中记录了扰动的表面法向量。像DU/DV maps一样,normal maps典型地产生于一个高度场,高度值的偏微分可以用于计算扰动表面的坡度,因此也可以用于计算扰动的法向量。法向量的XYZ分量可以被编码进纹理的RGB通道来产生最终的normal map。
       上图显示了一个height map以及由它产生的normal map。这个normal map的XYZ分量已经从-1~1的范围放大到0~255范围,向量[0, 0, 1]将被转化为RGB 颜色 [127, 127, 255],因此,这个紫/蓝色是normal map的主色调。

       这里有一个非常重要的问题:这些法向量处于哪个坐标系统?它们是相对于最初height map的“地平面(ground plane)”进行计算的,当对一个模型应用这个normal map时,必须假设 [0, 0, 1]法向量对应于最初未扰动的表面法向量。Blinn使用height maps时也会遇到同样的问题,他使用表面纹理坐标的偏微分来构造法向量的坐标系统。这种坐标系统叫做“切空间(tangent space)”——其X和Y坐标轴与UV纹理坐标平行,Z轴垂直于纹理表面,X和Y轴通常叫做"tangent"和"binormal"向量,Z轴对应于未扰动的表面法向量。

(图)Jim BlinnJim Blinn

       Blinn对每个像素计算其切空间用于在模型坐标系统中产生扰动的法向量,Peercy在论文“Efficient Bump Mapping Hardware”中引入了一种更加高效的方法,只在顶点级预先计算tangent 与 binormal 向量,在实际绘制时,每个顶点处的表面点->光源向量(surface-to-light vector)转化到切空间并且进行插值。在像素级别,单位化光源向量,因此现在你有了在同一坐标系统中的光源向量与扰动法向量,随后就可以在切空间中进行光照计算。

       一旦具有了像素级别的表面法向量,就可以使用你所喜欢的任意光照模型,早期的显卡比如GeForce 和 Radeon只可以使用扰动的法向量执行简单的点乘操作(通常是三个分量的点乘操作,因此常被称为“Dot3 bump mapping”)。高质量的镜面光照计算很难,因为在这些显卡上不能进行取幂操作,比较新的显卡提供了更加灵活的片元处理功能,允许你用normal map实现更加先进的逐像素光照计算,并且利用表面法线可以实现各种反射折射以及更复杂的光线运算。
3.4         最初的height map方法

最新的显卡支持片元级别的偏微分运算,可以并行地运算四个或更多的fragments blocks(运用多片元管线),因此可以方便地计算相邻像素之间值的变化率。你可以实时地应用这个功能动态转化height map为normal map,这可以解决离线计算normal maps的麻烦,更方便美工人员制作bump map。

实时转化尽管增加了运算负载,但你可以在pixel shader中用height map进行其他目的的计算,不过至少在目前离线计算normal maps仍是明智的选择。

(图)Jim BlinnJim Blinn

4. Bump Mapping没有的,并且也不是Bump Mapping的技术

4.1         Displacement mapping

Displacement mapping相对于bump mapping来说也使用height map来表示表面的扰动,不同的是displacement mapping实际修改表面的几何信息,而bump mapping只影响表面法向量。换句话说,displacement mapping增加了模型的几何细节,硬件加速的displacement mapping技术目前还很不成熟。

你可以在vertex shader中使用displacement mapping偏移顶点使之沿着法线方向偏移,即使你的显卡足够劲可以同时处理大量的顶点,你仍然需要调整真实顶点的位置。在没有某种自适应tessellation策略的情况下,取得较好可视结果需要处理的面片数目大的惊人,除非displacement map本身也可以实时产生。除此以外,displacement技术一般是不能实时应用的。

4.2         光照模型

经常有人抱怨说“bump mapping使真实的物体看上去像塑料”,尽管有证据支持这种说法(某些游戏应用了bump mapping技术),但不是bump mapping技术使物体看上去像塑料,是光照模型的原因。许多游戏使用了Blinn/Phong光照模型,如果加上镜面光照,看上去确实像塑料,可是如果应用同样的模型而不使用bump mapping,场景仍然看上去像塑料,这有可能更多的是美工的问题。

5. 更加先进的方法

5.1         细节保留

当讨论normal mapping的时候,我们注意到normal maps一般从一个height map生成,然而,采用将表面法向量渲染到纹理的方法,从模型也可以产生normal maps。“细节保留”技术采用了这种方法来实现模型简化,一个高模和一个低模作为输入,将高模的细节保存到一个纹理中,并将这个纹理贴到低模上。这种“细节”可以是任意的表面属性,包括颜色和法向量,如果你采用细节保留技术产生一个normal map,你就可以使用高LOD版本(high-LOD version)的光照信息渲染低LOD版本(low-LOD)的模型。

       映射高模模型到低模模型,低模必须要有唯一的UV映射,例如纹理映射时不能有存取两次的图元。对于normal map中的每个图元,你可以计算该图元位置处低模上点的坐标,得到这点的表面法线并且沿着这个法向向量发射一条射线,根据这条射线与高模的相交点可以知道高模的表面法向量并将之存为一个normal map。注意这条射线是双向的,因为高模的表面可能在低模表面之前也有可能在其后。
       这种技术也可以被称为"polybump"或"renderbump",前者来自于Crytek,一种细节保留工具“PolyBump”的开发者;后者,众所周知来自于Doom 3。

5.2         自阴影bump map
Bump mapping靠扰动表面法向量来影响光照,但扰动的法向量不会影响任何形式的阴影。因此,一个凸块(bump)将不会在另一个凸块上产生阴影。可是现在已经有方法允许bump maps产生自阴影,其中的一种技术叫做“horizon mapping”。一个horizon map是一种从特定点向各方向记录可见水平高度(the elevation of the visible horizon)的纹理。如果另外的一个点判断低于这个水平高度,可以认为该点相对于特定点不可见,与之相似的是,光源如果低于这个水平高度,就不会照亮对应的特定点。
       你可以在切空间对光源向量执行这种可见性检查,就可以产生自阴影bump maps,其主要的缺点是horizon maps占用过多纹理内存,而且计算量很大。上图展示了horizon mapping绘制的情况,这个复杂场景只绘制了一个四边形,绿线表示光源的照射方向。

5.3         Parallax mapping
尽管bump mapping可以极大地增强场景渲染的真实感,但其仍然只是一种基于纹理的技术,这意味着绘制表面始终仍为“平(flat)”的。Displacement mapping技术靠修改实际几何表面来解决这个问题,但是如前所述,在实时绘制系统中目前并不是最实用的技术。视差映射(Parallax mapping)是一种先进的bump mapping技术,在一定程度上可以弥补以上缺陷而不需要displacement mapping那么复杂的运算。摄像机在物体表面平移时,视差映射可以给你一种合适的视差效果,不必修改实际的几何信息。因此,当你低于一定的角度观察一个平面时,虽然可能仍感到它是平的但物体的轮廓不会收到影响。

       视差映射,也被称为"offset mapping"或"virtual displacement mapping",也需要一个height map作为输入,这种视差效果可以通过将每个图元处的纹理坐标向眼睛方向偏移一定距离来实现,偏移的长度可以根据该位置处height map的值估算。
       对于已存在的bump mapping shader来说,Parallax mapping只增加了较少的指令,但结果却好的多。你的shader程序需要一个height map,这通常不是问题,它可以保存在normal map的alpha通道中,也可以分开保存,甚至你只需要一个height map,用它来实时计算法向量。

5.4         Z-correct bump mapping

如果你想进一步提高渲染效果以实现displacement mapping那样的效果,你就需要使用Pixel Shader来修改渲染图元的Z值,除了使用一个height map作为输入外,必须向着视线方向偏移Z值。这种技术仍然不会改变场景的实际几何信息,但当两个物体接触或相交时,相交处会随着表面的凹凸情况发生变化而不仅仅表示为一条直线。
Z-correct bump mapping有一个很大的缺陷,在pixel shader中修改Z值会禁止图形硬件的早期深度测试优化。早期深度测试优化可以在pixel shader执行前去除深度测试失败的图元,这可以极大地增进性能,如果shader修改了深度值,早期深度测试优化将不会执行。

逐像素的光照计算在处理独立光源之前,通常要计算环境光部分(Z+ambient pass),这部分计算正需要用到早期深度测试优化。因此,禁止深度测试优化可能极大地影响绘制效率,其不利影响甚至超过几条pixel shader指令带来的优化效果。

6. 结论

Bump mapping背后的基本技术就是扰动用于光照计算的表面法向量。Blinn的原始方法需要计算height map的坡度来产生扰动的法向量,这种方法近年来才被用于实时系统。我们还讨论了一些更加实用的bump mapping方法,首先的两种技术是emboss bump mapping 和 EMBM,它们都不是真正计算扰动的法向量,因此这使它们并不灵活,可能不值得大量应用。

我们讨论的第三种技术是normal mapping,它是当前使用的标准方法,normal mapping真正地扰动表面法向量,这意味着理论上其可以应用于任何光照模型。实际上,采用的光照模型受限于显卡的硬件性能与片元处理能力,早期的显卡实现normal mapping相当受限制,仅仅计算散射光照部分,你不得不对每个光源都采取多遍渲染,而更新的显卡可以实现更加专业的光照模型。

       之后,我们讨论了一些bump mapping的先进应用。细节保留技术允许你用高LOD模型细节来渲染一个低LOD模型。自阴影的bump maps可以在表面的凹凸块上产生自阴影来增加场景的深度信息。视差映射仿真视差效果增加了更多的深度信息,如果跟随摄像机在物体表面平移,你可以看到更加真实的几何细节。Z-correct bump mapping扰动两个相交物体相交处的轮廓来更进一步增加真实感。

(图)Jim BlinnJim Blinn

A. 参考文献

Further reading:

•Simulation Of Wrinkled Surfaces, Jim Blinn (not freely available online to my knowledge) •Efficient Bump Mapping Hardware, Mark Peercy, John Airey and Brian Cabral •Bump Mapping, Anders Hast •Interactive Horizon Mapping, Peter-Pike Sloan and Michael F. Cohen •Parallax Mapping with Offset Limiting: A Per-Pixel Approximation of Uneven Surfaces, Terry Welsh •Preserving Attribute Values On Simplified Meshes By Resampling Detail Textures, P. Cignoni, C. Montani, C. Rocchini, R. Scopigno and M. Tarini •All The Polygons You Can Eat: Without The Fat, Doug Rogers (includes some good information on detail preservation) •Tangent Space Calculation, Eric Lengyel (example code for calculating tangent frames) Useful tools:

•ATI developer tools, including a normal map generator and a detail preservation tool •NVidia texture tools, including a normal map generator •NVidia Melody, a mesh simplification and detail preservation tool •Open RenderBump, a detail preservation tool Bump mapping demos on Delphi3D:

•Emboss bump mapping. •EMBM for fake refraction (NVidia only). •The "Hello world" of normal mapping. •Per-pixel lighting using normal maps. Different code paths for different hardware generations (NVidia only). •Portal renderer with shadow mapping and per-pixel lighting using normal maps. •Horizon mapping. •A combination of horizon mapping, parallax mapping and z-correct bump mapping. •A simple mesh-based normal map generator for generating tiled normal maps.

参考文献编辑本段回目录

→如果您认为本词条还有待完善,请 编辑词条

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

标签: James F. Blinn 吉姆·布林 杰姆斯·布林 Jim Blinn

收藏到: Favorites  

同义词: James F. Blinn,吉姆·布林,杰姆斯·布林

关于本词条的评论 (共0条)发表评论>>

对词条发表评论

评论长度最大为200个字符。