摘要:
原创帖子, 转载请注明出处,作者信息. 这个是自己分析bullet的代码过程中的笔记,比较简陋, 希望抛砖引玉, 欢迎板砖作者: 马良 (http://www.iphonephysics.com/ ) (此blog需Over GW)//应朋友要求在最后附上书目 理论准备:本科的数学分析,理论力学,线性代数。 尤其是理论力学中的朗格朗日动力学部分 最好能回忆起来。 碰撞检测上面列的两本书的内容就足够了,如果进一步挖掘需要看 计算几何方面的书 补一个架构图 引自[1]的12页,其中的STC即为上次分析中的islandmanager 碰撞响应的分析 约束分类:可积约束,不可积约束 ,摩擦力(见[1] 阅读全文
摘要:
在制作我的demo的过程中出现这样一个问题,人物跳起来,我如何判断他是什么时候落地的,还有落地的问题,ogrebullet中我没有找到相关的处理,我这里只能使用bullet的碰撞回调函数了,下面是我的做法,如果有哪位有更好的方法,请告诉我,我在这里谢谢了。//OgreBulletDynamics::DynamicsWorld *mWorld;// myInternalTickCallback是一个回调函数typedef void (*btInternalTickCallback)(btDynamicsWorld *world, btScalar timeStep);mWorld->get 阅读全文
摘要:
对于角色的控制一个问题就是,是否使用角色的模型?如何控制人物的行走,旋转等?ogrebullet没有角色控制相关的使用,那么只有从bullet那里了,进行控制了在bullet物理引擎的介绍中有关于角色控制的一些资料,在bullet源代码中应该可以找到一个pdf文件。里面介绍的bullet的一些使用,那么第9节 Action:Vehicles & Character Controller 里面就介绍了一些角色控制相关的:角色或NPC可以使用一个囊状、球体或者其他相撞来代替,不想让他自动旋转,可以把angular factor 设置为0,等等,自己去看吧,下面是我自己使用ogrebulle 阅读全文
摘要:
Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,,作为标准库的后备,是C++标准化进程的发动机之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,其成员已近2000人。 Boost库为我们带来了最新、最酷、最实用的技术,是不折不扣的“准”标准库。 可从http://sourceforge.net/project/showfiles.php?group_id=7586下载安装boost库。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的 阅读全文
摘要:
运动模糊是景物图象中的移动效果。它比较明显地出现在长时间暴光或场景内的物体快速移动的情形里。为什么会出现运动模糊 摄影机的工作原理是在很短的时间里把场景在胶片上暴光。场景中的光线投射在胶片上,引起化学反应,最终产生图片。这就是暴光。如果在暴光的过程中,场景发生变化,则就会产生模糊的画面。 Why should you bother? 不难发现,在电影或电视中,运动模糊是经常出现的,甚至于你不会注意到它。另一方面,在计算机图形中,你就会发现缺少运动模糊,由此也带来了失真。 举个例子,lensflare是近来较为流行的一种图象效果,但传统的图象制作者常常简化此效果,自从我们认识到它是仿真的一种工. 阅读全文
摘要:
动态模糊近几年广泛应用于游戏制作的一种特效,可以使得游戏所呈现出的运动画面更接近于真实相机所拍摄出的效果。 在真实世界中,运动模糊是指在相机拍摄画面时,由于被拍摄物体在相机快门曝光的短暂时间内有一定幅度的运动,造成拍摄出的画面产生残影和模糊的效果,通常相机只有在捕捉高速运动物体或者相机本身处在高速旋转中会出现这种效果。 那么如何能利用GPU在游戏画面中实现这一效果的呢? 其实原理和实现都非常的简单,实现Motion blur的方法也有很多,这里以DirectX9自带Sample中的方法为例进行说明。 我们知道在游戏中对于画面的渲染是一种单帧渲染,通常情况下,两帧之间并没有直接关联,但是对于动. 阅读全文
摘要:
1.什么是体积雾? 这个问题通过图片来解答再合适不过了,下面是本文利用体积雾做的一个结果 所谓体积雾:顾名思义就是被限制了形状的雾,本文表述如何通过ImageProcess(图象处理)的方式实现体积雾。 2.常规雾原理 雾效最终体现在雾颜色与场景色的混合上。决定雾的浓度的关键就在这个混合因子上。下面我们给出公式.float4 finalColor = factor * fogColor + ( 1 - factor) * sceneColor; ( !提取公因式,减少计算量)=factor( fogColor - sceneColor) + sceneColor; ( factor>=0 阅读全文
摘要:
最近一段时间看到版上关于C++里浮点变量精度的讨论比较多,那么我就给对这个问题有疑惑的人详细的讲解一下intel的处理器上是如何处理浮点数的。为了能更方便的讲解,我在这里只以float型为例,从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以double能存储更高的精度。还要说的一点是文章和程序一样,兼容性是有一定范围的,所以你想要完全读懂本文,你最好对二进制、十进制、十六进制的转换有比较深入的了解,了解数据在内存中的存储结构,并且会使用VC.net编译简单的控制台程序。OK,下面我们开始。 大家都知道任何数据在内存 阅读全文
摘要:
1.C++很简单的一种办法:#include <iostream>#include <fstream>using namespace std;#define FILENAME "stat.dat"int main(){ fstream _file; _file.open(FILENAME,ios::in); if(!_file) { cout<<FILENAME<<"没有被创建"; } else { cout<<FILENAME<<"已经存在"; } return 0;}2.利用 c 语言的库的办法: 函数名: acces 阅读全文
摘要:
Visual Studio 2005 Other Versions Visual Studio 2010 Visual Studio 2008 Write formatted data to a string. These are versions of sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l with security enhancements as described in Security Enhancements in the CRT.CopyParametersbuffer Storage location 阅读全文