2004年03月01日

中美日教材之比较


今天狂学计算机图形学一日,深有感触。


我手头上的计算机图形学教材有三本:美国Donald Hearn等著的《Computer Graphics:Second Edition》,日本OHM大学理工系列的前川佳德编著《计算机图形学》,以及北京邮电大学出版,王飞编著的《计算机图形学基础》。


比较着看,结果发现了很大的差别。


美国的教材比较实用,一般IT书籍里的“圣经”均为美国人所写。比如这本厚厚的《Computer Graphics》,内容详细到了令人发指的地步(笑),对PHIGS的一切细节和算法均有全面的记载。我看了一下,光是前面的综述和简介就有50页。我现在只能有选择地学习,否则根本跟不上老师的进度。这本书既适合本科生打基础,又适合研究生深造。缺点是内容太过详尽,学起来压力很大。


日本的教材就显得短小精悍,十分别致。这本《计算机图形学》是一本典型的基础入门书,我觉得其实应该叫做《计算机图形学概论》更贴切。其非常值得称赞的一点就是正式引入了CG的缩写,其第二章的标题就是《CG的构成》。别笑,如今CG这个缩写已经走进了我们的生活,已经成了一个标准用语。可是现在一般的教科书用的仍然是干巴巴的“Computer Graphics”或“计算机图形”,不够人性化。而且,这本教材开篇就重点指出了CG在游戏影视中的重大作用,更体现了日本社会对数字艺术的高度认同。这本书还有一个重要的特点是它作为一本CG入门书,居然对2D的内容只字未提,简介后直接进入3D建模,让人有点突然,抑或是,我的思维定势所致?


再看这本国产教材《计算机图形学基础》,通篇都散发着浓郁的本土气息。国产教材的特点就是理论性极强,随便翻一下,如果不是间或出现一两张插图,我几乎要以为这是一本纯数学方面的论著。书挺薄,可见作者的意图也是短小精悍,但是作为一本入门的书籍,其内容太过枯燥乏味,学术腔十分严重。同样是薄薄的一本,日本的教材覆盖了3D建模、变换、渲染、颜色系统、动画理论等CG方面各种各样的知识,而国产的教材全书都还只停留在那几个基本算法上。当然日本教材略过了2D部分,但是其内容的安排却显得更加有趣、实用。这种现象可能与两国CG行业的发达程度也有关系。


结论:美国教材适合研究用,日本教材适合入门,国产教材适合考试。


我的想法不一定是对的。

我躺着。耳机放出悠扬的音乐,NewAge的空气将我彻底地包围。


特异功能者说,冥想,然后你就会到达你自己的世界。


我躺着,醒着。我从昨天的我继承了双倍的感性和双倍的理性。今夜我的心情格外的好,我的思维无比敏捷。我开始考虑过去的事,今天的事,还有未来的事。我的感性意识和理性意识开始空前地活跃,它们在一个宽敞的空间里不断地碰撞,混合,交叠,错开。


你期望绝对吗?你渴望拥有吗?你害怕拒绝吗?你憎恨虚伪吗?


来吧,孩子。跟着我一起,我们来宽恕这个世界。


特异功能者说,冥想,然后你的额前会出现一扇窗,窗里有你想要的世界。


我躺着,看着。黑色的幕前终于浮出一块亮的方形。一个声音说:来吧,这里是绝对的世界。我期望看见绝对的自己。我渴望拥有绝对的灵魂。我害怕拒绝。我憎恨虚伪。我仿佛置身于漫天飞舞的碎片,那些碎片属于我的表面,我的纷乱的杂念。


这里有我的灵魂,我的源代码。


我说,来吧,来看你的世界。


 

记忆中的音乐(3):熊式情歌


听到熊天平的名字,总能联想到一些诸如温文尔雅之类的词汇。


第一次听熊天平的《雪候鸟》,当时感觉这个人嗓子和唱功简直太完美了,从此便对他频频留意。从《愚人码头》、《爱情多瑙河》,到后来的《心碎的冰咖啡》、《一个人流浪》等等,无一不是众口称赞的精品。


其实熊天平的声线和张信哲有的一拼,甚至我感觉前者要胜过后者。如果说张信哲代表的是一个现代商业包装下的超级偶像,那么熊天平则是一个文艺味道极浓的原创音乐诗人。



我向来是喜欢原创音乐的,因为感觉很纯,很真实。而熊天平的原创音乐更充分地体现出了一种优雅的诗的气质,这在流行乐坛中也是不多见的。


熊式情歌,听的人众多,然而唱的人少。因为难度太大。这是他的音乐无法充分普及的主要原因。另外,音乐的内容比较雅,比较小资,吸引的女生听众比较多一些。


我曾经收藏了一盘熊天平的特辑,是他的所有经典曲目的纯吉他演奏版。可惜,这张珍贵的特辑在我考大学的期间流失了。至今深以为憾。


不由感叹:现在会作曲,会弹吉他的歌手真的已经不多了。


怀念熊式情歌。

2004年02月29日

开始有了考研的感觉了。


我跟着浩浩荡荡的大军涌进考研班,向世人昭示了我考研生活的开始。


最ft的事情:我的网友mlc告诉我,他现在已经在北大了。我不知道北大的硕士预修班都教些什么东西,我只知道他已经开始搏命了。


mlc跟我不一样。我是学生,而他已经工作了几年。他现在脱产考研。


Leeforce:  今年分数线大概多少?


MLC:  320?


Leeforce:  啊


MLC:  靠,这里来的都比这个好很多的,320分很没面子的,只有单的才300


Leeforce:  那我得流汗了~


MLC:  靠,这里可是PKU耶,你怎么着也得流点血吧。


Leeforce:  …………


 


靠。


北京大学的缩写是PKU。Player Killer’s University。


也许考研就是一场PK罢。我得赶紧出去练级。


感觉好乱……


 


 

Delphi的GUI图形编程基础(2)


[.Brush: TBrush]
这里要注意TBrush与TPen的区别。在Canvas中,TPen控制的是画笔的属性,TBrush控制的是填充的效果。如果说TPen相当于Photoshop里的画笔,那么TBrush就相当于颜料桶。


TBrush的主要参数如下:
.Color : 填充的颜色
.Style : 填充的纹理样式,与TShape.Brush.Style相同。
.Bitmap : 填充的位图图案


注:.Style的妙用:
Style定义的网格纹理有一个特性,就是其镂空的部分是完全透明的。就是说,它可以实现一种伪半透明的遮盖效果(联想到纱窗和画漫画用的网点纸)。


[.Font: TFont]
控制Canvas显示文字的字体。这个很common,就不再赘述了。


以上是.Canvas最常用的几个Properties,现在我们来关注一下Method的情况:


[TCanvas的基本绘图操作]


Canvas.Lock;
锁定画布。防止其他线程对画布的干扰。


Canvas.Refresh;
刷新。


Canvas.MoveTo(x:integer,y:integer);
把画笔的位置移到(x,y);


Canvas.LineTo(x:integer,y:integer);
从画笔的当前位置画直线到(x,y);


Canvas.TextOut(x:integer,y:integer,str:string);
在画布的(x,y)位置输出字符串str的内容;


Canvas.Rectangle(X1, Y1, X2, Y2: Integer);
画矩形。参数决定矩形的两个对角。


Canvas.Ellipse(X1, Y1, X2, Y2: Integer);
画椭圆。(X1,Y1)和(X2,Y2)分别是椭圆所在矩形的对角。


TCanvas.Arc(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);
画弧。弧是由(X1,Y1)和(X2,Y2)定义的椭圆的一部分。该椭圆的圆心分别与(X3,Y3)和(X4,Y4)构成两条直线,这两条直线与椭圆的交点就是弧的起点和终点。起点到终点的方向是逆时针的。


Canvas.Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);
画饼图。各个参数的含义与Arc()的参数相同。


Canvas.Polyline(Points: array of TPoint);
画折线。参数Points为经过点的坐标数组。


Canvas.Polygon(Points: array of TPoint);
画多边形。参数Points为经过点的坐标数组。


PolyBezier(const Points: array of TPoint);
画贝塞尔曲线。参数Points为经过点的坐标数组。


注:TPoint的结构:
type TPoint = packed record
  X: Longint;
  Y: Longint;
end;


 


 

记忆中的音乐(2):《Fly Me To The Moon》


Fly me to the moon And let me play among the stars
let me see what spring is Like on Jupiter and mars
In other words hoId my hand In other words darling kiss me
Fill my heart with song and let me sing forever more
You are all l long for all l worship
and adore ln other words please be true ln other words l love you
Fill my heart with song and let me sing forever more you are all
l long for all l worship
ang adore ln other words please be true ln other words
ln other words ln other words
l love you



据说《Fly Me To The Moon》的原唱是个名不见经传的爵士歌手,然而经过众多爵士著名歌星的再三传唱,这首歌已经成为了爵士乐中的经典名作。大约在1995年,日本动画史上最辉煌的《新世纪福音战士(NEON GENESIS EVANGELION)》公映,片尾曲就是这首著名的《Fly Me To The Moon》。这部艺术性与商业性并存的作品取得了巨大的成功,这首歌也就跟着在亚洲地区迅速走红,成为动画迷们必听的曲目,其原声CD也成了必备的收藏品。


《Fly Me To The Moon》我一共听过二十多个版本,包括柔和的女生版、优雅的钢琴版、古典的弦乐版、劲爆的电子Remix版等等,甚至还有黎明的翻唱版本。


这首歌的特点就是它清爽,好听。轻快的节奏,夹带并不复杂的鼓点,以及绝对一流的旋律,足以使每个人都为之倾倒。非常甜美的歌词也使得这首歌更加吸引人。


这首歌还有一些特殊作用,比如缓解紧张、消除疲劳等等。


这首歌曾经陪我走过了一段重要的日子。

2004年02月27日

我们来看一下Delphi里面关于图形处理的基本方法。


Delphi中一般运用Canvas对象进行作图。


Canvas对象属于TCanvas类,封装了Windous的GUI方面的API函数。
一般TForm和TImage等控件都内嵌了Canvas对象。


比如我要在窗体上(100,100)处画一个红点,就可以用:
Form1.Canvas.Pixels[100,100]:=clred;


比如我要在窗体上画一条白线,就可以用:
procedure linetest;
begin
? Form1.Canvas.Pen.Color:=clWhite; //设置画笔颜色
? Form1.Canvas.MoveTo(10,10); //设定起始点
? Form1.Canvas.LineTo(100,100); //到终点画一条直线
end;


Canvas其实就是一块画布,学习的时候可以和Windows画笔程序的使用作类比。
下面我们就研究一下TCanvas类的使用技巧。


一、Canvas的属性配置


1。Canvas.Pen的配置。
[.Pen : TPen]
定义画笔的属性,属于TPen类。常用的包括如下设置:


? .Color : TColor //设置画笔的颜色
? .Width : Integer //设置画笔的粗细
? .Style : TPenStyle //设置线的格式,比如psSolid为实线,psDot为虚线
? .Mode : TPenMode //设置画笔的颜色修正模式,比如pmBlack为始终画黑线


TPenStyle所包括的常用线型有:


psSolid:? 即为普通的实线
psDot:? 点构成的虚线
psDash:? 短线构成的虚线
psDashDot:? 点和短线交错构成的虚线
psDashDotDot:? 顾名思义,短线-点-点式的虚线
psClear:? 透明线,相当于不画线:)


需要注意的是,虚线设置只能在Width=1的情况下有效。


下面看看TPenMode的颜色修正设置:


pmBlack:? 始终画黑线
pmWhite:? 始终画白线
pmNop: ?不变
pmNot:?与背景色取反
pmCopy:? 与Pen指定的颜色相同
pmNotCopy:? Pen指定的颜色取反
pmMerge:? 将pen的颜色和canvas背景色混合
pmMask:? 将pen的颜色和canvas背景色以遮罩的形式混合
pmXor:? 将pen的颜色和canvas背景色以异或的方式混合


关于后三种混合模式的区别,大家可以自己多多尝试。



篇幅所限,关于TPenStyle和TPenMode的更多详细设置在此省略,请参考IDE的帮助文件。


?


-待续-


?


?

2004年02月26日

记忆中的那些音乐(1):《水手》


《水手》
最早接触流行歌曲还是在小学。我们年轻的音乐老师总会在音乐课结束之前用那台老式的录放机为我们播放十分钟的最新的音乐磁带。当时正是港台流行音乐刚刚进入大陆的时期,虽然小学生的我们对其中的歌词并不明白,但是Pop的节奏很快就征服了我们。而《水手》则成了我们当时最喜欢的歌曲。“苦涩的沙吹痛脸庞的感觉,像父亲的责骂母亲的哭泣永远难忘记……”这支由残疾歌手郑智化演唱的歌曲成了我们那个时期的最爱,甚至精神寄托。到最后,我们每节音乐课的末尾都会固定地播放《水手》。小学毕业典礼的时候,我们大家聚在一起齐声轻唱《水手》,所有的人都泪流满面。每当听到这熟悉的旋律,我就会想起小学的美好时光,那段单纯幸福的日子。

我看《大逃杀2:镇魂歌》


BR II : This time it’s war.


深作欣二的突然辞世使得《大逃杀2》的完成历尽波折,不过我还是如期看到了这部传说中的影片。但是我看了一下各大网站的评论,好像都对这部影片无比失望,深作欣二的儿子深作健太也被骂了个体无完肤。


果真是狗尾续貂之作吗?我连看了两遍《大逃杀2》,终于看出了一点门道。


首先看剧本。《大逃杀2:镇魂歌》与前作最大的不同就在于,前者将原作的杀人游戏升级成了战争。很多人对此不理解,因为这颠覆了原先的创意,而战争题材的电影已是屡见不鲜。我觉得深作组这样做的原因是:生存竞争的终极形态就是战争,这是无可置疑的事实。第一部里面进行的荒岛杀人游戏其实是生存竞争的初级形态,如果续作沿用这种模式,观众就会有重复感。如果想表达进一步的主题,就必须激化矛盾,使作战升级,这就必然发展到生存竞争的终极形态——战争。《大逃杀》系列的世界观本就是一个濒临崩溃的社会,出现战争也是必然的结果。同时,剧本也紧扣了当前“恐怖主义”的热门主题,更能引起人们的反思。


再看电影的内涵。很多人对《大逃杀2》的内涵不以为然,认为其庸俗化。我觉得这可能是因为很多人没有看懂。日本民族的很多思维方式都很独特,因此在对日本电影的解读上不能跟美国大片之类同等对待。我认为要充分理解《大逃杀2》的深意,必须建立在对《大逃杀1》的充分解读上。让我们回顾一下:《大逃杀》整个系列都是超现实的东西,背景是崩坏的社会体系下青少年与成年人的对立与斗争。《大逃杀1》把一群高中生放到一个荒岛让他们自相残杀,而且3天之内必须出现胜者,否则集体被杀。这是影射了现实中原本天真无邪的孩子们由于成长而突然过渡到成人的世界所经历的残酷。生活是美好的,然而社会是无情的。为了生存,残酷的竞争甚至使曾经的好友挥刀相向。而主角原本懦弱的心灵,也在这场竞争中逐渐变得坚强。可以说,《大逃杀1》所隐喻的就是青少年在刚刚踏入残酷的社会竞争时所体现的爱与背叛,和深深的无奈。但是,如果用相同的眼光来看《大逃杀2》就大错特错了:如果说前作体现了爱与背叛,那么本作体现的就是它的副标题:“镇魂歌”。这是一部为逝者而作的电影。我们看到在三年以后,昔日的七原秋也已经变得非常成熟,但是BR仍在继续,并且演变成了战争。正如竹内力饰演的Riki所说:“人生只有两组,即胜组和败组。”生存的竞争仍然是人们无法避免的。所以七原秋也在继续作战的同时也陷入了深深的反思:我们究竟为什么而战?在新的战争中,爱与背叛已经变得苍白,人们在一次又一次的冲锋中已经无暇顾及多余的事情。唯一看到的,只是不断在我们面前倒下的人们。他们中有的曾经是我们的朋友,有的是敌人。我们要向前进,就必须跨过他们的尸体,背负他们的生命。看看现实,从考大学到找工作,我们无时无刻不在接受胜组-败组的挑选。而在我们取得成功的同时,是否也应该缅怀一下那些从我们身边逝去的人们呢?所谓“镇魂歌”,就是一场对成功的反思,对逝者的纪念。


因此,无论你有没有看过《大逃杀》系列,我都建议你再看一遍,因为它真的可以带来很深刻的思考。


谨以此文,纪念永远的深作欣二。

终极的黑客


最近在看《Ghost In The Shell》,这是我最喜欢的系列动画之一。作为顶尖硬科幻的代表,这部作品甚至对好莱坞都产生了巨大的影响。传闻Matrix就吸取了其中的很多思想,不过有待考证。


在片中描述的那个未来世界里,信息技术已经无孔不入。人们彻底摆脱了肉体的桎梏,纷纷换上了电子脑和义体,开始了真正的数字化生存。在这个完全信息化的社会里,人们之间的交流甚至可以不通过语言和文字,而仅仅靠电子脑之间的无线通信进行“脑际沟通”。一旦想要上网,眼前就会自动出现一个全息的窗口界面供操作,当然这个窗口只有使用者自己可以看见。


但是随之而来的就是安全的隐患,并滋生了很多全新的犯罪方式。比如,罪犯可以hack警卫的电子脑,然后大摇大摆地从正门走进去,而警卫却丝毫不能察觉——他的眼睛已经被欺骗了。更狠一点,罪犯甚至可以通过hack技术完全控制警卫的大脑,使警卫向自己人开枪。


于是我想,如果在这种社会,你还敢相信自己的眼睛么?不怀好意的人可以通过hack逐渐控制你的眼睛,你的耳朵,你的所有的感觉。到时候,你的生活就会受到无比的冲击,直至崩溃。技术的力量是可怕的。我们过去用纸和笔,现在用显示器和键盘,人体植入芯片在国外也有了成功的先例。《Ghost In The Shell》所描绘的那个时代也迟早会到来。


在我的屏幕的右下角,Norton防火墙的小图标开始闪动。它可能已经帮我拦截了一小段恶意代码,或者抵制了一次蠕虫病毒的攻击。但是我知道未来的黑客是不需要编写代码或病毒的。人的大脑本身就是一部超级计算机,终极的黑客完全可以利用自己大脑的即时演算对受害者进行攻击,这种攻击无论在形式上还是技巧方面都是不可预见的。因为这已经不是AI,而是主观的人类意识。而攻击的本身实质上就是一次意识的渗透。而被攻击者呢?现在使用的这些传统防火墙显然无法抵抗主观意识级别的攻击。那么,我们还会有自己的防火墙吗?我无法预测。但是可以肯定的是,在那个时代如果我们想要得到安全,就必须比攻击者具有更完善的思维体系和更顽强的意志力。


也许这就是终极的黑客吧。