博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
近日工作与生活梗概
阅读量:4609 次
发布时间:2019-06-09

本文共 1455 字,大约阅读时间需要 4 分钟。

  前面写过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,调试不完的代码。
  昨天又跑了一趟女生宿舍帮她们弄路由器,好说待说的让我进去了。上楼道的时候引来一阵阵诧异。回来的时候舍友说,“我们天天就生活在你的光环下了,你现在人气实在太高了,反正你也没有女朋友,就先干脆整一个吧”。我无语,实在是无语。
  刚刚星期天学了一套恰恰恰铜牌舞步,很简单的那种,不过踩了女舞伴一下嘿嘿。还是那句话,脚下基本功要扎实。虽然说自负的我很少夸奖别人,不过这次是真的,赵老师真不错!

转载于:https://www.cnblogs.com/Jedimaster/archive/2007/04/16/715631.html

你可能感兴趣的文章
人类简史
查看>>
java 设计模式学习
查看>>
【Python使用】使用pip安装卸载Python包(含离线安装Python包)未完成???
查看>>
一语道破项目管理知识体系五大过程组
查看>>
C# 备份、还原、拷贝远程文件夹
查看>>
在windows环境下运行compass文件出现的错误提示解决方案
查看>>
CSS常用样式--font
查看>>
恩如氏--蜗牛精华补水蚕丝面膜
查看>>
大工具-收藏
查看>>
codevs3027 线段覆盖 2
查看>>
markdown
查看>>
【leetcode】107-Binary Tree Level Order Traversal II
查看>>
Jquert data方法获取不到数据,显示为undefined。
查看>>
ssm项目中 数据库和资源的备份
查看>>
HDU5950【矩阵快速幂】
查看>>
在线C++编译器
查看>>
C#中各种serialization的比较
查看>>
P2617 Dynamic Rankings
查看>>
工作学习常识1
查看>>
Eclipse插件项目中读取文件
查看>>