﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Raytrace world</title><link>http://www.cppblog.com/chaos/</link><description>Chaos 的光线跟踪世界</description><language>zh-cn</language><lastBuildDate>Mon, 20 Apr 2026 06:31:13 GMT</lastBuildDate><pubDate>Mon, 20 Apr 2026 06:31:13 GMT</pubDate><ttl>60</ttl><item><title>关于 Fast Poisson-Disk Sample Generation</title><link>http://www.cppblog.com/chaos/archive/2006/05/21/7462.html</link><dc:creator>Chaos Chiao</dc:creator><author>Chaos Chiao</author><pubDate>Sun, 21 May 2006 10:30:00 GMT</pubDate><guid>http://www.cppblog.com/chaos/archive/2006/05/21/7462.html</guid><wfw:comment>http://www.cppblog.com/chaos/comments/7462.html</wfw:comment><comments>http://www.cppblog.com/chaos/archive/2006/05/21/7462.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/chaos/comments/commentRss/7462.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chaos/services/trackbacks/7462.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: SIGGRAPH 2006 中一篇论文的实现，主要讲述快速 Poisson Disk Pattern 生成。&nbsp;&nbsp;<a href='http://www.cppblog.com/chaos/archive/2006/05/21/7462.html'>阅读全文</a><img src ="http://www.cppblog.com/chaos/aggbug/7462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chaos/" target="_blank">Chaos Chiao</a> 2006-05-21 18:30 <a href="http://www.cppblog.com/chaos/archive/2006/05/21/7462.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Chaos on Graphics  ~  About 数学库之一　SSE/SSE2</title><link>http://www.cppblog.com/chaos/archive/2005/10/22/788.html</link><dc:creator>Chaos Chiao</dc:creator><author>Chaos Chiao</author><pubDate>Fri, 21 Oct 2005 18:39:00 GMT</pubDate><guid>http://www.cppblog.com/chaos/archive/2005/10/22/788.html</guid><wfw:comment>http://www.cppblog.com/chaos/comments/788.html</wfw:comment><comments>http://www.cppblog.com/chaos/archive/2005/10/22/788.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/chaos/comments/commentRss/788.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chaos/services/trackbacks/788.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Chaos on GraphicsAbout 数学库之一　SSE/SSE2&nbsp;Chaos Chiao&nbsp;&nbsp;毫无疑问，数学库是图形程序的基石，是图形程序运行效率的关键之一。一个优秀的数学库可以让图形程序运行得更流畅，甚至要快上几十倍上百倍。有时候替换一条除法运算会带来成倍的效率增长，比如用乘以 1/op 替换 vector 里的 operator /...&nbsp;&nbsp;<a href='http://www.cppblog.com/chaos/archive/2005/10/22/788.html'>阅读全文</a><img src ="http://www.cppblog.com/chaos/aggbug/788.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chaos/" target="_blank">Chaos Chiao</a> 2005-10-22 02:39 <a href="http://www.cppblog.com/chaos/archive/2005/10/22/788.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>About Blooming Quad，我的准实时光线跟踪渲染引擎</title><link>http://www.cppblog.com/chaos/archive/2005/10/21/BQ.html</link><dc:creator>Chaos Chiao</dc:creator><author>Chaos Chiao</author><pubDate>Fri, 21 Oct 2005 13:29:00 GMT</pubDate><guid>http://www.cppblog.com/chaos/archive/2005/10/21/BQ.html</guid><wfw:comment>http://www.cppblog.com/chaos/comments/784.html</wfw:comment><comments>http://www.cppblog.com/chaos/archive/2005/10/21/BQ.html#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://www.cppblog.com/chaos/comments/commentRss/784.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chaos/services/trackbacks/784.html</trackback:ping><description><![CDATA[<DIV>&nbsp;</DIV>
<DIV>一个支持 RIB 和&nbsp;RSL 的高速 raytracer，高速得可以近实时进行光线跟踪。</DIV>
<DIV>&nbsp;</DIV>
<DIV>
<HR>
</DIV>
<DIV><A href="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/35980179.jpg"><FONT color=#e68328>大图</FONT></A></DIV>
<DIV><FONT color=#e68328></FONT>&nbsp;</DIV>
<DIV><A><FONT color=#e68328><IMG style="ZOOM: 50%" src="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/35980179.jpg" border=0></FONT></A></DIV>
<DIV><FONT color=#e68328></FONT>&nbsp;</DIV>
<DIV>经过了一年多的断断续续的开发，BloomingQuad 终于已经成型了，并能向一些实际应用性工作迈进，比如 Ambient Occlusion ，或者 RSL Shader。<BR><BR>其实我已经写疯了，所以现在我似乎都不知道应该写什么来介绍它好。<BR><BR>然而，我刚刚毕业了，离开了舒服的学校，接下来必须面对吃饭问题。<BR><BR>所以、开门见山，我现在发布的 BloomingQuad 其实并不完善（应该说相当不完善），我 90% 是为了找工作才发布的，又或者说，希望能找到懂得它的作用和意义的合作伙伴。<BR><BR>很多人说我不切实际、又说我开发些没有 P 用的东西，也有很多人不屑，我不在乎，因为只要这个世界上依然有一个人懂得下面这些东西是什么，那就已经足够了。当然，还希望那个人能支持我继续做下去。</DIV>
<DIV>&nbsp;</DIV>
<DIV>
<HR>
</DIV>
<DIV>&nbsp;</DIV>
<DIV><A href="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/54319736.jpg"><FONT color=#e68328>大图</FONT></A></DIV>
<DIV><FONT color=#e68328><IMG style="ZOOM: 60%" src="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/54319736.jpg" border=0></FONT></DIV>
<DIV><FONT color=#e68328></FONT>&nbsp;</DIV>
<DIV>Ambient Occlusion 演示。</DIV>
<DIV>&nbsp;</DIV>
<DIV>
<HR>
</DIV>
<DIV>&nbsp;</DIV>
<DIV>把它作为商业用渲染器，在国内唯一有用武之地的就是为专业工作室定制特殊的渲染效果，又或是一些需要用到更开放的渲染技术的高端项目。简而言之、就是作为 In house Renderer.<BR><BR>但也必须先讲明白，开发和维护这么一个东西，是极其不容易的，在目前来说投入与产出可能不成正比，它的价值，必须在一段时间的积累后才能看到。 Pixar 开发的 PRMan 也不是一年半载就能为它渲染电影的，80 年的项目，到了 95 年才渲染出第一部动画电影。<BR><BR>尽管这是一场持久战，但若我们真想达到 Pixar 的高度，一味地研究别人开发出来的软件和技术是徒劳的，鼻子将永远被别人牵着走。<BR><BR>那么除了开发一个 PRMan 的替代品外，我也自认通过这个渲染器的开发，我已经对整个 RenderMan 体系有非常深入的了解，甚至对各种渲染器的工作体系和结构有了很深刻的认识。不仅仅是 RenderMan ，MentalRay 的 MI 架构也是我的重点研究部分，BloomingQuad 的前几版所使用的 Scene Description 就是类 MI 的节点式结构。<BR><BR>不过后来我觉得 RenderMan 比 MentalRay 要流行得多，而直接使用 RIB 会更划算，于是我开始把整个结构体系进行重写，以 RI Spec 3.3 为标准，力求可以完全符合 RI Spec 3.3 ，希望能渲染出和 PRMan （在轮廓和基本要素上）一致的图像。<BR><BR>当然这是非常艰难而痛苦的，特别是一个人、只能利用课余时间编写。</DIV>
<DIV>&nbsp;</DIV>
<DIV>为了达到能在实际渲染中使用，我把整个渲染器都使用了 SSE/SSE2 指令优化，尤其是 Raytrace 核心部分，全部用汇编写成，速度“可以说”非常快，能达到（某一测试场景）1800 万次/秒，约是 Pixie 的 2 倍。<BR><BR>而最后，为了找到商业使用的机会，我修改了一下内核，使它能实现简单的 Realtime Raytrace，以直观的方法表现它到底有多快。</DIV>
<DIV>&nbsp;</DIV>
<DIV>
<HR>
</DIV>
<DIV>&nbsp;</DIV>
<DIV><A href="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/60540141.jpg"><FONT color=#e68328>大图</FONT></A></DIV>
<DIV><FONT color=#e68328><IMG style="ZOOM: 70%" src="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/60540141.jpg" border=0></FONT></DIV>
<DIV><FONT color=#e68328></FONT>&nbsp;</DIV>
<DIV>&nbsp;Realtime ~ 这个场景比较少面，所以也能达到 7 fps 左右，320 X 240</DIV>
<DIV>&nbsp;</DIV>
<DIV>
<HR>
</DIV>
<DIV>&nbsp;</DIV>
<DIV><A href="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/19351421.jpg"><FONT color=#e68328>大图</FONT></A></DIV>
<DIV><FONT color=#e68328><IMG style="ZOOM: 60%" src="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/19351421.jpg" border=0></FONT></DIV>
<DIV><FONT color=#e68328></FONT>&nbsp;</DIV>
<DIV>400 X 300 的 realtime 演示，我绝对不会使用 Sphere、Box 这些直接简化了 Intersection 的东西来自欺欺人，所有演示的物体都是 General 多边形。<BR></DIV>
<DIV>
<HR>
</DIV>
<DIV>&nbsp;</DIV>
<DIV><A href="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/39913397.jpg"><FONT color=#e68328>大图</FONT></A></DIV>
<P><FONT color=#e68328><IMG style="ZOOM: 50%" src="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/39913397.jpg" border=0></FONT></P>
<P><FONT color=#e68328></FONT>&nbsp;</P>
<P>支持 RSL 的编译与执行、上面的三个物体都分别使用了编写的 Shader ，盒子用了 Slim 生成的 Worley ，平面用了 step( x , mod() ) 形式的 Grid ，球体利用 s 坐标混合了 Thead 和 Spline ( Noise( P ) )。</P>
<P>&nbsp;</P>
<P>另外我也终于完成了持久的“抗战”，写出了一个 RenderMan Shading Language 编译器与执行虚拟机。这个编译器符合 RI Spec 3.3 标准，能成功编译出 Slim 生成的各种 Shader ，而且支持 Constant Folding、Instruction Replacement、Dead Code Elimination 等优化。但目前它的光照部分（包括 Illumination 和 Illuminate 、Solar、Ambience）都在测试中，Gather 正在编写，而 Occlusion 和 Indirect Diffuse 只能靠命令行激活。<BR></P>
<P>
<HR>

<DIV><A href="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/44045248.jpg"><FONT color=#e68328>大图</FONT></A></DIV>
<P><BR><FONT color=#e68328><IMG style="ZOOM: 40%" src="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/44045248.jpg" border=0></FONT></P>
<P><FONT color=#e68328></FONT>&nbsp;</P>
<P>相信有更多人（可能一共才只有几个吧）会关心它到底怎么在 Max、Maya 、XSI 中使用，其实很简单，RIB 非常流行，几乎所有的大型软件上都有导出 RIB 文件的软件，MAX 有 maxman，Maya 有 RAT、mayaman、liquid，XSI 有 rib 插件，LW 有 Lightman，Houdini 本身直接支持，所以根本不需要担心、所有的大型软件都能和 BloomingQuad 进行沟通。<BR><BR>而且我能保证 MTOR 从 Maya 里导出的东西能大部分正确渲染。<BR><BR>大部分是指哪些部分呢？其实目前仅仅是指多边形而已，而且最好是三角片面的多边形，又或者保证“合法”的多边形，若有重边或者法线有问题，都不能渲染。<BR><BR>上面测试用的两个人头模型，都是我自己在 Maya 里做的，然后用 MTOR 导出来渲染的，可以看看它到底渲染出来的结果准确不准确。<BR><BR>如果你想直接在 Maya 里渲染 —— No problem ，在 RAT 里设置一下就 OK 了。</P>
<P>&nbsp;</P>
<P>
<HR>

<DIV><A href="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/28777276.jpg"><FONT color=#e68328>大图</FONT></A></DIV>
<P><FONT color=#e68328><IMG style="ZOOM: 40%" src="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/28777276.jpg" border=0></FONT></P>
<P><FONT color=#e68328></FONT>&nbsp;</P>
<P>也可以在 Maya 里启动实时 raytrace ~&nbsp;&nbsp;</P>
<P>&nbsp;</P>
<P>
<HR>

<P>&nbsp;</P>
<DIV>说实在，这个 Realtime Raytrace 不太 Realtime，当然，我只是修改了一下 Render Loop 就拿出来了，里面的模型结构、Shading 体系，都是按照软渲染设计的，和普通软渲染共用同一个结构，没有作任何的实时渲染优化，所以能跑出这个 fps ，我自己就觉得已经 OK 了。<BR><BR>为了要说明它是 Realtime 的，我还设计了几个按键，i k l j , . 这六个，可以移动镜头，很简陋的功能而已，当然可以做得更复杂一些，但我目前只是演示一下我能做到什么地步，而怎么再精益求精则是在我解决了工作问题之后再想的事情了。<BR><BR>那么基本上都讲得 7788 了，开发过程还有很多有趣的东西，不过这只是很少数比较关心开发的人想要知道的。<BR></DIV>
<DIV>
<HR>
</DIV>
<DIV>&nbsp;</DIV>
<DIV>其实这个所谓“渲染器”所能做到的还很有限，毕竟我只有一双手、一个脑袋，但我所希望的是能通过它让更多人看到，到底我们的开发能够做到些什么出来。</DIV>
<DIV>&nbsp;</DIV>
<DIV>并不是说，别人的软件、所实现的功能，我们就一定绝对无法赶得上，这个说法是完全错误的。</DIV>
<DIV>&nbsp;</DIV>
<DIV>问题在于，一直以来我们从来没有怎么在这上面投入过，大部分人都在观望，还有的在冷嘲热讽。</DIV>
<DIV>&nbsp;</DIV>
<DIV>对，可能还没有这个市场、可能技术还不成熟，但必须有人去尝试，必须有人出来承担这个责任。</DIV>
<DIV>&nbsp;</DIV>
<DIV>上面那些效果，在大部分人用商业渲染器看来，很幼稚。不过这仅仅是一个开始，我用一年时间做到了一个开始。</DIV>
<DIV>&nbsp;</DIV>
<DIV>或许我最后还是要被迫放弃 CG 的工作，放弃我喜欢的开发，放弃我要超越 PRMan 的梦，但发这个帖子，除了为我自己找一个机会以外，<STRONG><FONT color=#ff0000>更多的是希望大家在建模的时候、在 Rig 的时候、在 Surfacing 的时候、在 Key 动作的时候、在等待渲染的时候，能多想一想、什么时候我们能用我们自己的 CG 软件去做这些事情。</FONT></STRONG></DIV>
<P>&nbsp;&nbsp; 
<HR>

<P></P>
<P>&nbsp;</P>
<P><STRONG>下载：</STRONG></P>
<P><STRONG>rar 包</STRONG> <A href="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/97004177.rar"><FONT color=#e68328>1</FONT></A> <A href="http://www.chinadv.com/forum/Web/UpFiles/2005/7/4/51712960.rar"><FONT color=#e68328>2</FONT></A>&nbsp;</P>
<P>&nbsp;</P>
<P>
<HR>

<P></P>
<DIV>两个文件解压到任何一个文件夹都可以，如果想要在 Maya 里调用，就必须放到 RAT 能找到的目录里，比如任何一个在 PATH 里的目录。</DIV>
<DIV>&nbsp;</DIV>
<DIV>注意！必须是支持 SSE2 指令集的机器（即 P4、PM、A64）才可以运行。</DIV>
<DIV>&nbsp;</DIV>
<DIV>在命令行里输入：</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT style="BACKGROUND-COLOR: #000000" color=#ffffff>bqrd -rt occlusion.rib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>即可进入 Realtime 测试。</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT style="BACKGROUND-COLOR: #000000" color=#ffffff>bqrd -oc 32 king-triangle.rib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>测试渲染 Ambient Occlusion，其中 -oc X 是指定采样的数目。</DIV>
<DIV>&nbsp;</DIV>
<DIV>而 rscl 是 RSL 的编译器，懂 RenderMan&nbsp; 的朋友可以试一下自己写 Shader 给 rscl 编译，.shader 的文件是已经编译好了的 Shader。</DIV>
<DIV>&nbsp;</DIV>
<DIV>注意！illuminance、illuminate、gather 等 statement 目前仍不支持，所有的 Derivative 都有限度支持（不支持 Du() 与 Dv() ，dPdu 与 dPdv 的结果只能作为切线方向）。</DIV>
<DIV>&nbsp;</DIV>
<DIV>其它都合符 RenderMan Interface Specification 3.3 。</DIV>
<P>&nbsp;</P>
<P>
<HR>

<P></P>
<P>p.s. </P>
<DIV>&nbsp;</DIV>
<DIV>渲染完成后可以按 's' 快捷键把渲染结果储存成 TIFF 格式的图片。</DIV>
<DIV>&nbsp;</DIV>
<DIV>渲染窗口中按 F1 可以看到其它快捷键表，可以显示独立通道、或者混合显示 alpha 等等。</DIV>
<DIV>&nbsp;</DIV><img src ="http://www.cppblog.com/chaos/aggbug/784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chaos/" target="_blank">Chaos Chiao</a> 2005-10-21 21:29 <a href="http://www.cppblog.com/chaos/archive/2005/10/21/BQ.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Chaos on Graphics 10.21</title><link>http://www.cppblog.com/chaos/archive/2005/10/21/ChaosOnGraphics.html</link><dc:creator>Chaos Chiao</dc:creator><author>Chaos Chiao</author><pubDate>Fri, 21 Oct 2005 13:05:00 GMT</pubDate><guid>http://www.cppblog.com/chaos/archive/2005/10/21/ChaosOnGraphics.html</guid><wfw:comment>http://www.cppblog.com/chaos/comments/783.html</wfw:comment><comments>http://www.cppblog.com/chaos/archive/2005/10/21/ChaosOnGraphics.html#Feedback</comments><slash:comments>28</slash:comments><wfw:commentRss>http://www.cppblog.com/chaos/comments/commentRss/783.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chaos/services/trackbacks/783.html</trackback:ping><description><![CDATA[<DIV align=center><B><FONT face=Verdana size=5>Chaos on Graphics</FONT></B></DIV>
<DIV> </DIV>
<DIV align=right><FONT face=Tahoma size=4>Chaos Chiao</FONT></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>　　灵感来自于《Joel on software》， 老实说，我在很久以前就已经希望为图形学写点什么了，要不就是没下手，要不就是写了一半觉得不妥当。到底我算什么人，要为图形学写点什么，这似乎很荒谬，很狂妄。虽然我在生活中也算是一个很狂妄的人，不过对于我自己所钟爱与了解的图形领域，在某程度上我狂妄不起来。 <BR></DIV>
<DIV></DIV>
<DIV><BR>　　很简单，图形学并不是热门的研究领域，至少在Blog或者文档上面能看得出来。大家都去搞高深的ERP了，要不就是 C++的诡秘Template（当然我在写程序的时候不会抗拒，甚至会比较喜欢用）。直到后来我看到了《动手写自己的操作系统》，这的确是一本很优秀的书，曾几何时我也想过要写操作系统，可是人本来就不够时间用，开始了写运行时系统与渲染器以后，我就一直没时间再写其它东西了，包括我高中的时候非常钟情的GUI。这本书激励了我，作者虽然不是一个专家级的人物（这里的专家是有某种含义的），不过他很负责任。我说所谓负责任是，一个领域里做研究的人，应该肩负起促进这个领域发展的责任，而促进其发展，不仅仅是促进它高的那一方面更高，而更重要的是促进它低的地方能够得到更大的提升。 <BR></DIV>
<DIV></DIV>
<DIV><BR>　　<STRONG><FONT color=#ff0000>断层</FONT></STRONG>，这是最可怕的，也是中国技术界最大的问题，鄙人认为。高的人高高在上，低的人拿着一两本垃圾书当作宝贝，而中间缺乏了必要的连接。光靠高校教育和硬性工作积累，只会把这个断层越拉越大。技术的马太效应比经济显得更恐怖，因为整个社会的资产总量是比较稳定的，死了一个暴发户社会没有少多少钱。但死了一个掌握了高技术的人（抱歉允许我说得不好听一些，逃了），这对整个业界的损失是无法估量的，尤其在于当他掌握的技术只有他掌握的时候。 <BR></DIV>
<DIV></DIV>
<DIV><BR>　　所以，出于一种社会责任感，高技术人员不光需要不断提升顶尖的技术，还有义务防止技术马太效应，导致低者越低高者越高。我提倡应该多出版“中层”图书。市面上的书以“入门到精通”为主流，实质上读完了半只脚踏进了门，但精通就远远算不上。还有一大部分含金量特高，理论扎实、内容丰富，可惜起点太高，大多是滥翻译国外教程，脱离了我国本身的教育模式和现状。有那么一部分人，他们门是入了，学得也不错，亟待提高，然而却找不到恰当的材料。不幸的是，这部分人实际上占了主流，尽管不满这种半桶水的水平，然而却无法通过简单的途径得到充实。 <BR></DIV>
<DIV></DIV>
<DIV><BR>　　当然我就是这样的一个实例。 </DIV>
<DIV>　　我不满，我喜欢图形学，但市面上就充斥着图形学的垃圾书。恕我直言，这些封面印着图形学三个大字的垃圾简直丢尽了中国图形学研究者的光。内容陈旧、老套、重复、互相抄袭严重，有的书竟然连一句代码都没有。目前最前沿的Photo Realistic Rendering已经研究到了Multi-layered Sub-Surface Scattering了，那些迂腐的作者还在用几十年前的输入输出设备细节耗费半本书的篇幅。 <BR></DIV>
<DIV></DIV>
<DIV><BR>　　和一般的专业人员不同，我是一个彻头彻尾的<STRONG>业余爱好者</STRONG>。自96年来我一直在图形相关的领域自己作研究，直到2000年的7月，那是高二的暑假，我花了一个月的时间从头到尾写了一个辐射度渲染器，并根据我的一些想法设计了一套求解四种不同情况下辐射度的算法，写到了一篇论文里去。这是我人生的第一个程序和第一篇论文。很可惜我的高考还是落榜了，当然，没有真正的落榜那么严重，只是<FONT color=#0000ff><STRONG>我读了一个毫不相关的专业——新闻学</STRONG></FONT>。不过我没有放弃，我一直视图形为自己的生命，所以我继续地在图形上作研究，开始了更系统的学习，日复一日地写代码，测试，思考。最后我在毕业前终于完成了自己布置的毕业设计——一个实时的光线跟踪渲染器，以及它的Shading Language编译器和虚拟机。 <BR></DIV>
<DIV></DIV>
<DIV><BR>　　为此我非常自豪，因为没有任何导师、没有任何人对我进行过系统的培训或者指导，我只是不断地四处寻找各种可以找到的资料、看Open Source的代码，最重要的，是自己动手写出想要的东西。比如说编译器，这对于我来说是非常非常困难的，新闻学的老师们从来没有在课堂上面提起过什么是编译器、怎么构造一个编译器。我看了三本书，钻研了半年多GCC的代码，在google上淘了一次又一次的资料，终于成功地实现了从简单的asm编译器、到支持面向对象的运行时系统编译器。然而最值得我骄傲的是我的光线跟踪系统，从一开始的慢如蜗牛、到现在近乎实时渲染，其中的每一行代码都渗透着我的血与汗。 <BR></DIV>
<DIV></DIV>
<DIV><BR>　　再回首，感觉滋味百般，若是能够有人在这个过程中稍微给与我支持与指点，或许我可以少走很多弯路，可以节省很多时间、写更多有用的代码。所以，我觉得我有责任，有义务，为后来人铺路。留下我所学过的、我所钻研过的。尽管我很嫉妒有机会读图形专业的学生、很恼怒论坛里时不时有人出来说他将要读这个专业了却不知道要研究什么，但我知道分享经验是值得的。我希望能够在某种程度上推动中国的图形技术发展，因为我爱这个领域，仅此而已。 <BR></DIV>
<DIV></DIV>
<DIV><BR>　　趁着毕业后在家待业的时间，我会尽量多写一些，多分享成果，涵盖数学库、软渲染、实时渲染、几何体构造、光线跟踪、系统基础与结构体系等等，也欢迎大家一起交流，不仅仅是图形学，还有图形学所涉及的如编译、系统、语言、计算机结构体系等等。更欢迎高手斧正、毕竟我不是科班出身的，某些概念、理论可能理解得并不很到位，希望交流的时候自己也得到提升。 </DIV>
<DIV> </DIV>
<DIV> </DIV><img src ="http://www.cppblog.com/chaos/aggbug/783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chaos/" target="_blank">Chaos Chiao</a> 2005-10-21 21:05 <a href="http://www.cppblog.com/chaos/archive/2005/10/21/ChaosOnGraphics.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>