03 2012 档案
摘要:3D模板阴影原理 1:先从3dsMax中导出一个简单的场景,一个园环,球,平面。 2:园环直接面向光源,园环对球体来说是一个光线的阻挡物,园环在它上面形成阴影,同时,园环和球体对平面来说是光线的阻挡物,所以,同时在其上面形成阴影。3: 要产生模板阴影,先要找出在园环和球体上面面向光线的面,去除背向光线的面,通过测试光线同园环和球体上面每一个所组成的小角形的法线的夹角是否小于90度,即光线矢量同法线矢量的点积要大于零。 4:在余下的所有面向光线的面中,把每个面的每条边可以保存到一个Vector中,不过在保存之前,先把该条边同已保存在Vector中的每条边先进行逐一比较,如果,找到的这条边同它的两
阅读全文
摘要:#include <iostream>#include <math.h>#include <malloc.h>using namespace std;int *position; //放置的位置int queen; //皇后数目int count; //第N种可能性//判断第n行是否放置皇后bool SignPoint(int n){for (int i=0;i<n;i++){ if (position[i] == position[n]) //该列已经放置过皇后了 return false; if (abs(position[i] - positio
阅读全文
摘要:有人说没有开过车就造不出好车,没有有过游戏引擎就写不出好的引擎。所以最近开始学习OGRE,网上很多资料,但是又有点让人无从下手。最后决定还是从pro ogre 3d programing开始看,是中文翻译的版本。看到第五章,里面有个创建地形的例子,可能由于打字或者是版本的问题,电子书上面贴的代码有点问题,修改了一下才能运行。用ogre pplication Wizard生成代码修改void yourclass::createScene()createScenevoid yourclass::createScene(void){// Set ambient light mScene...
阅读全文
摘要:Ogre 安装 配置 问题1. SampleBrowser 编译错误: 编译orge工程的时候,会出现这样一个错误:系统找不到指定的路径Project : error PRJ0019: A tool returned an error code from "Performing Pre-Link Event..." 这个错误估计比较常见,尤其是对VS不太熟的话就不知这个Pre-Link从哪查起。这个时候,我们查看SampleBrowser这个工程的属性,展开Debug Events,进入Pre-Link Events 下,你会发现下在右侧的Command栏里一串命令。这串命
阅读全文
摘要:c++模版:包含模型、显式实例化、分离模型大多数c和c++程序员会这样的组织他们的非模板代码:类和其他类型放在头文件中,对于全局变量和(非内联)函数,只有声明放在头文件中,定义则位于.cpp文件中,这样我们的代买就可以工作了,然而在模板代码中,这一切在有的编译器中并不可行。原因就是:在我们编译过程中,大多数编译器会通过,但是链接器却会出问题:因需要用到的模板函数的定义还没有被实例化。为了实例化,编译器必须知道,应该实例化模板的哪个定义以及要基于哪个模板实参进行实例化。遗憾的是,我们的非模板代码组织方式,把这两部分信息放到了分开编译的两个文件中。因此,当编译器看到我们的函数调用的时候,只是假设函
阅读全文
摘要:STL中map用法详解Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号跟他的姓名就存在着一一映射的关系,这个模型用map可能轻易描述,很明显学号用int描述,姓名用字符串描
阅读全文
摘要:(转)详细解说hash_map几句话道出map和hash_map的区别1. STL map is an associative array where keys are stored in sorted order using balanced trees. While hash_map is a hashed associated container, where keys are not stored in an ordered way. Key, value pair is stored using a hashed function. 2. Insertion and lookup t
阅读全文
摘要:C++内存管理转自:http://www.cnblogs.com/lancidie/archive/2011/08/05/2128318.html[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C++超绝的性能。本期专题将从内存管理、内存泄漏
阅读全文
摘要:《Real Time 3D Terrain Engines Using CplusplusAnd DirectX9》(实时地形引擎)随书源码,gaia引擎源码下载:http://ishare.iask.sina.com.cn/f/23556371.html
阅读全文
摘要:Vector内部数据结构:连续存储,例如数组。随机访问每个元素,所需要的时间为常量。在末尾增加或删除元素所需时间与元素数目无关,在中间或开头增加或删除元素所需时间随元素数目呈线性变化。可动态增加或减少元素,内存管理自动完成,但程序员可以使用reserve()成员函数来管理内存。迭代器失效插入:vector的迭代器在内存重新分配时将失效(它所指向的元素在该操作的前后不再相同)。当把超过capacity()-size()个元素插入vector中时,内存会重新分配,所有的迭代器都将失效;删除:当进行删除操作(erase,pop_back)后,指向删除点及其后元素的迭代器全部失效。建议:使用vecto
阅读全文
摘要:转自:http://www.cnblogs.com/lichkingct/archive/2009/05/04/1449101.html一. 种类:标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一个重型字符串非标准关联容器hash_set、hash_multiset、hash_map和hash_multimap。几种标准非STL容器,包括数组、bitset、valarray、stack、queue和priority_que
阅读全文
摘要:很多玩过飞行射击类游戏的朋友都对跟踪导弹印象深刻,手中有这样一款武器常常能够战无不胜,但是敌人射出的导弹则可能成为玩家的噩梦。其实实现导弹跟踪的方法并不复杂,只需要一些简单的平面解析几何知识就可以做到。算法分析假设导弹旋转角速度为omega,运动速度为v。下图显示了导弹和目标在坐标轴中的初始状态。初始时刻,目标与导弹的运动方向都是-Y,位置分别为(x1,y1),(x2,y2),连接导弹与目标的坐标,得到一条线段,该线段与-Y轴夹角为c;导弹与-Y方向的夹角为b,b是导弹已旋转的角度,此时为0;导弹方向与线段的夹角为a,a就是导弹还需要旋转的角度。此时:c=90-Math.atan2(y2-y1
阅读全文
摘要:用UML表示树型的数据时,很特别,所以在这里特别画一画。注意,因为UML的关联本身就代表了一个引用,所以不需要再在类图中再写出来(如Parent, Childs).
阅读全文
摘要:只是粗略的分析原理,大虾轻喷~~Gaia引擎中没有场景管理器(scenemanager)这种东西,但是并不是没有场景管理,而是在cGameHost类中有一课场景树进行场景组织、一棵四叉树用来进行剪裁。class cGameHost class cGameHost : public CD3DApplication, public cSingleton<cGameHost>{。。。。。。 cSceneNode m_rootNode;//场景树根节点 cCamera m_defaultCamera; cCamera* m_pActi...
阅读全文
摘要:At the very top of the diagram is the Root object. This is your 'way in' to the OGRE system, and it's where you tend to create the top-level objects that you need to deal with, like scene managers, rendering systems and render windows, loading plugins, all the fundamental stuff. If you d
阅读全文
摘要:由于本人的引擎ProjectGaia服务于08年创新杯的游戏项目 – 3D太空游戏,所以理所应当加入Octree(八叉树 – 已经周宁学长发帖介绍过)场景管理器.参考了无数Octree的代码,发现还是我们可爱的Ogre写的最好,于是狂看n千行代码,把精髓提取出来给大家共享.鉴于我们游戏版教程又n久没有更新了,今天发一篇我对Ogre场景管理器之Octree源代码分析的笔记.所有代码采用伪代码.首先回顾一下Ogre场景管理的架构Ogre以插件形式提供了多种场景管理器1. BSP管理用于支持Quake系列2. Terrain管理,优化大型的地形场景3. Octree管理,用处多多,很适合太空游戏4.
阅读全文