2005年03月27日

1.1.1.   Why do we use it?

使用display list可以提高OpenGL在绘图过程中的性能。它预先将要执行的OpenGL的命令存储在内存中间,当后面有调用时候,直接提取内存中的数据,这样可以很大程度上的缩短计算的时间。尤其是在需要多次重复绘制同一几何模型的时候,性能的提高特别明显。

       display list执行的机制是怎样的呢?考虑我们要绘制一辆汽车,四个轮子具有几何上的一致性,如果我们不使用Display List绘制,对于每一个轮子,我们需要由半径大小计算整个轮子的几何模型,然后绘制,同样的计算要出现在四个轮子的绘制当中。如果使用Display List,由生成Display List的过程进行一次计算,并将这些结果存储在存储器中间。因此在四个轮子可以通过调用Display List来完成,此时需要做一些几何的变换,而这个过程省略了由半径计算轮子上点的几何位置的过程,因为这个过程在生产Display List的时候已经完成。这样就可以大大提高性能。

       因此,使用Display List来存储,可以提高OpenGL绘制性能。需要多次使用的命令,可以生产一个Display List来重复使用。

1.1.2.   How to use it?

生产Display List

       DispList = glGenLists(1)

      

glNewList(DispList, GL_COMPILE);

       ….OpenGL Commands

       glEndList();

 

调用Display List

       Void display()

{

         

              glCallList(DispList);

             

}

       Display List 相关函数:

              “glCallLists” , “glDeleteLists” , “glGenLists” , “glNewList”

1.1.3.   What is the limitation of using Display List?

       虽然Display List可以提高绘制的性能,当其使用也有一点的限制。首先,由于其是计算结果存储在存储器中,使用Display List时直接到调用这个存储器中的值。因此如果里面的相对位置需要改变,需要重新生成Display List。如前文中如果左后车胎爆胎了,那就不能用同样的Display List来绘制这个左后车胎,需要重新为其生成适当的几何数据。

另外一个是这个性能的提高也有一定的相对性,需要在内存空间和CPU的速度之间做一个合理的均衡。正如文中提到的Display List是将计算结果存放在存储器中,如果需要绘制的物体计算不复杂,但是又很多三维点需要保存,这样将需要大量的内存去保存三维数据。笔者当时在使用Display List过程中计算机显示内存使用量高达1G,最后迫不得已放弃使用Display List而使用直接绘制过程。

2005年03月06日

#define SWAP_4(x) ( ((x) << 24) | \
          (((x) << 8) & 0×00ff0000) | \
          (((x) >> 8) & 0×0000ff00) | \
          ((x) >> 24) )
#define FIX_INT(x)   (*(unsigned int *)&(x)   = SWAP_4(*(unsigned int *)&(x)))
#define FIX_FLOAT(x) FIX_INT(x)

2005年01月20日

以后多多上来!

2004年11月28日

    这几天是美国Thanksgiving传统节日的假期,也是美国一年一度的大减价时期,据说有很多商品都可以打折到前所未闻的程度。各大商店在都在自己的网络上推出了打折商品的信息。不过不幸的是我们地处美国南部最贫穷地区的一个小镇,基本没有什么特别大的商店,最近的大一点的城市,也就是可能可以买到一些打折商品的地方在tupulo,也需要两个小时。由于没有车,也没有特别出去采购的欲望,也就到最近的walmart去感受了一下。减价的商品倒是不少,但是基本没有什么牌子,有牌子的商品也基本没有什么折扣。倒是那些去tupulo的同学,回来带了不少的rebate后free的商品。一些小的电话机,cdr的刻录盘等等一些东西,200G的大硬盘rebate之后也才50$。感觉比国内的价格还真的便宜多了。

2004年09月09日

      我所在的學校是密西西比州立大學﹐在Mississippi State的東北部的位置﹐坐落在一個叫Starkville的小鎮上面。小鎮屬于典型的美國中南部小鎮風格﹐不大﹐比較寧靜。人口數量在25﹐000人左右﹐其中學校人口大概在15﹐000左右﹐從某種程度上來說﹐這個小鎮可能也因為這個學校而顯得有些生氣。小鎮98%的人口可能都是信基督﹐因此人基本是比較nice﹐你有什麼問題﹐基本上只要你表述出來﹐都會有人出面幫助你的。

      值得感慨的是﹐這裡的空氣的潔淨度確實比國內高很多﹐天空顯得比較藍﹐hehe,﹐不是吹的﹐不過總的感覺還是異鄉。

 

2004年09月04日

算算来到美国已经一个月多几天了。多多少少的也有了一些感想。希望能在以后的日子中跟大家分享出来。

2004年07月07日

以后一定要多多灌水啊。

准备在7月30号晚上飞越重洋,去另一个国度求学啊。

2004年06月20日

刚刚开信箱,又来了一个学校的一个教授的接受函,可惜电子邮件附件打开有问题,

不能查看。正是郁闷。不知都有钱还是没有钱?

终于开始采购东西了。发现一个人买东西既麻烦也简单。

麻烦的是没有人可以做指导,简单的是速度比较快,不用太考虑。付钱就提货走人了。

想想还有那么多东西要买,头都大了。