2014年2月23日

VS 2005部署应用程序提示“应用程序无法正常启动( 0x0150002)” 解决方案

摘要: 遇到这个问题,一定是缺少了CRT、MFC、ATL的DLL,不同版本的VS是不一样的。系统自带这些库的Release版,如果没有自带,打补丁就有了;系统不自带这些库的Debug版,所以Debug版的程序在一般电脑是不能正常运行的(不过装了对应版本的VS就可以正常运行了)。这篇博文对VS2008 部署应用程序 “应用程序配置不正确,程序无法启动”的问题有比较详细的解决方案,有兴趣的童鞋可以看一看。 如果是部署环境导致了这个错误,那么上一段提到的那篇博文足矣解决问题,如果是程序本身的错误,那么需要进一步进行排查。最近我的一个VS2005开发的项目,发布Rlease版本,部署到其他电脑的时候... 阅读全文

posted @ 2014-02-23 16:36 水煮鱼丸 阅读(11905) 评论(0) 推荐(0) 编辑

2014年1月27日

OGRE1.8.1源码编译(VS2008)

摘要: 最近在学习图形学,想看看OGRE源码,于是就去OGRE官网下载源码,配置环境,这里记录一下。鉴于电脑太破,VS2010比较慢,所以使用VS2008。准备工作:CMake2.8 下载地址:http://www.cmake.org/files/v2.8/cmake-2.8.12.1-win32-x86.exeOGRE 下载地址:http://www.ogre3d.org/download/source,OGRE源码及其依赖库都要下载,如图1:图1 OGRE源码下载编译源码:1、安装CMake。已安装CMake的童鞋可以跳过这一步;2、编译OGRE依赖库。 1)解压OGRE依赖库(图1最后一个... 阅读全文

posted @ 2014-01-27 18:02 水煮鱼丸 阅读(1582) 评论(1) 推荐(2) 编辑

2014年1月16日

DirectX考试判卷心得

摘要: 今天帮老师判《三维图形程序设计》的试卷,这门课开卷考,用的教材是段菲翻译的DX9的龙书。判卷过程中发现有两道题虽然不难,但是错的比较多: 1、Direct3D中深度缓冲区中值的范围? A.0-1 B.可以任意设置 C.取近平面远平面的值 2、Direct3D支持三类光源为点光源、方向光和聚光灯。第一题 我仔细看了龙书,也没找到直接答案(感谢@xiaofeii的提醒,其实有答案),但是如果对投影变换内部原理理解比较深入的话,也是可以很容易得到这个答案的。龙书的绘制流水线如图1所示,这个比较利于初学者理解,比较专业绘制流水线如图2所示,可以发现图1其实是对图2的... 阅读全文

posted @ 2014-01-16 21:39 水煮鱼丸 阅读(1732) 评论(10) 推荐(2) 编辑

2014年1月11日

阅读Google的C++代码规范有感

摘要: 李开复曾在微博上说过,Google的C++代码规范是全球最好的一份C++代码规范,没有之一。最近花了点时间看了下这份代码规范,收获确实很大,在编程过程中一些乱七八糟的坏习惯也该改一改了。最新的英文版见http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml,2009年有人翻译的一份见http://ishare.iask.sina.com.cn/f/19210212.html?sudaref=www.google.com.hk&retcode=0。 下面几个是我个人觉得收获比较大的几点,要看完整版的,可以自己下载。头文件 阅读全文

posted @ 2014-01-11 15:38 水煮鱼丸 阅读(5040) 评论(1) 推荐(2) 编辑

2014年1月5日

3D游戏引擎中常见的三维场景管理方法

摘要: 对于一个有很多物体的3D场景来说,渲染这个场景最简单的方式就是用一个List将这些物体进行存储,并送入GPU进行渲染。当然,这种做法在效率上来说是相当低下的,因为真正需要渲染的物体应该是视椎体内的物体。除此之外,从裁剪算法和碰撞检测等算法的效率来说,使用这种数据结构也是相当低效的。比较好的方式是使用具有层次结构的空间数据结构存储待渲染的物体,如BVH(包围体层次结构)、BSP(二叉空间分割)树、四叉树、八叉树和模糊K-D树等,在进行空间查找的时候将时间复杂度从O(n)降低到O(logn)。当然,对应的代价是每帧更新的时候,需要更新对应的空间数据结构。本文主要对BVH、BSP和八叉树进行介绍.. 阅读全文

posted @ 2014-01-05 21:24 水煮鱼丸 阅读(7932) 评论(2) 推荐(2) 编辑

2014年1月2日

C#线程同步总结

摘要: 对于整数数据类型的简单操作,可以用Interlocked类的成员来实现线程同步。对于复杂的线程同步,有以下几个方法: 1、lock关键字; 2、Monitor; 3、同步事件和等待句柄; 4、Mutex对象。 具体见MSDNhttp://msdn.microsoft.com/zh-cn/library/ms173179(v=vs.90).aspx 当然,上述这些主要是防止不同线程访问同一段代码,如果是要在多线程中共同访问一个对象,需要使用SynchronizationAttribute,具体见博客http://www.cnblogs.com/michaelxu/archive/... 阅读全文

posted @ 2014-01-02 20:24 水煮鱼丸 阅读(311) 评论(0) 推荐(0) 编辑

2013年12月26日

(转)[C++语法] 关键字typedef用法

摘要: 转自http://www.cnblogs.com/SweetDream/archive/2006/05/10/395921.html C/C++语言中的typedef相信大家已经不陌生,本文对C/C++语言关键字typedef的各种用法作一个介绍。 typedef,顾名思义,为“类型定义”,可以解释为:将一种数据类型定义为某一个标识符,在程序中使用该标识符来实现相应数据类型变量的定义。例如:typedefunsignedintUINT;intmain (intargc,char*argv[]){unsignedinta;// it’s OKUINT b;// it’s OK, a and .. 阅读全文

posted @ 2013-12-26 21:00 水煮鱼丸 阅读(281) 评论(0) 推荐(0) 编辑

(转)Const,Const函数,Const变量,函数后面的Const

摘要: 本文转自http://www.cnblogs.com/Fancyboy2004/archive/2008/12/23/1360810.html 看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。 const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Use const whenever you.. 阅读全文

posted @ 2013-12-26 20:22 水煮鱼丸 阅读(242) 评论(0) 推荐(0) 编辑

2013年12月25日

2013年终大阅兵

摘要: 时间过的真快,这一年晃晃悠悠就这么结束了,回头看看,这一年收获还真不小,尤其是下半年。对于我来说,2013是个转折点,我的某些选择必然会对我的未来造成很大影响。虽然不知道影响是好是坏,但是至少我努力去做了。有句话我很喜欢:The best way to predict the future is to create it. —Alan Kay方向:重回图形学 早在3年前,记得那个时候我还是大四,是一只快乐的保研猪。当时特别想做游戏,或者去研究游戏引擎,所以跟了教我们DirectX选修课的老师,在毕设的时候也小有成果。可惜好景不长,由于老师是按照项目走的,而且考虑如何短、平、快的出成果,... 阅读全文

posted @ 2013-12-25 22:21 水煮鱼丸 阅读(1493) 评论(2) 推荐(2) 编辑

2013年12月15日

3D游戏常用技巧Normal Mapping (法线贴图)原理解析——高级篇

摘要: 1、概述 上一篇博客,3D游戏常用技巧Normal Mapping (法线贴图)原理解析——基础篇,讲了法线贴图的基本概念和使用方法。而法线贴图和一般的纹理贴图一样,都需要进行压缩,也需要生成mipmap。但是由于法线贴图存储的是法线信息,压缩和生成mipmap的方法自然会有所变化。 现在已经许多用于法线贴图压缩和生成mipmap的工具,大部分商业游戏引擎也集成了相关方法,只需要点几下鼠标就可以完成。本文仅针对法线贴图的纹理压缩和mipmap的方法进行原理性的说明,至于在具体的工具中如何操作,可以参看相关工具的说明文档。 法线贴图压缩的中文资料还是比较多的,也不太复杂;但是生成mipma... 阅读全文

posted @ 2013-12-15 23:21 水煮鱼丸 阅读(7447) 评论(2) 推荐(2) 编辑

导航