| szlongman 的个人资料百无一用照片日志列表 | 帮助 |
|
2月10日 3d fire(CPU版)"Physically Based Modeling and Animation of Fire"(SIGGRAPH 2002)是最为逼真再现火焰的SIGGRAPH论文之一。也是以后基于物理模拟FIRE的经典参考文献。该论文很复杂,实时实现难度很大。但是引用论文其中一部分思想,牺牲一些视觉效果,实时地生成火焰倒也相对容易。我花了两个晚上把3d smoke的程序改为3d fire,主要的时间用在调公式中的参数,尽量接近真实的火焰。12点了,终于调了一个自己认为还算马马虎虎的版本放在网上。过几天有空的话,还要进一步做些改进工作。 相关图片见我的技术BLOG: 太傻 http://www.cnblogs.com/szlongman 3d smoke(CPU版) 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 ----------------------------------
4月7日 “Target-Driven Smoke Animation”的GPU实现 电影魔戒首部曲前一刻钟中有这么一幕:111岁的Bilbo与魔法师甘道夫正谈论着烟草,突然Bilbo吐出一个大烟圈,而甘道夫更是了得,笑着吹出一艘美丽的帆船,航行穿过了Bilbo烟圈。接着镜头便转向了一个巨大的焰火宴会。美国的电影特技公司是如何实现这一效果的,不得而知。不过SIGGRAPH2004中的一篇文章“Target-Driven Smoke Animation”却是公开了一种烟雾动画控制技术(smoke animation control),达到了与电影中类似的效果。此论文是以色列人撰写的(The Hebrew University of Jerusalem),SIGGRAPH2003中“Keyframe control of smoke simulations”引起了他们对此方向的兴趣,提出了新的思想,方法不复杂,但是最后的结果倒是出奇的好。通过查阅文献,最初公开发表研究"烟雾动画控制技术"的论文是个中国留学生(Object Modeling and Animation with Smoke),Lin Shi,复旦的本科,现在美国读博士,成果累累。中国的精英在国外有许多,一旦有了吸引这些有真才实学的学者回国的机制,我想实现科技的腾飞是指日可待的。
原文的实现全部使用了CPU,运用精度很高的二阶偏微分数值解法,时间步长也较小,因此最后形成的动画图像非常细腻。我使用了GPU(ATI 9600),采用了大步长,一阶隐含数值解法,能实时实现二维的烟雾动画(比如一个图像遵循流体的运动定律演化为另一种图像),当然从视觉效果上要比论文上的差很多。原来一直打算找时间写三维形式烟的模拟,可是自从看到那论文后,心里就开始构思如何实现文中的算法,只是碰到点编程上的BUG,徘徊了好多天。现在总算有了个雏形,心中还是比较开心的。只是有时候,晚上调程序,睡不着,看看电视放松一下脑子,结果那几天影响了一位室友的睡眠,在此表示歉意。 DEMO(“Target-Driven Smoke Animation”的GPU实现)下载: http://www.net638.com.cn:638/download/tdsmoke_gpu_demo.rar 这阵子还看了两本科普书,一本是许峰雄写的“深蓝揭密”,一本是沃森写的“双螺旋”,都是在买到后,一个晚上一口气读完的。两本书有一个共同的特点,都是科学家撰写自己亲身的科研历程,披露了很多国外一流大学学习生活的细节。沃森在他25岁时就发现了DNA的双螺旋结构,以此成果荣膺了日后的诺贝尔奖。他在一本书中自述:故事开始的时候我25岁,还没有结婚,考虑女孩(girls)多于基因(genes)。表述的很大胆也很有意思。 ...... 又过了好多天,一直想对上面那个DEMO做优化,但是好象没了那股精气神,结果一点也没进展。两三天前的一个晚上,看了会电视,喝了杯价值一块钱的咖啡,突然来了精神,把想到的优化方法付诸实现了。用了浮点数纹理,精度一下子提高了,从效果上接近原论文一阶微分数值解法的视频。昨日晚上又将GRID SIZE加到256,图像品质大为改善。 改进版DEMO(“Target-Driven Smoke Animation”的GPU实现)下载: http://www.net638.com.cn:638/download/tdsmoke_gpu_demo(20060502).rar 可以改变源与目标的图片(在/images目录下),以观察到不同的效果 比如:在Source Image Filename框中录入“char.jpg”,在Target Image Filename框中录“char1.jpg”; 然后按一下“Inverse Start”会看到一个中文的“”字以烟雾状化为另一个中文字“画”; 再按一下“Inverse Start”会看到一个中文的“画”字以烟雾状化为另一个中文字“图”。 这些DEMO均使用“October 2005 DirectX SDK Update”,要求GPU支持PS2.0 2月25日 打磨民工"日前,经《21世纪经济报道》证实,“汉芯一号”发明人陈进弄虚作假,成功骗取国家上亿元无偿拨款“内部已基本确认造假属实”,至此,自1月中旬开始在网上炒起来的“汉芯一号”造假案终于有了初步定论。 -- 转自 http://www.hqew.com/info/newshtm/20062221660150492.htm 看了以后感慨颇多,编了一个黑色幽默表示一下当时的心情。 --------------------------- 200N年国家科技最高奖授于打磨民工. 国内知名院士一致鉴定:“X芯一号”是达到国际先进水平的高端大规模集成电路。而民工可以说是帮助“X芯一号”成功的最关键人物,没有他们,就没有“X芯一号”。 打磨民工已找不到了,只能由“X芯一号”总负责人陈X代为领奖,并发表获奖现场感言: 争取再接再厉, 从英特尔购进一批P4 CPU芯片,用国外进口高档细砂专业打磨,然后打上汉芯P4的标识。英特尔没有什么了不起,他们搞了几十年芯片,我们只需要短短几天就能与国外最先进的公司处于同一起跑线了。显然,我们的自主创新能力是很强的,不,应该说是“相当~~”的强。另外准备年内起动大型客机项目,波音啊,空中客机啊都买上几架,运回后,刷上漆,打上中国制造。这可是国产货哦,希望大家踊跃购买,支持民族高科技。当然,在看到我们的优势时,我也清醒地意识到自身的差距,就大型客机而言,老实说我们的漆水差了些。 -------------------------- 王志: 中国科技界缺少帅才,更缺乏踏踏实实、不计名利在第一线工作的科技人才。请您谈谈如何招到一大批志同道合、默默无闻的打磨民工为“X芯一号”的诞生作出了关键性贡献? 陈X: 搞科研嘛,来不得半分假,就是需要一丝不苟。所以我是一个注意细节的人。平时走到哪儿,我都要往墙上啊,电线杆上观察一下,有没有“专业打磨”的小贴子...... 1月19日 烟的绘制(smoke rendering) 六七十年代,当时为了阻止在台湾的蒋介石反攻大陆,为了应付严峻的国际形势,全国都在响应“深挖洞”的号召。那会我爸正在一个海岛上修地下坑道,负责采暖、通风设计,说起当年指挥工程队按图施工,他总是流露出一种自豪的神情。第一次听说有“流体力学”这个词,就是从我爸的口中得知的,那个时候我上初中。我曾经好多次去翻过爸从部队里带回的一大堆旧书,可是从来没有发现有关“流体力学”的书,倒是意外找到一本国家领导人李瑞环五十年代写的木工书。 真正开始接触“流体力学”,还是从去年才开始。是“stable fluids”,“Visual Simulation of Smoke”, mark harris的博士论文“Real-Time Cloud Simulation and Rendering”等文章给了我深刻的启迪。才明白,数学原来是可以这样运用的。 前几个星期,我一同事新买了辆私家车,闲来无事,喊上我等几人一起驾车出游。目的地是郊外的花山,此山树木菇郁,浓可蔽日,青松翠柏夹径,甚是幽静,到此有超然世外之感。花山历史悠久,自古以来就受到名人雅士和文人墨客的垂青。山腰处本有始建于宋朝的花山大殿,用金山石柱为梁,是建筑史上的一大奇迹。大殿内有铁佛、铜钟、石门槛,并称花山三绝。可惜花山大殿在“文革”时遭人为破坏,建筑全部被夷为平地,现在只剩下形影孤单地耸立着12根石柱,仿佛在述说着它们的不幸,也让游人依稀想起它们曾经的辉煌。花山最高处为莲花峰,欲登顶必经五十三个台阶,高峻而又宽阔。相传当时康熙帝南巡,欲登莲花峰,而山路陡峭难攀,需找一条捷足便道。寺中高僧不敢有误,连夜发动僧众百人从一块整石上凿出五十三个台阶。此处称为“五十三参”,取佛经中“五十三参,参参见佛”之意。我们拾级而上,刚登上五十三参顶,即看到高耸的一面石壁,表面褶皱,宛如老妇人饱经苍桑般的皮肤,上刻形象缭绕的象形文字(见下图)。我等几人,驻足而视,纷纷猜想此字是何意。我本是一直在琢磨流体的绘制,见此象形字,我马上就反映出这不就是遵循Navier-Stokes方程的流体表现出来的基本形态嘛。真是很有意思,脑中想什么,往往就会在现实生活中看到同样的东西,就不吝是这次登上最值回味的一件事。后来,我翻看旅游手册,才知此石壁为“秀屏”,上刻文字是“云”,屏上还刻有乾隆帝游山诗一首,历历可辩。 游山的经历促使我尽快实现了一个用GPU计算二维流体的实时模拟程序(使用D3D)。在分析公式推导后,觉得做一个粗糙的三维的烟雾也并不困难,只是还需要点时间。 DEMO1(未加上 Vorticoty Confinement)下载: http://www.net638.com.cn:638/download/FluidSim_AddBuoyancy.exe http://www.net638.com.cn:638/download/FluidSim_AddBuoyancy.rm (DEMO1的动画捕捉,由于使用工具的原因,帧速会降低) DEMO2(加上 Vorticoty Confinement)下载: http://www.net638.com.cn:638/download/FluidSim_AddVorticity.exe http://www.net638.com.cn:638/download/FluidSim_AddVorticity.rm (DEMO2的动画捕捉,由于使用工具的原因,帧速会降低) 这些DEMO均使用“October 2005 DirectX SDK Update”,要求GPU支持PS2.0 此图还未加上 Vorticoty Confinement(GPU为ATI 9600,程序还未做优化) 12月14日 GPU为什么跑得快? 过去,学生们在课堂学习计算机体系结构时,听老师讲解各类并行计算机时,仿佛觉得这些东西都是科学家才使用的尖端产品。可又何曾想到,现在并行计算机GPU( Graphical Processing Unit) 就在我们的普通PC电脑内,触手可及。现在CPU的技术进步正在慢于摩尔定律,而GPU(视频卡上的图形处理器)的运行速度已超过摩尔定律,每6个月其性能加倍。WHY? 前阵子应一位编辑的约稿,写了一篇《GPU为什么跑得快?》,该文刊登于《游戏创造》杂志2005年11期(http://www.chinagcn.net/issue11.htm)。
文章下载:http://www.net638.com.cn:638/download/gpu.doc 11月20日 过程纹理(Procedural Texture) [2005-11-20 update] 小时候,家里住的是老房子,有近百年的历史了。可惜的很,在轰轰烈烈的旧城改造中都已化成记忆。老房子的客厅是方砖铺就的,而卧室的地面都由地板架空。当时夏天没有空调,赤着身子躺在地板上,甚是凉爽,实在是消暑的良方。地板上木材的花纹就象水墨画中险峻的山峰,一山更比一山高,留给了我无尽的遐思。我那时很是奇怪,大自然为何给木材安排了如此有诗意的纹理呢?
好多年以前,互联网上网还是一种稀缺资源。多亏一个热心同学的帮忙,终于在宿舍里依靠电话回拔,免费连上了Internet。每天只有在深夜才速度快一点,达到每秒3-5K,但是却为我打开了了解外界的一个窗口。黑黑的屋子里,只有荧光屏闪动着,我不时地敲着键盘,看到了以前从未听说过的许多知识。其中,Ken Perlin(http://mrl.nyu.edu/~perlin/doc/oscar.html)的网站给我留下了深刻的印象,perlin noise、过程纹理用简洁的方式叙述着我们身边迷人的大自然。下面几张图片是我利用GPU实时渲染生成的,第一张是木头纹理,接着三张摸拟大理石纹理,最后一张想做成花岗岩,不过还欠火候。 过程纹理主要用于模拟自然界中常见的Marble,Stone,Wood,Cloud等纹理。大多数的过程纹理都是基于某类噪声函数(Noise Function),比如说perlin noise。在过去,由于过程纹理计算量很大,在实时绘制中很少使用。但是GPU的出现,促进了过程纹理在实时渲染中的广泛应用。通俗介绍perlin noise的经典文章见:http://freespace.virgin.net/hugo.elias/models/m_perlin.htm。但是在实际应用中,要生成漂亮的纹理,还有大量的BLACK ART,一般文献上很少详细记载。这都需要我们不断的去探索。我想科学与技术的关系也在此,科学只讲述原理,但要运用到实际生产中去,就得依靠技术。科学作为普世原理往往是公开的,而技术却经常以专利等形式加以保密。 |
|
||||||||||||||||||||
|
|