太傻

szlongman@hotmail.com 江山笑 烟雨遥 涛浪淘尽红尘俗事几多骄

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  40 随笔 :: 0 文章 :: 318 评论 :: 3 引用

2009年7月25日 #

     《寻找隐藏的维度》(PBS NOVA Hunting the Hidden Dimension) 是一本很好看的记录片(还有高清版本),主要讲述的是分形。该片的引子谈到了Loren Carpenter与分形山脉,Loren Carpenter是一个图形学大师,我从网上、书籍还有视频资料拼凑了一段文字描述了他七十年代末颇具传奇色彩的一段往事(未完待续)。

   
     
        Loren Carpenter出生于1947年。自1966年起至1980年,就一直是在波音公司的电脑服务部门工作。1970年代初,Carpenter一边工作,一边在华盛顿大学上学。每天一大早来上班,中午去大学上课,晚上再回公司继续工作。就这样,Carpenter先是在1974年完成了大学学业,获取了数学专业的学士学位,接着在计算机科学与工程系攻读研究生,两年后取得了硕士学位。从1972年起,他开始在大学图书馆研究各种图形学论文,了解到了当时的最新进展。最后,他靠着自己的努力,进入了波音公司的电脑绘图软件开发部门。在这样的环境中,Carpenter接触到了那个时代非常先进也很昂贵的电脑绘图设备,现在很寻常的帧缓冲器,当时开价是30000美元。
    1978年,在西雅图的波音飞机公司,一群工程师们正在设计实验飞机。很奇异的设计,带有两个翅膀,或者两个尾翼,或者两个机身,不断地被尝试。当时,年轻的计算机专家Carpenter正在帮助他们做可视化辅助设计,模拟飞机在飞行中的各种状态。从工程师那儿得到数据,然后编程绘图,生成从各个角度观察的飞机图片。Carpenter想在飞机下面画出山脉,因为在波音公司的每张公开照片上,飞机下面都有一个迷人的山脉。以70年代末的技术水平,实际上还没有现成的快速方法绘制山脉。70年代末期的电脑与现在比较起来,可以说是巨慢无比,山脉由数以百万计的小三角形构成,要想生成飞机掠过山脉的动画几乎是一件不可能完成的事。正当Carpenter陷入惆怅迷惘、一筹莫展的时候,一次书店偶遇奇书不经意间改变了他的人生轨迹。从此他告别了平凡。
    Carpenter与他的妻子Rachel还有儿子住在西雅图的郊外。晚上吃过饭,他们经常会驱车开到市区,在街头散步,顺便去大学书店逛逛。有一天例行散步,在一个报刊亭翻看杂志,突然《科学美国人》这本杂志封面上的分形图片吸引了他的眼球,Mandelbrot的分形图片。当读到该期杂志中Martin Gardnerud关于这一分形专题的文章,他马上想到这种数学方法可以解决他的难题,分形可以半自动化地生成山脉。于是Carpenter赶紧去书店买了Mandelbrot的成名作《分形对象-形、机遇和维数》(1982年再版时改名为《自然分形几何》)。回到家就开始读,用了一个2到3倍的放大镜将它从头到尾浏览两遍,连那些小字也不放过,包括注脚和文献。在Mandelbrot的书中认为:自然界的各种形态都能从数学上描述为“分形”,那些看上去参差不齐、残缺的形状背后都有着数学模型。但是在仔细研读了Mandelbrot的书后,发现书中提到的方法并不实用,结果也不是很漂亮,于是他感到非常的失望。这段时间,正好卢卡斯的“星球大战”刚上映,Carpenter全家去电影院的路上等车,Carpenter在雨中整整站了四个小时。最后,好不容易终于到了电影院,发现电影院里的其他人也都湿透了。全家人都对这电影着迷了,Carpenter甚至希望将来能与卢卡斯一起工作,有朝一日他也能用电脑做出一段惊人的场景,而且最好是外星球的地形。“星球大战”这本电影给了Carpenter继续研究分形山脉的勇气和力量。Mandelbrot书中的办法也能生成山脉,不过速度非常缓慢,没有效率,需要一种在计算机上实现的快速算法。一天晚上,Carpenter注视着纸上还未解决的环节,两分钟之后灵感来了,他突然间顿悟了,脑子里有了完整的算法。自然界的闪电、山水、云彩尽管尺度上相异,细节上千差万别,但都有一致的几何描述。Carpenter决定在他的计算机上尝试生成分形山脉,他的生成方法其实出奇的简单和机械,递归分割、中点置换。他仅用了三天,就完成了代码及调试。第三天的早晨,Carpenter忽忙赶到办公室去看电脑昨晚产生的山脉图形,当时的情景Carpenter回忆说:“我完全被惊呆了,历史在这儿诞生了”。



Carpenter非常向往能去卢卡斯创办的的图形学研究机构工作。因为他知道这是世界上为数不多的纯研究机构,在那儿有一群顶尖的图形学精英,而且没有教学任务,这正是他喜欢的。于是,当分形山脉刚在屏幕上生成出来,他异常兴奋,立刻打印出来寄给了卢卡斯的研究机构。图片寄走后,Carpenter又感到有点自卑,自己不过是一个波音公司的普通程序员,除非卢卡斯电影公司为了取暖,把所有应聘人员的求职信都烧了,才有可能发现自己。为了要引起其他人的广泛关注,他有了一个雄心勃勃的主意,一定要把自己的分形山脉图形登上SIGGRAPH 1980论文集的封面。Carpenter打算制作一部短小的分形电影,提交给SIGGRAPH。在电影中,他想展现出分形几何的实质,无论镜头是紧貼还是远离山脉,都能提供足够多、足够真实的细节。既然是电影,那肯定不能缺了背景音乐,那时的年轻人都喜欢摇滚,他选用了披头士的一首两分钟的歌曲“Flying”。影片的名字也想好了,就叫“Vol libre,“自由飞翔”的意思。

      正当Carpenter准备摩拳擦掌大干一番的同时,卢卡斯研究机构的Alvy也收到了来自波音公司的“求爱信”。拆开来一看仅仅是几张山脉风景图片,没有任何文字描述,但看得出那是计算机生成的数码图片。Alvy想不到计算机能产生如此真实的山脉图片,以前从未见过。看起来可能运用了Mandelbrot的分形技术,但是猜不到是谁干的。Alvy随手把其中最漂亮的一张图片钉在了墙上,他想在即将举办的SIGGRAPH会议上说不定会碰到那个家伙。
      波音公司很是支持Carpenter的创意,提供了一些资金并允许他在工作时间开发这个项目。Carpenter整天都扑在他心爱的电影上,白天忙着修改程序,晚上启动程序在计算机磁带上生成每帧图像。为了这短短两分钟的视频,他全身心地投入了四个多月。时间一天天过去了,他的电影一天天接近完成,SIGGPARH的会期也一天天地临近了。这个时候,Carpenter经常感到莫名的紧张,要是影片在演示时,声音出问题该怎么办?色彩出问题该怎么办?任何疏忽,都会搞砸了在SIGGRAPH上展示的效果。
posted @ 2009-07-25 18:53 太傻 阅读(731) | 评论 (6)编辑

2008年5月29日 #


     半透明物体(Translucent materials)在我们周围随处可见。大理石、玉器、皮肤、牛奶等等就属于这一类。半透明物体的绘制必须考虑到次表面散射(subsurface scattering),表面的入射光线除了反射以外,还有大量光线经入射点进入物体,在物体内部传输的过程中不断被吸收,不断被散射,最后在入射点附近穿出(BSSRDF)。
     DIRECTX SDK中早在2004年便把subsurface scattering包含进了PRT的API中。DIRECTX SDK的例子中一直有一个PRT DEMO的例子,也展示
了subsurface scattering的效果,我当时对着几个参数捣鼓了好一阵,出来的半透明效果平淡无奇,一点也没有国外论文中所附样图的风采。是不是我用的模型面数太少啊?是不是PRT中带的SSS技术不适用半透明物体啊?是不是还有什么未知的东西啊?
     带着这些疑问过了好几年。期间,曾经在MSN上碰到这方面的一个专家,来想问他些问题,但是又不好意思说,怕打扰了他的工作,只是向
他讨要了他的博士论文(可惜后来在电脑中丢了)。
     2008年初,我写EMAIL给了曾在微软研究院做过实习生的赵爽(上海交大的学生,我查到了他的主页,上面有EAMIL,SIGGRAPH 2008有一篇
论文,他是第二作者),向他讨教了几个问题。赵爽真是很“爽快”,第二天就给我回了信,谈了几点他自己的看法:“PRT 简单地说,是利用光源输入和物体的亮度具有线性关系(也就是说,光源亮度提高1倍,那么物体亮度也提高1倍)这一性质,预先以一些特定的基函数为光源,计算物体的appearance。然后对于任意光源,通过投影到该基函数上,并将预先计算好的 apperance 相加,即可得到物体在当前光源下的appearance。因此 PRT 是可以应用在半透明材质的渲染上的。至于你说的按 vertex 计算这一问题,的确这是 PRT框架的一个一般性问题,和是否是半透明材料无关。相反,对于很多半透明材料,尤其是 homogeneous 的材料,它们的 appearance相对比较低频,vertex 采样率反而可以低一点。至于微软 SDK 里面的渲染效果,其实我并不清楚微软 SDK 里面是如何渲染半透明物体的”。由此可见,模型面数少一些对半透明效果的影响并不大,也不是决定性因素。
     后来,我看到了清华博士生徐昆(他也在微软研究院做过实习生,我发现做半透明物体这方面论文的都在那儿做过Research Intern。与
英雄呆在一起,不知不觉也会变成英雄,不知道这样的比喻恰不恰当。)在EUROGRAPHICS2007上发表的论文“Real-time homogenous translucent material editing”,这篇论文讲了可变半透明物体材质的实时绘制,还带了一段非常棒的DEMO VIDEO。这文章又燃起了我熄灭好久的探寻半透明物体绘制奥秘的希望。特别是其中一句话提醒了我为什么DIRECTX SDK中的PRT DEMO的半透明物体效果比较差劲。“Since human perceives glossy surfaces more translucent than surfaces without glossy, for increased realism, we add a specular component to the final rendering. ”也就是说,人眼看有光泽的物体表面更能感受到半透明质地,所以加上高光,半透明的真实感更能体现出来。嗯,找到了问题的关键。
      我在DIRECTX SDK的PRT DEMO上做了个小修改,增加了几个点光源的Specular Lighting。引入些许高光,渲染的图像立刻与以往不同了,效果出奇的好。请看如下图片。材质使用的是预定义的MARBLE。原想把程序传上来,可是目前我无FTP可用,BLOG中以往的连接都失效了,如有哪位网友能提供我BLOG用的FTP,不胜感谢。




 


 
 


 
posted @ 2008-05-29 21:55 太傻 阅读(1566) | 评论 (14)编辑

2007年8月18日 #

    SIGGRAPH 2007 刚开完,那些COURSE NOTES全文已开始由他们的作者陆续在网上公布了。我整理了一份siggraph 2007 course notes(online)的清单,还缺一些,如有谁能在网上找到相应的在线COURSE NOTES,请通过留言通知我一下,以便及时更新。希望我的劳动能给学习图形学的人们提供一点方便。 

siggraph 2006 course notes(online) 官方发布
http://www.siggraph.org/s2006/main.php?f=conference&p=courses&s=notes


siggraph 2007 course notes(online)

1. Computational Photography
http://www.merl.com/people/raskar/photo/

2. Mesh Parameterization: Theory and Practice
http://alice.loria.fr/php/article.php?pub=../publications/papers/2007/SigCourseParam

3. Sketch-Based Interfaces: Techniques and Applications
暂未找到

4. State of the Art in Massive Model Visualization
http://www.sci.utah.edu/~abe/massive07/

5. Introduction to Direct3D 10
http://www.microsoft.com/downloads/details.aspx?FamilyID=96CD28D5-4C15-475E-A2DC-1D37F67FA6CD&displaylang=en

6. Anyone Can Cook: Inside Ratatouille's Kitchen
http://graphics.pixar.com/indexAuthorShah.html

7. Introduction to SIGGRAPH and Computer Graphics
暂未找到

8. High-Quality Rendering Using Ray Tracing and Photon Mapping
http://graphics.ucsd.edu/~henrik/papers/

9. From "Shrek" to "Shrek the Third": Evolution of CG Characters in the "Shrek" Films
暂未找到

10. An Interactive Introduction to OpenGL Programming
暂未找到

11. Practical Least-Squares for Computer Graphics
http://graphics.stanford.edu/~jplewis/lscourse/

12. "Surf's Up": The Making of an Animated Documentary
http://www.185vfx.com/2007/08/surfs-up-course-at-siggraph/

13. A Gentle Introduction to Bilateral Filtering and Its Applications
http://people.csail.mit.edu/sparis/siggraph07_course/

14. Urban Design and Procedural Modeling
暂未找到

15. Example-Based Texture Synthesis
http://www.cs.unc.edu/~kwatra/SIG07_TextureSynthesis/index.htm

16. Practical Global Illumination With Irradiance Caching
http://moon.felk.cvut.cz/~xkrivanj/papers/2007-caching_course/index.htm

17. Spatial Augmented Reality: Merging Real and Virtual Worlds
http://www.uni-weimar.de/medien/ar/SpatialAR/Siggraph07.htm

18. Résumés and Demo Reels: If Yours Don't Work, Neither Do You!
暂未找到

19. Sorting in Space: Multidimensional, Spatial, and Metric Data Structures for Computer Graphics Applications
暂未找到

20. Visualizing Quaternions
暂未找到

21. Database Techniques With Motion Capture
http://www.cs.cmu.edu/~christos/TALKS/SIGGRAPH-07-tutorial/

22. LucasArts and ILM: A Case Study in Film and Game Convergence
暂未找到

23. Geometric Modeling Based on Polygonal Meshes
http://www.agg.ethz.ch/publications/course_notes

24. GPGPU: General-Purpose Computation on Graphics Hardware
http://www.ninjaprox.info/index.php?q=d3d3LmdwZ3B1Lm9yZy9zMjAwNy8%3D&hl=1ed

25. Mobile 3D Ecosystem
暂未找到

26. The Morphology of Digital Creatures
暂未找到

27. Anyone Can Make Quality Animated Films! The Eight Basic Steps to Success
暂未找到

28. Advanced Real-Time Rendering in 3D Graphics and Games
http://www.valvesoftware.com/publications.html

29. Crossing The Line: Moving From Film to Games (and Possibly Back)
暂未找到

30. Digital Art Techniques
暂未找到

31. Fluid Simulation
http://www.cs.ubc.ca/~rbridson/fluidsimulation/

32. Interaction Tomorrow
http://www.interactiontomorrow.org/coursematerial.html

33. Strands and Hair: Modeling, Animation, and Rendering
http://gamma.cs.unc.edu/SIG07_HAIR/

posted @ 2007-08-18 13:21 太傻 阅读(4053) | 评论 (10)编辑

2007年2月5日 #

    "Physically Based Modeling and Animation of Fire"(SIGGRAPH 2002)是最为逼真再现火焰的SIGGRAPH论文之一。也是以后基于物理模拟FIRE的经典参考文献。该论文很复杂,实时实现难度很大。但是引用论文其中一部分思想,牺牲一些视觉效果,实时地生成火焰倒也相对容易。我花了两个晚上把3d smoke的程序改为3d fire,主要的时间用在调公式中的参数,尽量接近真实的火焰。12点了,终于调了一个自己认为还算马马虎虎的版本放在网上。过几天有空的话,还要进一步做些改进工作。


三维的火焰(CPU版)
http://www.net638.com.cn:638/download/3d_fire(cpu版).rar

posted @ 2007-02-05 00:29 太傻 阅读(1581) | 评论 (20)编辑

2007年1月22日 #

     BLOG好久没更新了。为了生计,远离了自己的爱好。
     Course notes "Real-Time Volume Graphics", Course #28, Siggraph 2004.介绍了许多利用三维纹理进行实时体绘制的方法。该文是可免费下载的,写得很精彩,图文并茂。许多自然景物的模拟(比如云、烟)在生成可视模型后,都是通过体绘制技术来展现在大家的眼球前。从文献上查到最早提出用具备纹理映射的硬件来进行体绘制是94年的一篇论文“Accelerated volume rendering and tomographic reconstruction using texture mapping hardware”。可能是该文的发表时间较早,GOOGLE找不到免费电子版了,所以至今也没看到过原文,不过这并不妨碍我们对该技术的理解。网上OPENGL的体绘制例子很多,但是DIRECTX版本很难找到。我自己写了一个DIRECTX版的,用了TeddyBear的数据模型,可显示一头憨憨的玩具熊,其样子让我想到我那未满周岁的儿子。学习Volume Rendering的主要目的还是为绘制三维的烟雾,下面给出的DEMO,是用CPU完成3D Fluid的求解,用体绘制技术来实现可视化。由于CPU无法并行运算,速度较慢,所以使用的三维格子是16X16X16,比较粗糙。下一步准备改用GPU,可望在ATI9600上实现较高精度的实时3D Fluid。

玩具熊的体绘制DEMO:
http://www.net638.com.cn:638/download/volume Rendering.rar

三维的烟雾(CPU版)
http://www.net638.com.cn:638/download/3d smoke(cpu版).rar



posted @ 2007-01-22 23:41 太傻 阅读(1530) | 评论 (18)编辑

2006年10月22日 #

     摘要: 太平天国忠王府自解放后一直是苏州老博物馆的所在地。博物馆有个偏门,门口有一对年代久远的“门当”(所谓“门当”原指大宅门前的一对石鼓,有的抱鼓石坐落于门础上,信其能避邪),光滑异常。儿时常在忠王府门口玩耍,到了夏日,常骑于石鼓之上,觉得一种透心的凉爽。2006年10月,贝聿铭先生设计的新博物馆落成了,再去新馆参观时,路过老馆偏门,老石鼓却已破损不堪,两...  阅读全文
posted @ 2006-10-22 21:35 太傻 阅读(2063) | 评论 (19)编辑

2006年5月23日 #

     摘要: 前几天,将"Target-Driven Smoke Animation" on the GPU投给了WWW.GAMEDEV.NET的每日一图.(Image of the Day)。http://www.gamedev.net/community/forums/topic.asp?topic_id=392793收到的评论还不错。摘其中一条:It looks amazing. Definately s...  阅读全文
posted @ 2006-05-23 11:32 太傻 阅读(1411) | 评论 (2)编辑

2006年3月26日 #

     摘要: 电影魔戒首部曲前一刻钟中有这么一幕:111岁的Bilbo与魔法师甘道夫正谈论着烟草,突然Bilbo吐出一个大烟圈,而甘道夫更是了得,笑着吹出一艘美丽的帆船,航行穿过了Bilbo烟圈。接着镜头便转向了一个巨大的焰火宴会。美国的电影特技公司是如何实现这一效果的,不得而知。不过SIGGRAPH2004中的一篇文章“Target-Driven Smoke Animation”却是公...  阅读全文
posted @ 2006-03-26 23:35 太傻 阅读(1665) | 评论 (21)编辑

2006年1月16日 #

     摘要: 六七十年代,当时为了阻止在台湾的蒋介石反攻大陆,为了应付严峻的国际形势,全国都在响应“深挖洞”的号召。那会我爸正在一个海岛上修地下坑道,负责采暖、通风设计,说起当年指挥工程队按图施工,他总是流露出一种自豪的神情。第一次听说有“流体力学”这个词,就是从我爸的口中得知的,那个时候我上初中。我曾经好多次去翻过爸从部队里带回的一大堆旧书,可是从来没有发现有关...  阅读全文
posted @ 2006-01-16 23:17 太傻 阅读(2543) | 评论 (10)编辑

2005年12月14日 #

     摘要: 过去,学生们在课堂学习计算机体系结构时,听老师讲解各类并行计算机时,仿佛觉得这些东西都是科学家才使用的尖端产品。可又何曾想到,现在并行计算机GPU( Graphical Processing Unit) 就在我们的普通PC电脑内,触手可及。现在CPU的技术进步正在慢于摩尔定律,而GPU(视频卡上的图形处理器)的运行速度已超过摩尔定律,每6个月其性能加倍。WHY? 前阵子应一位编辑的约稿,写了一篇《...  阅读全文
posted @ 2005-12-14 21:55 太傻 阅读(1854) | 评论 (4)编辑