自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Oman-3D

If you want, you can!

  • 博客(50)
  • 资源 (13)
  • 收藏
  • 关注

原创 Unreal播放360度立体视频

Unreal播放上下切割360立体视频,直接上图不废话。

2016-12-09 16:20:35 1656

原创 UE4读取CSV表格配置数据

开发游戏时,经常会采用表格文件来存储游戏相关配置数,比如玩家的最大健康值、魔法值等,以及NPC的属性配置等。在Unreal下,无须自己编写表格文件的读取及解析代码,可以直接使用Unreal自带的读取表格数据功能。下面通过一个简单示例来说明如何通过Unreal来读取CVS格式的表格数据。表格数据示例如下:注意,表格第一个单元格必须为空,第一行为每一列的名称,该行数据也是存取每一列数据

2016-08-09 11:19:36 6705

转载 计算机图形学基础-三维变换

变换是计算机图形学中重要概念,包括最基本的三维变换,即几何变换、投影变换、裁剪变换、视口变换。1.从三维空间到二维平面     1.1 相机模拟 在真实世界里,所有的物体都是三维的。但是,这些三维物体在计算机世界中却必须以二维平面物体的形式表现出来。那么,这些物体是怎样从三维变换到二维的呢?下面我们采用相机(Camera)模拟的方式来讲述这个概念,如图所

2016-07-29 12:05:30 5897

原创 Photon Debugger的几种方式

photon debugger的几种方式在这里mark一下,防止以后忘记。第一种方式:1、打开解决方案,添加现有工程,选择对应的PhotonSocketServer.exe将其添加到解决方案;2、设置PhotonSocketServer.exe为启动工程;3、设置PhotonSocketServer工程的项目属性:arguments设置为"/debug Instance1",注意,

2016-07-26 09:47:01 1648

原创 Unreal坐标系基础知识

Unreal是左手坐标系:X轴正向为右,Z轴正向为上,Y轴正向向后。绕X轴顺时针旋转90度,就是Unity坐标系。Unreal与Unity均为左手坐标系,绕轴旋转时,顺时针旋转为正值。Unreal下,Pitch、raw、roll分别定义如下:绕Y轴旋转为Pitch;绕Z轴旋转为raw;绕X轴旋转为roll;附Unity坐标系:

2016-07-21 14:47:47 13705 2

原创 UE4通过代码逻辑触发相应事件,相应事件逻辑在蓝图实现

很多时候我们是通过代码写游戏逻辑,当逻辑执行到某个状态时,能够通过事件的方式触发另外一段逻辑,而触发的这段逻辑希望在蓝图中实现,这时候就存在一个代码和蓝图事件连接和调用的问题。实现此功能很简单,有两种方式,一种是通过代码定义事件接口,实现逻辑完全放在蓝图中,代码中没有默认实现逻辑;另外一种是在代码中有默认实现逻辑,但在蓝图中可以重写。针对第一种方式,可以直接参考最常用的Actor类中的Begi

2016-07-13 11:01:40 3250

转载 虚幻4蓝图使用小技巧(更新)

不得不说,虚幻的蓝图系统还是非常方便强大的,大大的提高了开发效率。蓝图是一个很成熟的系统,也就有很多隐藏的小技巧,这些技巧谈不上多高深,却可以使人们在使用蓝图时更加得心应手,更加喜爱这个“可视化编程“。按住某个按键,鼠标左键点击蓝图,会在相应地方生成对应的节点。 比如,A对应Add节点,B对应Branch节点,S对应Sequence节点,F对应Foreach节点等等。(下图示例

2016-07-07 09:34:54 1098

原创 UKismetSystemLibrary函数库

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.#pragma once#include "Engine/LatentActionManager.h"#include "BlueprintFunctionLibrary.h"#include "Engine/CollisionProfile.h"

2016-06-30 20:54:29 4848

转载 在云上搭建大规模实时数据流处理系统

转自:http://www.csdn.net/article/2014-12-09/2823038摘要:如今数据规模变得越来越大,传统的软硬件工具已很难满足数据处理的需求。本文将结合汽车状态实时监控系统,讲述如何在阿里云上使用Kafka和Storm搭建大规模消息分发和实时数据流处理系统,及其中遇到的挑战。在大数据时代,数据规模变得越来越大。由于数据的增长速度和非

2015-04-28 10:20:17 1548

原创 Unity3d调用Quaternion的函数问题

本人在Dll以及基于Winform的程序中Quaternion的函数抛出安全异常,解决办法就是将调用放在Unity3d的客户端层就不会有问题。

2012-08-08 10:13:41 1629

转载 游戏服务器端开发要点

转至:http://jiangwen2011.blog.163.com/blog/static/194801340201181104532377/摘要: 本文作为游戏服务器端开发的基本大纲,是游戏实践开发中的总结。第一部分专业基础,用于指导招聘和实习考核, 第二部分游戏入门,讲述游戏服务器端开发的基本要点,第三部分服务端架构,介绍架构设计中的一些基本原则。希望能帮到大家一 专业基础

2011-11-17 08:54:38 17050

原创 Delta3D之通过游戏管理器组件和消息的扩展创建自定义行为

游戏管理器组件给我们提供了在不修改游戏管理器的情况下灵活扩展我们的自定义行为的能力。游戏管理器组件是基于消息来工作的,定义自定义行为的基本流程就是创建自定义类型的消息,在合适的时候发送消息,创建自定义游戏管理组件并重写自己的消息处理。将自定义组件添加到游戏管理器,游戏管理器会自动将消息发送给游戏管理器组件(调用组件的消息处理函数)。下面我们首先来结合实例分析该过程的具体流程及其使用方法。添加自

2011-10-10 15:59:05 1381

原创 OSG之数据处理最短的一帧

这最短的一帧,我们主要以数据处理为中心一路下去看看大致处理流程,也是非常粗浅的认识,详细分析请详阅最长的一帧教程。我们把整个场景渲染过程可以看做是一个产品加工的过程,首先是原料,然后是原料经过哪些加工机器以及加工工序,最后加工成什么。所以我们也采用该思路,我们抛开旁枝末节,看

2011-08-10 14:56:31 4114 3

转载 GLSL实现HDR Rendering

HDR - 全称High dynamic rang,是目前流行的3D特效技术.其基本原理是:虽然在计算机图形中可以使用完全的浮点型来表 示颜色,但之前由于一直受到硬件的限制,从外部载入的纹理格式大多只能以每种颜色成分用一个字节来表示,也就是0-255, 当这个低范围的颜色

2011-08-04 16:26:54 1704

原创 不可不表的OSG智能指针之强指针与弱指针

使用OSG的人都知道OSG的内存管理方式采用了智能指针,通过智能指针的方式让OSG自己处理对象的销毁工作。在OSG中有两个智能指针类型,一个就是我们再熟悉不过的ref_ptr,另外一个可能很多人不一定经常用,但确实非常好的observer_ptr。这两种类型都是作为智能指针而出现

2011-08-03 11:17:55 3491 2

转载 强指针和弱指针

在Android的源代码中,经常会看到形如:sp、wp这样的类型定义,这其实是Android中的智能指针。智能指针是C++中的一个概念,通过基于引用计数的方法,解决对象的自动释放的问题。在C++编程中,有两个很让人头痛的问题:一是忘记释放动态申请的对象从而造成内存泄露;二是对象在

2011-08-03 09:16:53 1065

原创 OSG第二代文件序列化存储分析

花了两天时间仔细研究了一下array贡献的第二代文件序列化存储,收益颇多。今后将得益于它的很强的可扩展性。通过自身的体验,感觉应该还有很多初学者可能需要花费几个小时才能看透,所以特将自己分析的流程发上来,以加快想搞明白其流程的初学者的学习速度。这两天身体状况不太好,两眼通红,眼睛

2011-08-03 09:05:06 5017 2

原创 osgEarth学习笔记

这是个人在学习osgEarth时根据体会或从别的地方看到的做的一个简单整理,有些东东就是官方文档翻译过来的,都是根据自己的需要感觉需要记录下来什么东西就随便记录下来了,也没有个条理,都是用到哪记到哪,别见怪。对个人在初期使用osgEarth时有很多帮助,所以特发上来,希望对大家也

2011-08-03 09:00:28 25875 2

转载 软件开发中的11个系统思维定律

<br />软件开发中的11个系统思维定律 关键词:软件开发,思维定律 | 作者:Andriy Solovey | 收藏这篇资讯 “我会更加努力地工作”——一匹名叫Boxer的马(出自乔治·奥威尔的《动物农庄》) 彼得·圣吉在其著作《第五项修炼》中提到的系统思维定律同样适用于软件开发。 1. 今日的问题源于昨日的解决方案(Today’s problems come from yesterday’s solutions) 当解决问题时,我们会感到很高兴。我们经常不考虑后果。令人感到意外的是,我们提出的解决方案

2010-12-19 12:34:00 1196

转载 UML图关系大全

UML类图关系大全 1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到,关联一般都是有向的。使用

2009-08-11 15:10:00 1137 1

转载 UML 类与类之间的关系

类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下。类与类之间存在以下关系:(1)泛化(Generalization)(2)关联(Association)(3)依赖(Dependency)(4)聚合(Aggregation)UML图与应用代码例子:1.泛化(Generalization)[泛化]表示类与类之间的继承关系,接口与接口之间的继

2009-08-07 10:46:00 579

转载 软件项目经理必备素质

许多人都以为项目经理总是与“理想与光荣”相伴的,其实作为一个有志于改进中国软件开发流程的项目经理来说,他们承担的更多的是“艰辛与痛苦”。在这里,我通过我担任项目经理期间所遇到的种种现象,来总结项目经理所必需具备的素质,当这些素质您不具备的话,就需要花费多年的努力来培养他,如果无法培养成功,那么请您转换岗位,因为项目经理不适合您,您难以在这个方面获的成功。  一、执着可以这么说,在中国如果不

2009-08-07 09:28:00 745

转载 架构师之路/系统分析员、系统架构师、项目经理的区别/ 软件架构师之路

架构师(Architecture)是目前很多软件企业最急需的人才,也是一个软件企业中薪水最高的技术人才。换句话说,架构师是企业的人力资本,与人力资源相比其能够通过架构、创新使企业获得新的产品、新的市场和新的技术体系。那么什么是架构师、架构师的作用、如何定位一个架构师和如何成为一个架构师呢?这是许多企业、许多程序员朋友希望知道的或希望参与讨论的话题内容。所谓架构师通俗的说就是设计师、画图员、结构

2009-08-07 09:25:00 1586

转载 从程序员到项目经理的转变

当你预期的那一天,也许是害怕的那一天,终于来到了:从工程师的队伍里你被提拔到了软件项目领导或者团队领导的位置。这也许就是你选择的职业道路,或许你不太情愿,将就尝试一下。无论在哪种情况下,你都可能缺少工程学科、人员管理以及领导能力的相关教育   这需要更多的领导能力和管理(它们不是一回事),而不能象Dilbert(译注:著名IT漫画主角)那样简单地和老板对抗了。当你考虑新的目标时,请考虑下面的活

2009-08-07 09:23:00 926

原创 C++对象内存结构

对简单对象来说,内存结构布局很简单,遵循以下描述:1、非静态数据成员是影响对象所占据内存大小的主要因素,随着对象的增加而增加;2、所有对象共享一份静态数据成员,用sizeof计算对象大小时不会包含静态数据成员占据内存的大小;3、静态成员函数和非静态成员函数不影响对象内存的大小;4、如果对象中包含虚函数,会增加4字节的空间用来保存虚函数表指针。 对单继承类,遵循如下描述:

2009-08-03 15:12:00 1062

原创 小议内存管理的效率——栈与堆的效率分析

栈上的内存是系统自动分配的,压栈和出栈都有相应的指令操作,效率较高,而且分配的内存是连续的,不会产生内存碎片。而堆上的内存需要人为创建,当申请或释放一块内存时,系统需要根据一定的算法在堆空间上寻找合适的内存堆空间,同时修改维护堆空闲空间的链表,然后返回地址给程序,效率比较低,而且容易产生碎片。特别是连续创建和删除占用内存较小的数据或对象时,很容易产生内存碎片。此外,在堆上分配内存容易引起内存缺页,

2009-08-03 14:59:00 1922

原创 CEGUI消息响应回调函数的问题

在使用CEGUI的时候,需要给相应的控件绑定消息响应函数,如下所示:quitBtn->subscribeEvent(CEGUI::PushButton::EventClicked,CEGUI::Event::Subscriber(&CameraTrackListener::Quit,this));其中CameraTrackListener::Quit就是消息处理函数,在这里需要说明一点,C

2009-07-02 14:04:00 1636 1

原创 利用OGRE实现飞机多姿态运行完工啦

今天简单实现了在OGRE下控制飞机的多姿态运行,可以通过键盘控制飞机的姿态,也可以让飞机按照指定路线运行,并可在运行过程中自动调整运行姿态,呵呵,还是很方便的。有时间对节点的多自由度运动进行封装成单独的一个Action类,以方便对节点的多有运行状态进行控制和路径设置等等复杂操作,加入运行速度、加速度、滚转角速度、偏航角速度、俯仰角速度等。嗯哪,喝杯咖啡休息一下。

2009-06-26 16:43:00 1679 5

原创 通过键盘和鼠标全方位查看场景

今天是第一次真正写一些OGRE的实例代码,现在感觉学了某些东西后只有试着写出来,才能发现潜在的问题,也才能彻底理解相关的技术,否则永远都只是像在远处观花一样。今天完成了通过键盘和鼠标操作场景的简单实现,可以对场景进行各个方向的移动操作以及旋转查看,这也是操作场景最基本的功能了。一个功能模块一个功能模块的写,感觉收获很快,写出来几十行代码都比看上几百行代码收获多,争取将所有功能模块都实现一遍,然后就

2009-06-25 15:08:00 1039

原创 OGRE缓冲鼠标键盘输入的一个小疏忽

哎,今天写鼠标键盘的缓冲输入处理,代码写完了,发现根本接收不到键盘鼠标消息,找啊找调啊调,花了将近一刻钟,终于把问题的小辫儿给揪出来了,哈哈,原来是忘了ExampleFrameListener(win, cam,true,true)的后面两个参数赋值成现在的true,这两个参数可是对于处理缓冲模式的输入来说非常关键哦,他们指定了是否处理缓冲输入哦,呵呵,解决了,消遣一下,也把它写在这里,免得以后又

2009-06-23 15:41:00 978

原创 OGRE填空的一个疑问无意中给解决了

在创建填空平面和天空穹时,在地面下方总会有黑洞,一直没想明白怎么回事,今天才明白那其实是纹理没有覆盖到的地方,这是由于填空穹和天空面的实现造成的,也是天空穹和天空面的本性,^_^,而天空盒就不会有这种问题,因为天空盒是一个封闭的立方体,所有的地方都会被纹理覆盖到。原来还一直以为是程序有什么问题呢,^_^,笨到家了,竟然没想到是这个原因。到此为止,疑问解决,继续研究。

2009-06-19 11:53:00 1176 2

原创 解决了Debug模式下调试就死的小问题

今天解决了一个小问题,其实这个问题原来一直存在,但一直没想过把它弄好(太懒了,^_^),今天通过非常简单的方式就解决了,也算是一个小小的进步吧,呵呵。言归正传,问题就是在Debug模式下加断点调试时,一中断程序就死了。今天也知道问题的原因了,原因是我是在全屏模式下调试的,全屏模式下调试时设备就丢失了,但不知道通过什么手段彻底根除这个问题,使得可以在全屏模式下可以调试。我今天只是把全屏模式改成了窗口

2009-06-17 15:16:00 1262

原创 C++笔试题目大全(笔试宝典)(不断完善中)

<! v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}--> Normal 0 7.8 磅 0

2009-05-21 16:17:00 34052 14

原创 Direct3D学习笔记

1、D3D设备是一个COM对象,它封装和存储了渲染状态,此外它还执行坐标变换与光照操作。D3D设备类型分为三种,一种是硬件抽象层设备(HAL),这是主要的设备类型,支持硬件加速以及软件顶点处理。程序通过HAL访问硬件,而不需要直接访问硬件。如果硬件支持HAL,D3D就通过HAL以最佳方式运行。第二种是软件设备,这时硬件不支持某些3D操作时的备选方案,目前这种设备类型基本不用。第三种设备是参考设备,

2009-05-05 10:20:00 991

原创 OGRE实例分析之BSP

在OGRE自带的例子中有一个BSP的例子,该例子是为了演示BSP的。下面我们看一下BSP资源的加载以及在渲染时如何找到该资源进行渲染的过程。我们都知道,OGRE中在文件级所有的资源管理都是通过一系列配置文件来描述其定位的,BSP资源也不例外。首先,在setupResources中要加载BSP资源的配置信息,就是下面两行代码,ConfigFile cf;  cf.load("quake3sett

2009-04-09 11:35:00 4424

转载 OGRE全面分析三

1: 设计初衷它设计初衷是完全跨平台的。抽象的接口隐藏了平台相关的细节。它设计初衷是大幅度支持扩展的。支持多种场景类型,独立出平台和3D接口限制。2: 基本类结构关系Roo:对象为一切的入口,它负责创建Ogre的所有基础元素,三大基础元素大致包括:场景管理器,绘制系统,资源管理器。场景管理器:场景节点,动态对象。资源管理器:资源组管理,资源管理渲染模块:硬件缓冲区管

2009-03-17 09:59:00 2743 1

转载 在ogre中加载 ogremax场景文件方法

 在ogre中加载 ogremax场景文件方法发布: 2009-2-10 21:54 |  作者: webmaster |  来源: 本站原创 |  查看: 27次看到很多人对ogremax在ogre中怎么加载不大熟悉,其实作者有一篇文章有介绍的,我把我自己在我的ogreview中用ogremax的方法写下来,供各位参考。(1)首先下载最新的ogremax. (2)找到图片

2009-03-12 08:58:00 3515

转载 Ogre小技巧

Ogre 一句话技巧1.所有需要挂在SceneNode上的user-object, 都需要从MovableObject来继承,比如一个最典型的应用是 3DSoundSource.2.Ogre中RenderQueue的相关标号,标号越小的其最先渲染。Background - Queue 0Skybox - Queue 20World Geometry - Queue 30MovableObjec

2009-03-12 08:54:00 951

原创 OGRE之地形跟踪

 通过分析OGRE自带的Terrain实例,可以看到在OGRE中进行地形跟踪非常简单。下面是本人分析地形跟踪过程对源码添加的注释,通过代码与注释可以清楚的看到其处理方式。 bool frameRenderingQueued(const FrameEvent& evt)    {        if( ExampleFrameListener::frameRenderingQueued(ev

2009-02-24 11:30:00 1769

原创 OGRE根据高度图创建Terrain地形流程分析

OGRE可以通过两个接口来生成地形,分别是void TerrainSceneManager::setWorldGeometry( const String& filename )以及void TerrainSceneManager::setWorldGeometry(DataStreamPtr& stream, const String& typeName ),两者的根本区别就是一个是传递地形信息

2009-02-20 13:55:00 4171

Visual studio 编译器选项

自从第一次使用MS的IDE就想找一个关于其所有编译选项的说明,这么多年来一直没有找到,今天偶然发现,如获至宝,赶紧给大家分享一下,文档中对每一个选项都有详细的说明

2009-03-11

采用VC及Opengl基于四叉树及LOD算法的室外三维地形实时渲染源代码

基于四叉树及LOD算法的室外三维地形实时渲染源代码,配置一下工程目录就可以直接运行的源代码

2009-02-17

战斗机飞行仿真系统HLA互联系统研究

研究模拟器互联以实现更为复杂的仿真任务,针对战斗机飞行仿真HLA互联系统的设计分析

2009-02-11

基于MFC、Vega写的三维仿真程序源代码

采用MFC以及视景仿真引擎Vega Prime写的一个三维仿真程序源代码

2009-02-11

数据流图画法详细分析

详细分析数据流图的画法,带有例子,浅显易懂。

2009-02-11

VC结合OpenGL采用四叉树做索引实现的室外地景模拟源代码

用VC及OpenGL实现,采用四叉树做索引,实现的室外地景的模拟实现,通过该源代码可以初步熟悉OpenGL的初步用法以及四叉树索引的实现。

2008-12-10

VC实现的八叉树数据结构源代码

用VC实现的八叉树数据结构,十一个完整的工程,可以运行,通过该实例代码可以对八叉树的创建以及基本操作有比较清楚的认识。

2008-12-10

VC++写的功能非常强大的自定义列表控件(排序、背景、树状伸缩、在线编辑)源代码

VC实现的自定义列表控件,该控件支持排序、添加背景、单元格在线编辑、数据伸缩等很多非常强大的功能,稍作封装就可以直接在工程中使用

2008-12-10

VC绘制二维三维饼图、折线图、直方图等统计图源代码

用VC实现的绘制常用的统计图标的源代码,绘制的效果非常好,几乎看不到锯齿现象,稍加封装即可用到自己的项目中。希望能对大家有所帮助

2008-12-10

C++获取硬盘序列号及MAC地址的源代码

用C++获取硬盘的序列号ID以及网卡的MAC地址的源代码,可以用此方式结合md5加密算法进行软件加密。

2008-10-24

清除系统垃圾的批处理bat文件

双击该批处理文件,可以自动清除系统中的垃圾文件,免除您的硬盘被逐渐吞噬的烦恼。

2008-10-24

用VC从网页抓取天气预报信息

可以从网页上抓取天气预报信息,里面的代码可以经过简单封装后直接用到自己的项目中。

2008-10-24

oracle数据库管理与操作速查手册

本人在软件开发过程中整理的使用oracle的一些常用管理与操作语句与方法,希望对使用oracle进行系统开发的朋友有所帮助。

2008-10-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除