太傻

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

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  39 随笔 :: 0 文章 :: 280 评论 :: 0 Trackbacks

2007年1月22日 #


     半透明物体(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 太傻 阅读(537) | 评论 (11)编辑

    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 太傻 阅读(2468) | 评论 (10)编辑

    "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 太傻 阅读(1160) | 评论 (20)编辑

     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 太傻 阅读(1078) | 评论 (17)编辑