- 博客(235)
- 资源 (24)
- 收藏
- 关注

原创 Ogre粒子系统简介
1、简介 粒子系统被用来作为在3D程序中产生多种视觉特效的基础。粒子系统特效在游戏中运用广泛,比如射击类游戏中的爆炸特效,烟雾特效,开枪时喷出的火焰,撞击时击出的火花等等多半由粒子系统实现。 粒子系统的基本单元是粒子,每个粒子一般具有形状、大小、颜色、透明度、位置、速度、加速度、方向、生命周期等属性。每一帧,粒子系统一般都会执行如下步骤: (a)产生新的粒子,并赋予
2012-12-19 21:25:29
3117

原创 三维空间中的旋转变换
1、绕坐标轴旋转的公式: (1)绕Z轴旋转 (2)绕X轴旋转 (3)绕Y轴旋转 以上的矩阵变换公式为 : P' = P * mat; 2、绕任意轴旋转的公式: 给定具有单位长的,则物体绕OA轴旋转变换的矩阵表示可确定如下: 3、绕任意轴旋转在Ogre中实现Ogre::Matrix3 I
2012-12-17 13:48:18
24661

原创 AABB轴向包围盒
AABB,Axis-Aligned Bounding Box,即通过两个三维向量作为对角点产生的与空间轴平行的长方体空间。在Ogre中通过类AxisAlignedBox来实现,该类中两个成员变量Vector3 mMinimum和Vector3 mMaximum是两个三维向量,分别表示长方体空间的对角点。 主要成员函数如下:1、提取最小角点和最大角点const Vector3& g
2012-12-11 22:48:31
2915

原创 碰撞检测
AABB(轴对齐包围盒)这个东西是碰撞检测的基础,和它类似的还有OBB(有向包围盒),由于OBB创建复杂,所以Ogre采用了AABB。最简单的碰撞检测:通过Ogre::SceneNode::_getWorldAABB()可以取得这个叶子节点的AABB(Ogre::AxisAlignedBox),Ogre::AxisAlignedBox封装了对AABB的支持,该类的成员函数Ogre::A
2012-12-11 14:06:46
1053

原创 场景查询
场景管理的一个重要的功能就是场景查询,而ogre支持的场景查询方法包括:1、光线查询(Ray Queries);2、球体查询(Sphere Queries);3、边界盒查询(Bounding-Box Queries);4、边界平面查询(Bounding-Plane Queries);5、相交查询(Intersection Queries)。 光线查询: RaySc
2012-12-11 13:56:10
1078

原创 OpenGL多视口分割
OpenGL实现的多视口分割程序,同时也是OpenGL的一个简单的框架,可以根据自己的需要进行修改。 VS2008的环境配置,代码如下:// main.cpp#include #include "glFrame.h"int main(int argc, char** argv){ glutInit(&argc, argv); glutInitDisplayMo
2012-12-10 20:52:17
5366

原创 OGRE+VS2008环境搭建
最近在搞OGRE的学习,第一件事就是环境的搭建,遇到了很多问题,所以记录下来,为后来者借鉴。 下面分为四部分,介绍Ogre+Vs2008的环境配置: 1、下载软件并依次安装 2、配置环境 3、调试错误 4、个人遇到的问题 1、下载软件并依次安装。 下面的软件是我个人的版本,其他版本出现问题,不在本文讨论的内容之中。
2012-06-21 11:33:44
5589
1

原创 点关于直线的距离、垂足、对称点公式
下面通过两种直线方程的形式,求解点关于直线的距离、垂足、对称点公式。问题描述1:已知点的坐标(x0,y0),直线的方程为Ax+By+C = 0;求点到直线上的距离d、点在直线上的垂足(x, y)、点关于直线的对称点(x’, y‘)。解决方法:(1)距离: d = ( Ax0 + By0 + C ) / sqrt ( A*A + B*B ); 这个
2012-03-31 11:36:02
40642
3
转载 sd卡受损怎么修复
转载自:http://jingyan.baidu.com/article/b0b63dbfa9e3a74a4830701f.htmlsd卡受损怎么修复|浏览:83038|更新:2012-12-09 13:271234567分步阅读 SD卡(Sec
2014-04-12 08:51:25
4569
1
原创 Ogre场景中管道透明之后为黑色的问题
---------------------------------------------------------------------------------------------depth_write 设置此渲染通路的深度缓冲写入的状态是打开状态还是关闭状态。 格式: depth_write 如果深度缓冲写入处于打开状态,无论何时一个像素想要写入画面缓冲,深度缓冲都会
2014-01-06 10:57:24
1896
转载 Ogre-渐变背景色(gradient background)的实现
转载自:http://blog.youkuaiyun.com/hefee/article/details/6287341背景色在ogre里面是通过ViewPort类中的setBackgroundColour()这个成员函数实现的,不过此类只提供给单一颜色的设置!! 不过,我们可以通过间接的方法去创建渐变的背景色,下面详细介绍: 1. 重构Ogre::Rect
2014-01-05 22:47:08
2520
转载 运行时错误检查(/RTC)编译选项及实现原理
转载自:http://blog.youkuaiyun.com/magictong/article/details/6306820环境:VS2005前因后果:debug居然编不过!!!这里准备说4个例子,都是为了说明debug版本对于调试是很重要的,很多问题在调试版本下都会提前暴露出来。 注意:随意调整优化,可调试选项可能会遇到下面的编译错误:Command line error D8016
2013-12-30 21:46:18
1712
转载 运行时和编译时的安全性检查
发布日期 : 8/17/2004 | 更新日期 : 8/17/2004Microsoft Corporation适用范围:Microsoft® Visual C++® .NET 2003Microsoft® Visual C++® Toolkit 2003Microsoft® Visual Studio® .NET摘要:说明 Visual C++ 编译器和库在帮
2013-12-30 21:40:18
2061
转载 (转)fatal error C1853: precompiled header file is from a previous version of the compiler, or the pre
预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853 编译器错误:fatal error C1853: 'pjtname.pch' precompiled header file is fr
2013-12-27 10:59:07
3301
转载 连接OPC服务器
CString strError; HRESULT hr=CoInitializeEx(NULL,COINIT_MULTITHREADED); CString strNode = _T("172.16.2.68"); CString strProID = _T("Kingview.view"); if (strNode.IsEmpty()) // local server { CL
2013-12-13 16:19:58
3206
原创 VS2008没有调试信息
个人测试可行的方法,分三步:打开项目->项目属性页 ,然后1、选择 配置属性->链接器->调试->生成调试信息 改为 是 2、选择 配置属性->C/C++ ->常规->调试信息格式 改为 用于“编辑并继续”的程序数据库(/ZI) 3、选择 配置属性->C/C++ ->优化->优化 改为 禁用(/Od)然后重新编译运行,没有再跳出“没有调试信息”的错误!
2013-12-06 10:59:01
2515
转载 关于OPC Client 编写
昨天又有人问我 OPC Client 编写,实际是他们不了解OPC 客户端的工作原理,要想写客户端程序,必须知道OPC对象, OPC逻辑对象模型包括3类对象:OPC server对象、OPC group对象、OPC item对象,每类对象都包括一系列接口。 OPC Server对象 主要功能为:1、创建和管理OPC Group对象;
2013-12-05 19:57:39
21946
3
原创 Ogre中导入Max烘焙的模型(4)——Ogre与MAX的坐标变化
经常遇到OgreMAX导出Scene文件之后,导入到Ogre中发现,很多物体位置都不对了。有人发表过文章,说是调整坐标系:http://0flyingpig0.blog.163.com/blog/static/9937055620102105326527;也就是通过“选中模型后--->层次--->点击仅影响对象--->变换 即可将轴坐标重置为OgreMax导出的正常Ogre轴”,来统
2013-11-27 19:13:16
1629
原创 Ogre中导入Max烘焙的模型(3)—— OgreMax导出Scene
本文记录了MAX中烘焙之后,如何利用OgreMax插件导出Scene文件,并利用OgreMax WinViewer插件查看导出的模型效果是否正确。
2013-11-25 21:03:51
3789
原创 Ogre中导入Max烘焙的模型(2)—— MAX中烘焙
本文主要记录MAX中如何利用”渲染到纹理“的技术,烘焙材质,并把烘焙之后的材质指定给对象。
2013-11-25 20:06:18
2285
转载 Ogre中导入Max烘焙的模型(1)—— 渲染到纹理
渲染到纹理3ds Max 中的“渲染到纹理”工具可以将各种场景元素渲染或“烘焙”到纹理中,包括照明和阴影。可以在实时 3D 应用程序(如游戏)中使用这些特殊纹理,以减少渲染器的负担,从而提高帧速率。在本课程中,将介绍这一功能的基本用法。注意:本教程的所有必需文件都可以在 3ds Max 附带的教程文件光盘上找到。在执行教程之前,请将 \tutorials 目录从光盘复制
2013-11-22 17:00:08
4480
转载 Run-Time Check Failure #2
Run-Time Check Failure #2 一般是栈被破坏,代码可能有缓冲区溢出一类的问题。Run-Time Check Failure #2 - Stack around the variable 's' was corruptedThis problem is caused when you try to write too much data
2013-11-20 21:58:40
8163
转载 并行编译加快 VS C++ 项目的编译速度
最近编译的项目都比较大,话说自己的电脑配置还行,但编译所花的时间还是很长,遇到需要重新编译整个项目的时候真的有回宿舍睡一觉的冲动。昨天一不小心被我发现了一款软件Xoreax IncrediBuild 今天用了一下,实在是太爽了,我把我们办公室的机器都连了起来,其中还有一台工作站,总共加起来22个CUP核,我试了一下实在是太拉风了。其实这款软件已经推出很久了,只是之前接触的项目都比较小,
2013-11-20 15:47:47
1516
转载 Cg编程
在计算机图形学领域,用计算机处理图形信息我们最先接触的通常是使用opengl和d3d这些图形编程接口,这些通常称为固定管线的编程,也就是程序员不直接操纵可编程的GPU,在常见的opengl的编程管线中,底层为我们设定了固定的渲染过程,程序员控制的只是这个过程中的各种参数。但是在有些情况下,尤其是硬件性能突飞猛进的今天,为了得到更好的效果,得到对图形计算更好的控制,就需要自己对GPU进行编程,这也就
2013-11-19 20:55:47
1393
转载 Ogre:render to texture
Ogre中可以渲染到纹理,这如同渲染到屏幕上一样,具体的使用方法是:1 先创建一个纹理,用于接受渲染的内容TexturePtr renderTexture=TextureManager::getSingleton().createManual("RT",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,TEX_TYPE_2D,win
2013-11-19 20:12:19
1088
转载 Ogre:Animation(Ogre中的动画)
在Ogre中Animation是一块非常重要的部分,但是笔者在学习Ogre的动画时遗憾的发现关于Ogre中动画的资料非常的少,Ogre的sample中只有最简单的导入一个骨骼动画的例子,在网上也很少有人谈及,Ogre Wiki中的教程也是边边角角,不知这么重要的部分为什么不做一个全面的tutorial。我从网上的仅有的一些资料和自己的亲自试验总结了一下基本的Ogre动画的使用,当然Ogre的动画模
2013-11-19 19:42:54
1011
转载 剖析ifstream打开含中文路径名文件失败的原因
最近写程序的时候遇到了使用ifstream打开含中文路径文件时失败的问题,在网上翻了一下,发现这是一个普遍遇到的问题,在很多人的博文中也都给出了一些解决技巧,但大多是转载的东西,很少对这个问题引发的原因有一个清晰、全面的解释。因此,我觉得有必要对该问题引发的原因作一个详细的剖析,希望对遇到同样问题的朋友们能有所帮助。首先,用一个简单的例子来重现一下我所遇到的问题:(1)在VS2008的“P
2013-11-19 09:37:58
1052
转载 Opengl中导入obj文件
首先,我们需要知道obj文件格式是什么样的,他的内部是如何储存模型的.利用ultra edit打开bunny.obj文件观察可以看到如下数据:我们猜想,这应该是顶点数据组,拖动滚动条后看到出现了左图的数据. ¨分析这些数据,不难猜想obj文件由若干行组成,每行开始有一个字母,用来标注改行数据所表示的意思,v应该是顶点,g应该是一个名字,观察到,f后紧跟着三个整数,由
2013-11-17 19:40:30
4879
原创 开源库的代码行数
1、Ogre源码:36万行左右,核心库16万行左右;2、Voreen源码:28万行左右,核心库23万行左右;3、VTK源码:好像是80万行左右,待测试;
2013-11-16 11:26:54
1876
原创 Ogre与MFC结合时的内存泄漏问题
转载自:http://hi.baidu.com/monboy/item/5e06ccefaa50a80c65db0091刚开始使用Ogre时总是碰到内存泄露,而且往往是一泄千里,等半分钟才能打完日志,我想这和Ogre中的大量大对象很有关系。下面就来分析一下内存泄露的产生原因。1. MFC中使用Ogre时发生的内存泄露这个问题比较有意思,其实并没有发生泄露,而是MFC自作主张的认为发生了
2013-11-16 11:10:31
830
转载 SPH算法简介(五):表面张力的计算
SPH算法简介(五):表面张力的计算2011年04月22日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com 所谓表面张力,正如前面所讲,就是由于流体“试图减小表面积”而产生的力,这种力产生的效果非常有趣,它会使肥皂膜紧绷,使水滴变成球形,但在大部分SPH应用场合中,和其他力相比,表面张力产生的效果其实是微乎其微的,所以常常忽律表面张力的计算。
2013-11-06 15:17:40
7118
转载 SPH算法简介(四):Hello,SPH
SPH算法简介(四):Hello,SPH2011年04月2日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com 上几节,我们推导出一大推复杂无比的公式,似乎有点纸上谈兵,这节来点真的,写一个可以运行的SPH系统,下面就是SPH基本的运算流程初始化粒子,为每个粒子赋上初始位置根据公式3.7计算每个粒子的密度根据公式3.10计算每个粒子的压强根据公
2013-11-06 15:12:05
5648
2
转载 SPH算法简介(三): 光滑核函数
SPH算法简介(三): 光滑核函数2011年04月1日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com 和其他流体力学中的数学方法类似,SPH算法同样涉及到“光滑核”的概念,可以这样理解这个概念,粒子的属性都会“扩散”到周围,并且随着距离的增加影响逐渐变小,这种随着距离而衰减的函数被称为“光滑核”函数,最大影响半径为“光滑核半径”。
2013-11-06 15:09:44
6055
转载 SPH算法简介(二): 粒子受力分析
SPH算法简介(二): 粒子受力分析2011年03月31日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com SPH算法的基本设想,就是将连续的流体想象成一个个相互作用的微粒,这些例子相互影响,共同形成了复杂的流体运动,对于每个单独的流体微粒,依旧遵循最基本的牛顿第二定律(2.1) 这是我们分析的基础,在S
2013-11-06 14:51:42
5065
1
转载 SPH算法简介(一): 数学基础
SPH算法简介(一): 数学基础2011年03月30日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com SPH(Smoothed Particle Hydrodynamics)算法是一种流体模拟算法,他的特点是简单快速,可以用在例如游戏这样的实时的交互软件中。SPH算法虽然简单,但要完全搞明白其中的原理和实现方法,也不是易事,写这个系列希望能全面介绍
2013-11-06 14:37:07
7773
1
原创 计算机图形学的论文检索网站
1、http://kesen.realtimerendering.com/主要包含了一下世界顶尖会议:SIGGRAPHSIGGRAPH AsiaEurographicsSymposium on Interactive 3D Graphics and GamesEurographics Symposium on RenderingACM
2013-11-04 11:16:45
2898
转载 基于SPH的流体模拟实践和一些技巧总结
转载自:http://blog.sina.com.cn/s/blog_6f638fb60100shw0.html SPH的流体模拟是目前大多数游戏所采用的模拟流体方法,特点是简单,十分容易实现,相比与基于Grid的Eulerian方法更加简单和高速,本文主要介绍一下使用SPH的流体模拟中一些常用的技巧和数据结构。目前流体模拟中常用的2类方法,分别代表了从2种不同的方面来解释
2013-10-27 18:11:21
3646
原创 MAX中制作空心圆柱/管道
MAX中制作空心圆柱/管道1、 创建自定义线条,并转换为实心圆柱2、 把实心圆柱转换为空心圆柱/管道 1、创建自定义线条,并转换为圆柱a) 以多线段为例,创建->图形->线,按照如下设置创建多线段b) 选择角点,作圆角处理,选择->顶点->圆角c) 转换为可编辑多边形d) 修改径向属性,修改->渲染->径向完成后如下图
2013-10-25 11:47:35
5794
转载 C++为什么用引用
转载自:http://hi.baidu.com/chen_767/item/bf580c87c3d7bd28100ef3c3引用类型通常被用于主子函数间需要互相传递大量数据的设计之中, 从而减少大量数据经过堆栈的复制.在C语言中, 主子函数要对非全局变量实施写操作时, 只能通过传递实(形)参的指针(地址)来实现.直接使用指针很容易造成地址溢出的错误, 而用C++语言编制的同类程序中
2013-10-20 21:58:14
1366
转载 C++ 线程安全的单例模式
C++ 线程安全的单例模式废话不多说,常用的代码积淀下来。一、懒汉模式:即第一次调用该类实例的时候才产生一个新的该类实例,并在以后仅返回此实例。需要用锁,来保证其线程安全性:原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety.使用double-check来保证thread safety.但是如果处理大量数据时,该锁才成为严重的性
2013-10-20 21:16:33
684
Huffman编码
2012-04-25
C&C++优秀书籍
2012-03-18
精通Qt4编程
2012-03-18
ACIS系统简介
2011-10-08
查找算法的多种方法的源文件集合
2009-06-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人