文章分类 -  文档翻译

Gamebryo3.0SDK翻译-帧渲染系统
摘要:帧渲染系统 一、简介 帧渲染系统提供了负责的特效提供了一个简单的方法。它提供了一些手动的方法。 在应用程序中,通过帧渲染系统可以在初始化时做好所有的配置工作。当渲染时,可以 自动执行这些被封装好的特效绘制操作。 二、剖析一帧 该系统允许事先建立复杂的渲染特效,从而在每一帧会自动执行。系统中提供了一些列可激活、禁止、重置的对象来做这些工作。特定帧中的对象可以被另一个使用了帧系统的应用程序调用。 Re... 阅读全文

posted @ 2011-02-27 14:35 arun 阅读(557) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-Shader System
摘要:Shader System 一、 介绍 GB的NiShader系统控制了物体如何被渲染的,包括它们的顶点和像素 着色。NiShader被NiMaterial创建,NiMaterial会分析物体的状态从而决定、创建合适的NiShader对象。材质和着色组成了pipline,它们时基于数据驱动的(data-driven)。 一个shader在GB中代表了一个完整物体的渲染特效。它和DX中的termin... 阅读全文

posted @ 2011-02-27 14:32 arun 阅读(995) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-Mesh Profile System
摘要:Mesh Profile System 总的来说,一个Mesh的配置文件(profile)是一个模板,这个模板定义了一个导出Mesh时如何形成的以及在tool plug-in pipeline中如何被操作。Plug-in更关注的是一个导出Mesh是如何创建的。如,一个plug-in期望得到一个拥有数据流Mesh,这些数据流携带了特殊命名词法(semantic name)或特殊的格式。在plug-i... 阅读全文

posted @ 2011-02-27 14:32 arun 阅读(396) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-Material System
摘要:Material System 一、 简介 GB的材质系统是一种基于NiMesh的渲染状态创建相应NiShader实例的机制。开发者经常需要为多个对象进行同种特效处理,以及当单个NiShader无法满足绘制需求时,与其让一个美术为不同几何体提供不同的NiShader,不如使用单个NiMaterial,它可以在运行时为每一个几何体提供合适的NiShader。 一个简单材质可以查询mesh从而决定它是... 阅读全文

posted @ 2011-02-27 14:31 arun 阅读(710) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-NiEntity
摘要:NiEntity 场景包含一系列实体,这些实体代表了游侠对象。它拥有很多属性。和实体相关的都放在NiEntity库中。 注意:Game framework中的实体拥有行为,能和world builder tool交互 一、 NiEntity接口 实体库中的接口包括实体、组件等,这些接口没有继承于NiRefObject和NiObject而自身实现了引用计数和RTTI. NiEntityPropert... 阅读全文

posted @ 2011-02-27 14:29 arun 阅读(449) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-NiTerrain
摘要:NiTerrain 一、 介绍 1、 地形架构 GB中的地形是场景图系统的扩展。可以使用NiEntity来创建地形,即向场景中添加一个包含一个NiTerrainComonent的组件实体。 地形可以被分割成一个父亲NiTerrain和孩子NiTerrainSector。NiTerrainComponent可以当作NiTerrain对象中的一个实体接口,并且负责处理和管理场景中的地形。 NiTerr... 阅读全文

posted @ 2011-02-27 14:28 arun 阅读(535) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-Texturing
摘要:Texturing一、 纹理基本常识1. 简介GB纹理系统包括:多纹理、投影纹理(Projected texture)、动态纹理、渲染纹理。2. 纹理的基本使用要想使用和标准材质一起使用纹理,应用程序必须做以下两件事:为数据流定义纹理坐标;挂载纹理属性(包括纹理资源、和纹理的处理方式)。3. 纹理属性及其组成部分纹理属性包括两大部分信息:(1) 一个或多个Map,该Map定义每个纹理相关的设置。不同的Map代表不同类型的纹理特效。其中,Base Map(或者Diffuse Map)代表了物体的顶点自发光颜色。(2) 纹理的挂载模式(texture-apply mode).定义了一组纹理如何影响 阅读全文

posted @ 2011-02-27 14:25 arun 阅读(751) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-NiMesh
摘要:NiMesh一、 NiMesh简介NiMesh库提供了一些列具有平台独立性的类,从而完成和几何体之间的交互。1. 术语(terminology)Stream:是一个抽象的数据缓冲区,可以包括一个或多个顶点、顶点索引以及用户自定义的元素Usage:stream封装了一个缓冲区,这些缓冲可以被用作不同的目的。GB使用Usage来标志该stream的用途:USAGE_VERTEX-顶点数据USAGE_VERTEX_INDEX-顶点索引数据USAGE_USER-自定义数据类型,GB渲染器使用用户自定义stream来保存shader constant数组。Element:一个元素代表一个数据数组,该数据 阅读全文

posted @ 2011-02-27 14:23 arun 阅读(875) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-NiApplication
摘要:NiApplicationNiApplication是针对Gamebryo示例创建的跨平台框架。它的主要功能有—创建窗口、创建渲染器、创建输入系统以及提供命令行(command line)的访问接口。一、基本知识1. 基本物体的创建SceneNiNodePtr m_spCene:指向场景的根。Virtual bool CreateScene:分配一个Node给m_spSceneCameraNiCamraPtr m_spCameraVirtual bool CreateCamra:创建NiCameraRendererNiRendererPtr m_spRenderer:Virtual bool 阅读全文

posted @ 2011-02-27 14:18 arun 阅读(495) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-Object System
摘要:Object System一、 简介1. 引用计数和智能指针GB中NiRefObject子类都是基于引用计数的,使用智能指针实现引用计数的半自动化。正如在NiRefObject中讨论的那样,智能指针智能指向在堆上动态分配的对象。永远不要将智能指针指向一个在栈上的对象(局部变量)。永远不要将智能指针指向一个静态的对象。如果一个函数使用智能指针作为参数,那么不要把一个没有被其他智能指针引用的对象常规指针作为参数传入到函数中。智能指针系统提供了两个宏,一个永远定义智能指针类型另一个用来智能指针类型转换。类型定义的宏是NiSmartPointer(classname)。例子如下NiSmartPoint 阅读全文

posted @ 2011-02-27 14:14 arun 阅读(420) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-RendererDx9
摘要:RendererDx9一、 NiDx9Renderer基础1. 创建一个Dx9Renderer在全屏下需要设定屏幕的大小和深度。不支持多渲染器共存简单版:static NiDX9Renderer* Create(unsigned int uiWidth, unsigned int uiHeight, unsigned int uiUseFlags,NiWindowRef kWndDevice,NiWindowRef kWndFocus)高级版:static NiDX9Renderer* Create(unsigned int uiWidth, unsigned int uiHeight, un 阅读全文

posted @ 2011-02-27 14:11 arun 阅读(679) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-克隆对象Cloning Internals
摘要:克隆对象Cloning InternalsCloning Internals Cloning是产生对象的拷贝的一种方法。应用程序调用下面的的函数来克隆对象。第一个函数使用缺省值来克隆对象名称,这在后面讨论。第二个版本允许通过NiClonigProcess来实现局部控制,这是为多线程情况下设计的函数。 NiObject* NiObject::Clone(); NiObject* NiObject::Clone(NiCloningProcess& kCloning); 使用克隆而不是通过例如从NIF文件中重复加载场景图的优点是这一类型的对象往往要耗费很多的内存,通过克隆来像NiGeomet 阅读全文

posted @ 2011-02-27 14:10 arun 阅读(287) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-Entity
摘要:一、 概述1. 简介由于实体通常是有Model来定义的,所以在创建实体时必须知道model ID。所有的模型定义都被封装在一个FlatModel类中(它封装了model的所有属性和行为),每个entity包含了一个flatmodel实例。对于实体的属性支持“clone-on-write”。这样可以使得实体所占的内存达到最小。如,名字和其它一些属性不用包含在真正的实体中,可以通过getpropertyname()在flatmodel中寻找。当一个实体被初始化时,会从它对应的flatmodel中“克隆”所有的属性,这种方式使得所创实体中只需保存这些属性的引用即可。Entity:是一个游戏对象,每一 阅读全文

posted @ 2011-02-27 14:08 arun 阅读(301) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-Message System
摘要:Message System一、 概述消息分为为两种:远程消息(remote message)和本地消息(local message)。使用efd::MessageService,efd::IMessage,efd::Category.应用程序可以定义自己的消息子类。当消息需要在网上传播时,需要使用Foundation libraries和基本消息类中方法来实现相关代码,这些库提供了独立的网络字节序列。子类消息要在factory中注册,从而可以使它在网络上传输后被重构。消息系统使用category来对消息进行路由,一个Category可以被认为是一个地址。发送者不需要担心谁去接受,它要做的就是 阅读全文

posted @ 2011-02-27 14:06 arun 阅读(273) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-Data-driven Entity System
摘要:Data-driven Entity SystemData-driven Entity system是The Game Framework的核心。实体包含了实体模型(entity models)中定义的属性(propterty)和行为(behavior)。模型可以从而其模型中继承,从而可以进行功能的扩展。1 概述使用scheduler来处理运行时消息,它时一个用来处理运行时脚本和相关消息的系统服务。它和Entity Manager一起来触发实体的行为。实体在运行时被Entity Manager创建,Scheduler会根据相关事件来触发实体的相关行为,从而实现实体间的交互。这种交互时异步的。可 阅读全文

posted @ 2011-02-27 14:06 arun 阅读(289) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-只能指针
摘要:智能指针在Gamebryo中通过使用智能指针实现引用计数的半自动化。这通过NiPointer来实现,这个模板类重载了操作符,使得它的实例表现出来像一个标准的指针。然而, 智能指针自动地增加和减少它指向对象的引用计数,从而应用程序不在直接调用NiRefOjbect的引用计数函数。例如在函数中如果声明一个局部智能指针变量并指向对象A,那么对象A的引用技术在赋值的时候将会增加1。当函数返回的时候,这个局部的智能指针被摧毁(超出了作用域),对象A 的引用计数将会减少1。 约定俗成,每个从NiRefObject派生的Gameroy类都有一个方便的智能指针声明,它表现在类型名称上加“Ptr”(NiNode 阅读全文

posted @ 2011-02-27 14:04 arun 阅读(304) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-ParticalSystem
摘要:一、程序中的粒子系统1.NiPartical介绍可以通过3DS Max来创建粒子系统NIF文件,程序在使用这些NIF文件来创建,并随着场景的更新产生动画效果。粒子系统还可以绑定在特点的动画序列上,从而粒子可以随着动画角色同步。粒子可以是由screen-faceing texture quads组成或隶属于特定的场景图。在粒子产生后可以受特定的力、碰撞影响。可以通过Programmatic来创建和控制粒子系统。NiParticle.lib提供了GB中的粒子系统功能。Floodgate使得粒子系统的产生和模拟支持多线程处理。2.粒子系统概览粒子系统的渲染支持“standard material p 阅读全文

posted @ 2011-02-27 13:59 arun 阅读(582) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-RTTI
摘要:RTTI运行时类型信息 基于几个底层的管理类Gamebryo设计成一个类的层次结构。下面的图展示了从NiObject派生的类的一个类层次结构的小子集。 以NiObject作为根节点的Gamebryo对象使用单继承的方式编写。这样NiObject的子类形成了一个类型树(注意这是类型之间的关系树不是指对象实例之间的关系)。运行时类型信息(RTTI)系统使得应用程序可以快速判断任何NiObject或其子类的直接类型或祖先类型 RTTI支持三个基本的操作: 1.判断一个对象的是不是严格的指定类型 2.判断一个对象是不是一个指定类型的派生类 3.动态转换一个类对象的指针到派生类的指针 所有的NiObje 阅读全文

posted @ 2011-02-27 13:59 arun 阅读(273) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-NiAnimation
摘要:NiAnimation 一、 简介 GB支持automatic animation playback和character-driven animation sequences。 GB动画系统基于控制器和动画对象机制。在这种机制中,动画控制器被分给一个动画对象去操作,这些控制器被放在动画对象的控制器列表中。当动画对象更新时,控制器会基于当前时间改变动画对象的某些行为。随着时间的变换,动画对象的属性也... 阅读全文

posted @ 2011-02-27 13:53 arun 阅读(871) 评论(0) 推荐(0)

Gamebryo3.0SDK翻译-Lightspeed介绍
摘要:Lightspeed介绍一、简介Emergent 公司设计原则:Rapid Prototyping,Rapid iterationLightSpeed的新特征(1) 新实体和行为系统基于数据驱动的实体定义实体的组成多种语言的定义行为(C++ 或 Lua)(2) 交互型游戏框架(Cross-platform game framework)模拟即时编辑支持第三方插件(3) 工具Toolbench实体模型工具(EMT)世界构造工具(World Buider)脚本调试器(Script Debugger)Rapid Particle Iteration withi Maya(4) 内核运行多线程分配策略 阅读全文

posted @ 2011-02-27 13:51 arun 阅读(1110) 评论(0) 推荐(0)

导航