引擎技术
阿阮
这个作者很懒,什么都没留下…
展开
-
Gamebryo—Texturing
Texturing一、 纹理基本常识1. 简介GB纹理系统包括:多纹理、投影纹理(Projected texture)、动态纹理、渲染纹理。2. 纹理的基本使用要想使用和标准材质一起使用纹理,应用程序必须做以下两件事:为数据流定义纹理坐标;挂载纹理属性(包括纹理资源、和纹理的处理方式)。3. 纹理属性及其组成部分纹理属性包括两大部分信息:(1) 一个或多个Map,该原创 2013-04-12 21:06:24 · 840 阅读 · 0 评论 -
Gamebryo—NiApplication
NiApplicationNiApplication是针对Gamebryo示例创建的跨平台框架。它的主要功能有—创建窗口、创建渲染器、创建输入系统以及提供命令行(command line)的访问接口。一、基本知识1. 基本物体的创建SceneNiNodePtr m_spCene:指向场景的根。Virtual bool CreateScene:分配一个Node给m_spSce原创 2013-04-12 21:04:41 · 773 阅读 · 0 评论 -
Gamebryo—Cloning Internals
克隆对象Cloning InternalsCloning Internals Cloning是产生对象的拷贝的一种方法。应用程序调用下面的的函数来克隆对象。第一个函数使用缺省值来克隆对象名称,这在后面讨论。第二个版本允许通过NiClonigProcess来实现局部控制,这是为多线程情况下设计的函数。NiObject* NiObject::Clone(); NiObject* N原创 2013-04-12 21:12:57 · 686 阅读 · 0 评论 -
Gamebryo—RTTI
RTTI运行时类型信息 基于几个底层的管理类Gamebryo设计成一个类的层次结构。下面的图展示了从NiObject派生的类的一个类层次结构的小子集。 以NiObject作为根节点的Gamebryo对象使用单继承的方式编写。这样NiObject的子类形成了一个类型树(注意这是类型之间的关系树不是指对象实例之间的关系)。运行时类型信息(RTTI)系统使得应用程序可以快速判断任何NiObj原创 2013-04-12 21:16:50 · 901 阅读 · 0 评论 -
Gamebryo—智能指针
智能指针在Gamebryo中通过使用智能指针实现引用计数的半自动化。这通过NiPointer来实现,这个模板类重载了操作符,使得它的实例表现出来像一个标准的指针。然而,智能指针自动地增加和减少它指向对象的引用计数,从而应用程序不在直接调用NiRefOjbect的引用计数函数。例如在函数中如果声明一个局部智能指针变量并指向对象A,那么对象A的引用技术在赋值的时候将会增加1。当函数返回的时候,原创 2013-04-13 18:42:35 · 551 阅读 · 0 评论 -
Gamebryo—Message System
Message System一、 概述消息分为为两种:远程消息(remote message)和本地消息(local message)。使用efd::MessageService,efd::IMessage,efd::Category.应用程序可以定义自己的消息子类。当消息需要在网上传播时,需要使用Foundation libraries和基本消息类中方法来实现相关代码,这些库提供了独原创 2013-04-13 18:42:43 · 709 阅读 · 0 评论 -
[转]阅读一款3D引擎的方法备忘
链接:http://www.cnitblog.com/linghuye/archive/2009/11/29/62870.html要带着引擎系统所共有的问题去阅读,不要被具体引擎的实现思路牵着走,要思考这个引擎如何实现或绕过(如不考虑低端机)这些必然要面临的问题.首先,最重要的必须,在Debug模式下调试起来一个主场景程序,然后沿着代码流走几遍,在代码里闲逛,生成第一印象,留意基础转载 2012-06-24 20:01:37 · 422 阅读 · 0 评论 -
Gamebryo—Material System
Material System一、 简介GB的材质系统是一种基于NiMesh的渲染状态创建相应NiShader实例的机制。开发者经常需要为多个对象进行同种特效处理,以及当单个NiShader无法满足绘制需求时,与其让一个美术为不同几何体提供不同的NiShader,不如使用单个NiMaterial,它可以在运行时为每一个几何体提供合适的NiShader。一个简单材质可以查询mesh从而决原创 2013-04-12 21:00:11 · 690 阅读 · 0 评论 -
Gamebryo—Shader System
Shader System一、 介绍GB的NiShader系统控制了物体如何被渲染的,包括它们的顶点和像素着色。NiShader被NiMaterial创建,NiMaterial会分析物体的状态从而决定、创建合适的NiShader对象。材质和着色组成了pipline,它们时基于数据驱动的(data-driven)。一个shader在GB中代表了一个完整物体的渲染特效。它和DX中的te原创 2013-04-12 21:01:07 · 1220 阅读 · 0 评论 -
BigWorld—chunck系统
一、基本介绍1: 把一个空间分割为许多chunks;这些chunk不会重叠;空间中的一个点只能属于一个chunk。2: 一个chunk是一个三维的容器(volume),它包含了许多场景对象。这些场景对象包括models、lights、entities、terrain blocks。把这些场景对象称作:chunk item。3: chunk也定义一些平面来组成边界,这些面可能定义port原创 2013-04-13 18:41:55 · 951 阅读 · 0 评论 -
Gamebryo—Mesh Profile System
Mesh Profile System总的来说,一个Mesh的配置文件(profile)是一个模板,这个模板定义了一个导出Mesh时如何形成的以及在tool plug-in pipeline中如何被操作。Plug-in更关注的是一个导出Mesh是如何创建的。如,一个plug-in期望得到一个拥有数据流Mesh,这些数据流携带了特殊命名词法(semantic name)或特殊的格式。在plug-原创 2013-04-12 21:02:18 · 733 阅读 · 0 评论 -
Gamebryo—ParticalSystem
一、程序中的粒子系统1.NiPartical介绍可以通过3DS Max来创建粒子系统NIF文件,程序在使用这些NIF文件来创建,并随着场景的更新产生动画效果。粒子系统还可以绑定在特点的动画序列上,从而粒子可以随着动画角色同步。粒子可以是由screen-faceing texture quads组成或隶属于特定的场景图。在粒子产生后可以受特定的力、碰撞影响。可以通过Programmatic来原创 2013-04-12 21:17:14 · 884 阅读 · 0 评论 -
Gamebryo—NiTerrain
一、 介绍1、 地形架构GB中的地形是场景图系统的扩展。可以使用NiEntity来创建地形,即向场景中添加一个包含一个NiTerrainComonent的组件实体。地形可以被分割成一个父亲NiTerrain和孩子NiTerrainSector。NiTerrainComponent可以当作NiTerrain对象中的一个实体接口,并且负责处理和管理场景中的地形。NiTerrain原创 2013-04-12 21:09:01 · 883 阅读 · 0 评论 -
Gamebryo—Entity
一、 概述1. 简介由于实体通常是有Model来定义的,所以在创建实体时必须知道model ID。所有的模型定义都被封装在一个FlatModel类中(它封装了model的所有属性和行为),每个entity包含了一个flatmodel实例。对于实体的属性支持“clone-on-write”。这样可以使得实体所占的内存达到最小。如,名字和其它一些属性不用包含在真正的实体中,可以通过getpro原创 2013-04-12 21:11:59 · 612 阅读 · 0 评论 -
Gamebryo—RendererDx9
RendererDx9一、 NiDx9Renderer基础1. 创建一个Dx9Renderer在全屏下需要设定屏幕的大小和深度。不支持多渲染器共存简单版:static NiDX9Renderer* Create(unsigned int uiWidth, unsigned int uiHeight, unsigned int uiUseFlags,NiWindo原创 2013-04-12 21:13:44 · 885 阅读 · 0 评论 -
Gamebryo—Progrmming
Gamebryo3.0SDK翻译-Progrmming 相关专题Progrmming 相关专题一、 基本知识1. 类的继承结构2. 对象系统使用了RTTI、智能指针、流操作等3. 静态对象和对象的生命期4. 命名相关5. 模板类:Lists、Array、Map等…………….6. UnicodeGB支持UTC-2和Ascii,而不支持UNICODE原创 2013-04-13 18:42:52 · 963 阅读 · 0 评论 -
[转]关于引擎优化的相关资料
原文链接:http://blog.csdn.net/pizi0475/article/details/7768151 最近在优化项目中用的到引擎,下面是搜集到的一下资料,转帖如下: 1 只在必须的时候Clear。IDirect3DDevice9::Clear函数通常需要花费较多的时间,因此要尽量少调用,而且只清空的确需要清空的缓存。2 尽量减少状态切转载 2012-08-03 09:05:22 · 935 阅读 · 0 评论 -
Gamebryo-光照方程和顶点属性说明
在固定管线的光照阶段,光照方程根据顶点颜色、光源、材质来计算最终的顶点颜色,在GB中顶点属性(NiVertexProperty)决定光照方程的计算方法。1.Gamebryo SDK提供的光照方程:这里要注意:说明:这三种颜色值的选择是根据顶点属性(NiVertexPeoperty)来设置的,可以选择是顶点颜色或者材质的 相关颜色。2.Gamebry原创 2013-04-12 20:58:46 · 757 阅读 · 0 评论 -
Gamebryo—帧渲染系统
帧渲染系统一、简介帧渲染系统提供了负责的特效提供了一个简单的方法。它提供了一些手动的方法。在应用程序中,通过帧渲染系统可以在初始化时做好所有的配置工作。当渲染时,可以自动执行这些被封装好的特效绘制操作。二、剖析一帧该系统允许事先建立复杂的渲染特效,从而在每一帧会自动执行。系统中提供了一些列可激活、禁止、重置的对象来做这些工作。特定帧中的对象可以被另一个使用了帧系统的应用程序原创 2013-04-12 21:02:58 · 612 阅读 · 0 评论 -
Gamebryo—NiEntity
NiEntity场景包含一系列实体,这些实体代表了游侠对象。它拥有很多属性。和实体相关的都放在NiEntity库中。注意:Game framework中的实体拥有行为,能和world builder tool交互一、 NiEntity接口实体库中的接口包括实体、组件等,这些接口没有继承于NiRefObject和NiObject而自身实现了引用计数和RTTI.NiEntityPr原创 2013-04-12 21:10:23 · 562 阅读 · 0 评论 -
Gamebryo—Data-driven Entity System
Data-driven Entity SystemData-driven Entity system是The Game Framework的核心。实体包含了实体模型(entity models)中定义的属性(propterty)和行为(behavior)。模型可以从而其模型中继承,从而可以进行功能的扩展。1 概述使用scheduler来处理运行时消息,它时一个用来处理运行时脚本和相关消原创 2013-04-12 21:11:21 · 624 阅读 · 0 评论 -
Gamebryo—Object System
Object System一、 简介1. 引用计数和智能指针GB中NiRefObject子类都是基于引用计数的,使用智能指针实现引用计数的半自动化。正如在NiRefObject中讨论的那样,智能指针智能指向在堆上动态分配的对象。永远不要将智能指针指向一个在栈上的对象(局部变量)。永远不要将智能指针指向一个静态的对象。如果一个函数使用智能指针作为参数,那么不要把一个没有被其他原创 2013-04-12 21:14:38 · 978 阅读 · 0 评论 -
Gamebryo—NiAnimation
NiAnimation一、 简介GB支持automatic animation playback和character-driven animation sequences。GB动画系统基于控制器和动画对象机制。在这种机制中,动画控制器被分给一个动画对象去操作,这些控制器被放在动画对象的控制器列表中。当动画对象更新时,控制器会基于当前时间改变动画对象的某些行为。随着时间的变换,动画对象的原创 2013-04-12 21:15:34 · 1063 阅读 · 0 评论 -
3D引擎数据库
http://www.devmaster.net/engines/Welcome to DevMaster's Game and Graphics Engines Database, your ultimate source for 3D Engines. This database is committed to providing you with the most accurate转载 2013-07-10 14:59:57 · 596 阅读 · 1 评论