Sunday, March 16, 2008

raytraced comic rendering


前段时间买了一本叫做noir comics的书。作者介绍了一种完全用黑白两色来表现的画风。下面引述前言的一些话:
black is my favorite color.
although there is a debate on whether black and white are actual colors - such as red, yellow, or blue - to me black is the most vibrant. when applied, black is undeniably striking. it defines, it punctuates, it makes a statement.
the french word for the color black is noir. over time, noir has come to reflect a mood, a tone, and most appropriately, a style. suggestive of danger or violence, film noir is characterized by low-key lighting in a bleak urban setting with corrupt, cynical characters. in my approach, the word noir simply celebrates the color black; it is not confined to a specific genre.
这种画风我很喜欢:现实里略带些残酷。

光线追踪这门课要求我们扩展pbrt。一开始我打算做participating的渲染。但是看到的那个paper设计到很多参数,例如说牛奶中蛋白质和维生素的比例。这些都无从知晓。还有公式的单位也没有讲,看的很头大。例如光的波长用的是纳米还是什么?最后发现用的是米!
诸多不便,最后让我不得不换个题目。用raytracer实现以下noir comic的这种画风。
用raytracer做NPR的好像不多。我能找到的文章讲NPR的都是建立在realtime的基础上的。虽然很多商业的渲染器都支持这个功能,但是毕竟raytracer追求的是真实,很多功能,例如全局光,path tracing这些东西,都在noir这种画风中用不到。所以我要做的是简化raytracer的shader程序,另外加上silhouette detection。下面是一些结果,我还基本满意,不过还有些小问题:

Friday, March 14, 2008

用CUDA在GPU上实现一个神经网络

这个学期选修了显卡体系结构的课。作为课程设计,我们在GPU上实现了一个简单的神经网络,可以辨识手写的数字输入。效果还不错。速度比CPU的提高了200多倍,而准确率差不多,都是90多。详细的情况我发在了codeproject上面了。http://www.codeproject.com/KB/graphics/GPUNN.aspx

Tuesday, March 11, 2008

pbrt渲染器的一个bug

pbrt这个渲染器有个bug,渲染带光子贴图的场景时,会产生access violation。原因是kdtree.h这个文件有问题。第96行,


std::nth_element(&buildNodes[start], &buildNodes[splitPos],
&buildNodes[end], CompareNode(splitAxis));
改成
std::nth_element(buildNodes.begin() + start, buildNodes.begin() + splitPos,
buildNodes.begin() + end, CompareNode(splitAxis));

就好了。

感觉是个挺奇怪的问题。还没有细想过。
kdtree是存储光子贴图的结构。

Thursday, February 28, 2008

得到了签名版的PHD漫画

piled higher and deeper http://www.phdcomics.com/ 这本书是专门讲计算机系博士生生活的漫画书。我之前在国内的时候就听说过。今天作者到学校来签名售书。弄到一本,yeah!作者是斯坦福的华裔,计算机系博士,现在在加州理工。这个漫画从98年开始画的,居然画了十年。该不会10年都没能毕业吧。可以看的出来,他最早的漫画笔法还不是很纯熟,到现在已经老练很多了。我前面的老美问他是用软件还是直接手绘的,他讲是在wacom上直接画的。





Wednesday, January 16, 2008

听克林顿的大忽悠

前两天才说到选举的事情。昨天晚上克林顿就跑来学校拉票。
头一次经历这种事,感觉政治选举还是很具娱乐性的,简直和看演唱会一样。
难怪国内那帮代表开大会的时候要睡觉呢,主要还是台上的说客太没有激情了。
美国的政治很具体,绝对没有空谈和谐,而是告诉民众,如果我当选,你们会得多少钱。











Friday, January 11, 2008

到底什么样的it公司能赚到钱?

人在饭桌上的思维总是活跃的。至少我是这样。只可惜教授从来不肯把算法那些东西放到食堂里去教。我的嘴也真是神奇,讲话都不耽误吃,难道都是从鼻子塞进去的?

今天的饭桌会议讨论的议题是,什么样的it公司会赚钱。是技术型的,还是商业运作型的。

我以前总在想,到底为什么google能够搞起来。是它pagerank的技术,还是什么?就我而言,我最开始用google完全是因为它界面简洁,载入速度相对快。而至于pagerank是否真的把我最希望的东西放在最前面,我倒是没有太留意。甚至pagerank这个东西,也是我用了google很长时间之后才听说的。而且至今知道的也不是很多。我之前也想要看一看关于pagerank的那篇论文,但是觉得很枯燥,没有看进去。我一直觉得pagerank是个很奇妙的东西,甚至表示怀疑。因为对一个网页的好坏评价,通常是很主观的。这里面心理学的成分可能要远远大于机械的引用次数。这就好像有人要试图用机器来判断人的美丑,或者对作文进行评判一样。我知道已经有的研究机构在这么做,但是结果仍然是很死板的。所以我感觉google最初吸引我的就是它的简介界面。

我们还讲到ipod。俞师兄讲,当年刚出第一代ipod的时候,丑得要命。但是却很快火起来了。论音质,ipod耳机不是很好,论功能,连收音机的功能也没有。还有facebook,感觉就是个类似chinaren的东西,还有youtube和flickr这些网站,感觉技术上也没有什么革新。还有windows得益于界面,即使蓝屏也没什么影响。dos得益于简单的命令,即使没有密码保护和多用户的功能,也很成功。在体系结构书上更是问,到底是不是成功的产品体系结构都完美,答案是错的,说是intel的8080芯片就是很丑陋的设计。

所以很多it公司的成功在于商业的运作。这不得不让我们思考,到底应该把力气放在什么地方。是闭门造车,还是什么?没准google花钱多买一个服务器,就可能比改进算法带来更多的效率。表面上是技术公司在较量,背地里是它们背后的风险投资在比谁更能砸钱。话又说回来,一个缺乏技术的东西,又很容易被别人模仿。比如有许许多多类似youtube的网站。还有baidu模仿google。所以这些事情很难想透。

唉!饭桌会议总是这样,每次都是先上升到一个很高的高度,甚至是大慈大悲,拯救全人类的高度,然后突然发现我们都很渺小,什么都不懂,就突然清淡收场,各自回实验室做工。

我问骆同学,到底加州理工那帮牛人都是啥样子?他说那帮人都特喜欢科幻,吃饭讲的都是科幻的东西。瞧,还是挺有区别的。

Wednesday, January 09, 2008

自由和平等

最近看到论坛上有很多人在讨论美国的总统竞选。一开始,奥巴马在美国的呼声很高。但是奥巴马这个人我是很反感的。撇开之前他全面抵制中国制造的玩具不谈,主要的原因在于他政策的主导思想是要照顾弱势的美国人,实行全民的医疗保险,增加中产阶级的税收。另外还有一条政策就是对非法移民放宽条件,让有家庭关系的移民优先到美国来。而科技移民就要受到排挤。在美国,亚裔人群很多都是从事高新技术的,因此他当政之后,亚裔人群是最直接的受害者。他们要交更多的税,养活一帮懒汉。不过令人感到遗憾的是,奥巴马的政策并非特立独行,可能在几位总统候选人之中还算得上是主流的思想。这帮搞文的和搞宗教的人,就喜欢玩博爱。让一个搞理工的人当政,估计社会可以更理性。不过理工的人嘴都笨一点,演讲的时候不太懂得煽情和蛊惑人心,或者可能对执政根本没什么兴趣。

美国选举其实跟我关系不大,留学生又没有选举权,不过税还是要上的。以后是不是要留下工作,工作多久都是未知数。不过,如果真的生活在一个像奥巴马描述的吃大锅饭的社会里,也是相当恶心的一件事。因为这样的政策是对知识和劳动的不尊重。

关于选举的讨论在论坛上引发了关于左派和右派的分辨。我专门查了查左派和右派的定义,左派主张平等高于自由,右派主张自由高于平等。这个说法让我觉得有点意外,因为在我看来平等和自由不应该有什么矛盾。

关键在于,我认为的平等和上述的平等是不一致的。我认为的平等,应该是每个人都享有获得利益的平等机会,而不是每个人都享有平等的利益。平等绝对不能意味着吃大锅饭。能者多得的社会才是一个平等的社会,按劳分配本身就是平等。这就好像在学校里,学习好的人成绩高是一个道理。总不能给不学习的人100分吧。当然,有些学生笨一点,老师可以酌情给个及格的成绩。在我的平等社会里,每个人都应该有平等的高攀机会,比如无论家境如何,都能受到教育。除非是那些丧失了劳动能力的人,社会才应该给予特殊的照顾。

我记得去柏林动物园玩的时候,门口躺了很多流浪汉,衣著很光鲜,懒洋洋地晒太阳。我当时看到的,不是发达国家的和谐社会,而是德国衰落的迹象。最搞笑的是,事后有人跟我讲,在德国,这些无业游民每年还可以享受一次免费的出国度假。

如果我真生活在一个可以吃大锅饭的社会里,那我一定要带头吃大锅饭。我就不信我天生的肌肉松弛和四次元空间胃,弄不垮这个社会。就算我的胃吃倒了,还有千千万万其他人无良的胃液,把这个猥琐的社会给消化掉。

我感觉,目前来讲美国的穷人还保持着操守。没有像德国的那些人那样穷(懒)得这么嚣张的。不过德国的治安还不错,相对很和谐。说不定他们是想把那些社会隐患喂胖一点,让他们都脂肪堆积起来,这样想为非作歹也没有体力了。

不过话说回来,政府面对的情况可能又是我想不到的。例如一个社会的劳动岗位很少,但是又有过剩的劳动力。这样 即使这些人很有意愿去工作,但是也没有那么多机会。在这种情况下,政府出钱来养活他们,也是不得已的事情。不过我觉得简单的喂,不如把税收用在给这些人创造就业机会上。

我吃饭去了...