近日工作与生活梗概

  前面写过Visual Studio C++ 2005中的运行库的文章,没想到问题很快就发生了。以前台式机使用的是VC2003,还是保留了LIBCMT,也就是单线程静态库,大部分小程序也都是链接到这个库下的。刚买了笔记本电脑Acer 5573,安装了一个VC2005,简简单单的跑glut和glew发现有诸多如下问题:

  1、glut的命令行和窗口是基于多线程的,但是glut库链接的却是单线程。我的程序链接到了多线程库,导致,如果先关闭OpenGL窗口,命令行主线程不会立刻退出,手动关闭后发现返回值有问题,不是0,而是0xC0000001(好像是的)。如果直接关闭命令行,那么程序会安全的退出,返回0。

  2、如果使用了sf.net上提供的预编译好的库,使用GLSL Shader的时候可能会出现问题。当程序退出后,glDetachShader会出现问题,如果你像我一样把关于Shader的撤销操作都封装到了类的析构函数中。原因还是库的问题。

  解决的问题很简单,把VC2005默认的链接开关改成/MD就没事了。不过还是有些不放心,毕竟这个线程同步问题可真的是要命。

  再论3DS模型格式。lib3ds是个很不错的工具,OGRE都用的它。不过我发现为了支持Vertex Buffer Object的渲染方式,还是不得不把数据给抽取出来放到单独的内存区中。我尝试过STL容器,发现处理速度真的不尽人意,明显的迟缓,实在多此一举。调试了一个下午还是全部用memcpy搞定了一切。单个模型,所有的顶点数据、纹理坐标、索引都与单个Obj独立开来,形成了一个整体,这样渲染效率高。不过发现这个向量是个巨大的问题。3DS格式没有保存坐标数据,而用lib3ds的计算函数计算得到的向量又是不好使用的 —— 它为每个面都计算了3个向量,导致了一个定点就会有3个向量,可是这可能么?!我回去再去看看。

  很想写一个类似于NVIDIA SDK中的图形基础库放到sf.net上,处理纹理,模型等等。

  发现了一个搞笑的BUG,来自NVIDIA SDK 9.5,如果大伙不相信可是试试。NVIDIA SDK 9.5提供了许多库,其中有一个叫做NV_DDS,源文件有使用方法,就是提供一个和DIRECTX无关的DDS纹理读取处理支持。同样的,NVIDIA还有一个Adobe Photoshop CS2的DDS插件,用来导出DDS格式的纹理。搞笑的是,用NV_DDS库读取一个2D with Mipmap的DDS文件竟然发现无法识别,调试的时候发现给识别成了CubeMap!?我回学校后再来调试调试,对比一下DirectX SDK自带的纹理处理工具以及NV提供的命令行工具,看看究竟是不是真的出错。

  买了笔记本电脑感觉也没有那么好,反而觉得更忙,天天有看不完的PDF,调试不完的代码。

  昨天又跑了一趟女生宿舍帮她们弄路由器,好说待说的让我进去了。上楼道的时候引来一阵阵诧异。回来的时候舍友说,“我们天天就生活在你的光环下了,你现在人气实在太高了,反正你也没有女朋友,就先干脆整一个吧”。我无语,实在是无语。

  刚刚星期天学了一套恰恰恰铜牌舞步,很简单的那种,不过踩了女舞伴一下嘿嘿。还是那句话,脚下基本功要扎实。虽然说自负的我很少夸奖别人,不过这次是真的,赵老师真不错!

posted @ 2007-04-16 17:39 Bo Schwarzstein 阅读(1137) 评论(6)  编辑 收藏 所属分类: 情感生活

  回复  引用    
#1楼 2007-04-17 21:40 | szhoftuncun [未注册用户]
呵呵,生活挺丰富。有电脑了反而忙。是你上进俄
  回复  引用    
#2楼 2007-04-21 14:39 | 心心念念 [未注册用户]
这个本本好用吗,我也打算买这个
  回复  引用  查看    
#3楼 2007-04-23 08:13 | Jedimaster      
@心心念念
还好,速度挺快。缺点有:内寸不是非常稳定,NANYA的东西。发热量有些大。
  回复  引用    
#4楼 2007-06-09 00:48 | librayhl [未注册用户]
这款笔记本显卡不是很好吧.你应该买个好显卡的
  回复  引用  查看    
#5楼 2007-06-11 12:35 | Jediaster      
@librayhl
还好,7300GO够用了
总比我台式机的6200A好
  回复  引用    
#6楼 2008-07-03 14:00 | konfuss [未注册用户]
除了图形学竟然延伸到了那么底层的计算机知识,PFPF……
一年或者两年后,将会有惊喜……(不是反话哦)