上一页 1 ··· 34 35 36 37 38 39 40 41 42 ··· 70 下一页
摘要: From:http://www.gamedev.net/community/forums/topic.asp?topic_id=324643Graphics Engines Ogre 3D Nebula Device Jad (formerly Haddd)Irrlicht Haaf's Game Engine (hardware accelerated 2D games engine)Axiom 3D (OGRE for .NET)TrueVision Revolution3D Genesis3D Crystal Space 3D Panda3D Quake 3 Source Cod 阅读全文
posted @ 2011-03-07 16:38 oayx 阅读(995) 评论(1) 推荐(0) 编辑
摘要: 我从Decoda刚发布就一直关注着,这个工具可以注入到宿主程序内对lua脚本进行调试,还可以设置断点观察变量的值,功能非常强大。 下面我介绍一下使用方法。 首先找到一个使用了lua的程序,我这里用wireshark举例,这是个很好很强大的网络截包工具,wireshark内部使用了lua。没有wireshark的请下去google一下并下载安装,此为开源软件。 调试使用lua的宿主程序有两种启动方式,一种是从Decoda启动宿主程序,另一种是先启动宿主程序然后用decoda注入。 本篇文章将介绍如何从Decoda启动宿主程序 启动Decoda并点击Debug目录下的StartDebuging,弹 阅读全文
posted @ 2011-03-04 15:28 oayx 阅读(1029) 评论(0) 推荐(0) 编辑
摘要: 1、http://www.unknownworlds.com/decoda,这个工具可以注入到宿主程序内对lua脚本进行调试。2、有2种方式对lua进行调试从Decoda启动宿主程序a、project菜单中的Settingsb、在commond中填入你要运行的宿主程序。点击okc、用它打开lua脚本设置断点。Decoda 中选择Start Debugging下面是简单的例子。====== main.cpp ==================#include <iostream>#include "luaDebug.h"using namespace std;i 阅读全文
posted @ 2011-03-04 15:27 oayx 阅读(7647) 评论(1) 推荐(0) 编辑
摘要: 1、非模态对话框和父窗口共享当前线程的消息循环2、模态对话框新建一个新的消息循环,并由当前消息循环派发消息,而父窗口。模态对话框屏蔽了用户对它父窗口的操作,但是不是在消息循环里面屏蔽,所以给父窗口发送消息,父窗口还是可以接收得到。3、调用模态对话框的窗口处理函数会被阻塞,但是新的消息循环仍然可以调用父窗口的消息处理函数,所以,发送给父窗口的新消息仍然可以被及时处理。 阅读全文
posted @ 2011-03-02 16:02 oayx 阅读(4637) 评论(0) 推荐(0) 编辑
摘要: (工作较忙, 趁着圣诞节假期,希望能完成约束分析这部分)物理引擎中最重要的两大环节一个是碰撞检测,其次就是约束分析,约束分析用到了大量的刚体力学中的基础知识,以及PGS这样的数值计算算法,约束构成主要是根据约束类型来计算两个连接对象的jacobian矩阵,配合shape计算转动惯量,来更新相互连接的对象的位置、速度, 来模拟连接对象受力的效果。约束包含基本的6种,可以衍生出更多,每一种都有各自的jacobian矩阵,这块可以参考文献《Stable, Robust, and Versatile Multibody Dynamics Animation》这里不做赘述。在基本的计算之外还要加入纠错, 阅读全文
posted @ 2011-03-02 09:18 oayx 阅读(1857) 评论(0) 推荐(0) 编辑
摘要: 在bullet中一个非常普遍的应用是 针对两个物体发生碰撞时调用开发者自己提供的回调函数比如球体碰撞到另一个球体 发出声音下面是一个例子, 场景中有3种物体 球(动态),地板(静态),墙壁(静态)球碰到墙和地板发出的声音不同。所以需要设置这三种对象为不同类别,利用 collisionobj的userpointer来完成int objclass[3] ={0,1,2};boxBody->setUserPointer(&objclass[0]);ground->setUserPointer(&objclass[1]);wall->setUserPointer(&a 阅读全文
posted @ 2011-03-02 09:17 oayx 阅读(1368) 评论(0) 推荐(0) 编辑
摘要: 接着上次关于Dbvt得分析,不过漏掉了一个比较重要的函数function btDbvt:: collideTTpersistentStack, btDbvt::collideTT * btDbvt:: collideTTpersistentStack. 负责进行两个dbvt子树的比较,找出两个子树中重叠的节点对,基于一个全局栈(一个成员变量实例) * btDbvt::collideTT. 负责进行两个dbvt子树的比较,找出两个子树中重叠的节点对,但是基于的是一个局部栈(函数调用结束则释放)。 * btDbvt::collideTV. 负责在一个树中搜索和对应包围体重叠的节点。btDbvt:: 阅读全文
posted @ 2011-03-02 09:16 oayx 阅读(669) 评论(0) 推荐(0) 编辑
摘要: 光线与AABB 相交检测:这是一个非常经典的问题, <<real time collision detection>> 5.33章节有非常详尽的讨论。下面是光线的方程 t是可变参数, P是光线的起始点 RayFrom, d是光线的方向向量下面这个是平面的方程 向量n是平面的法向量,所以如果光线与任何一个平面相交,应该有如下等式对于AABB来说是六个平面, 每个面的法向量为(0,0,1)(0,1,0) ..... 总之三个坐标有两个是0,另外的一个是1或者-1AABB同时是3个平面槽的交集, 光线与AABB最多有2个相交点,一个是前景点,一个后景点,分别与两个平面相交。特 阅读全文
posted @ 2011-03-02 09:16 oayx 阅读(662) 评论(0) 推荐(0) 编辑
摘要: DBVT 在bullet 引擎中是很基础且重要的一个数据结构,本质上是一个可以动态更新的AABB树。在bullet的远距阶段是很高效的碰撞检测数据结构(比较OOB,K- DOP)。是组成dbvtbroadphase的重要成员。首先看看树中节点的定义view plaincopy to clipboardprint?struct btDbvtNode { btDbvtVolume volume; // point to the bounding volume btDbvtNode* parent; // point to parent node DBVT_INLINE bool isleaf() 阅读全文
posted @ 2011-03-02 09:15 oayx 阅读(950) 评论(0) 推荐(0) 编辑
摘要: 开始阅读前可以先浏览一下之前框架分析在物理模拟的场景中, 一个节点首先应该具备2种属性物理属性 包含 质量,速度,惯性,加速度,角速度,约束,摩擦系数 等 几何属性 形状, 包围体层次,碰撞检测类型掩码。world 变换。 物理属性大部分都在collosionObject 和rigidObjec 这样的类之中。几何属性则又一次被细分为包围体层次和形状,碰撞检测类型掩码。为了进一步介绍Dbvt的核心函数 btDbvt::collideTV必须首先引入btDbvtProxy。btDbvtProxy 继承自 btBroadphaseProxy。view plaincopy to clipboardp 阅读全文
posted @ 2011-03-02 09:15 oayx 阅读(1477) 评论(0) 推荐(0) 编辑
上一页 1 ··· 34 35 36 37 38 39 40 41 42 ··· 70 下一页