- 博客(32)
- 收藏
- 关注
翻译 Game Engine Architecture by Jason Gregory:2.1 版本控制(2)
2.1.3 Subversion 和 TortoiseSVN 概览基于某些理由在本书中我强调Subversion。首先,它是免费的,这永远是件好事。以我的经验来看,它工作得很好并且很可靠。subversion的中央数据库(central repository)很容易搭建。另外就如我们所见的,如果你不愿意这么麻烦去自己建立一个数据库服务器的话,已经有许多免费的数据库服务器在那儿了。也有许
2013-11-24 12:13:24
1069
原创 Nike VS Adidas
Nike VS Adidas @上海淮海中路by wenfeiwangz@gmail.com 2013.10.1首先我要说声抱歉,在这两家店拍摄了一些照片,而这应该是不大被允许的。今天是10.1黄金周第一天,上午睡了会懒觉,躺在床上看了向英雄人民纪念碑敬献花篮的直播。然后出门去看展览。时间有多,在淮海中路上逛,进了sony专卖店,玩了一下触摸屏的笔
2013-10-27 13:48:05
1944
原创 项目开发的中的一些经验
// -------------------------------------------------// Best Practice// -------------------------------------------------1. TDD(Technique Design Document)2. KISS(Keep It Simple &
2013-10-27 13:10:47
981
转载 Ogre 工具集
Ogre 工具集[转载] http://www.cnblogs.com/Clin/archive/2011/11/21/2257314.htmlogre仅仅是个3dt图形渲染引擎,要做3d游戏,还需要的东西很多,比如物理,音效,网络(本教程内将不涉及) ,界面以及输入(这里咱们用ogre自带的cegui和ois),以及AI,呵呵,总之一个游戏包含的东西太多,咱们这里仅仅是入门教程,所以一一
2013-08-01 14:43:28
1035
原创 技术之外
1. 《doom启示录》2. 《黑客与画家》3. 《潜规则》、《血酬定律》4. 《唐浩明评点曾国藩家书》5. 《乔布斯 - 改变世界的力量》6. 《金刚经》7. 《万历十五年》8. 《杜拉拉升职记》9. 《货币战争》10. 《胡雪岩全传》11. 《哈佛公开课 - 公正》to be continued...
2012-09-19 19:02:55
648
原创 吐槽
<br />我也觉得苹果不好用。一句话总结:一群艺术家搞的东西。<br /><br />就它的产品来说,iPhone,什么年代了,支持个多任务还在那使劲吹,多么牛B似的。<br /><br />就OC语言来说<br />首先语法很奇怪,它是从C过来的,为什么不用C那套语法,非得自己搞一套奇奇怪怪的东西。<br />然后它的内存管理机制,搞一个什么NSAutoreleasePool,又或者是那个retainCount。之前碰到过有的引擎或者是标准库会提供一个“智能指针”之类的东西,无非就是“引用计数”一下。但
2011-05-23 15:33:00
1028
翻译 Game Engine Architecture by Jason Gregory:2.1 版本控制(1)
<br />在我们开始踏上游戏引擎架构这个迷人的旅途之前,用一些基本的工具及其它准备来武装自己是很重要的。在接下来的两章里,我们将回顾一下在这个旅程中将会用到的软件工程概念及实践经验。在第二章,我们将会探究一下被大多数专业的游戏工程师所采用的工具。接下来在第三章,我们将通过回顾一些在面向对象编程、设计模式、大型C++程序开发中重要的主题来结束我们的准备工作。<br />游戏开发是软件工程中最困难涉及面最广阔的领域之一,因此请相信我,若想在这个有时变幻莫测的领域中顺利进行的话,很好的准备是很有必要的。对有的读
2011-03-23 22:29:00
923
翻译 Game Engine Architecture by Jason Gregory:1.7 工具和资源流水线(2)
<br />1.7.4 骨骼动画数据<br />骨骼网格(skeletal mesh)是一种为了实现关节动画(articulated animation)的将网格绑定到骨骼层级(skeletal hierarchy)上面的网格类型。这种网格有时候也称之为蒙皮(skin),因为它是用“皮肤”把里面不可见的骨骼给包围起来。骨骼网络中的每个顶点都包含一份索引列表指出它绑定的是骨骼中的哪个关节。一个顶点一般还包含有关节的权重,指定每个节点对这个顶点的影响的大小。<br />为了渲染一个骨骼网格,游戏引擎需
2011-03-17 21:35:00
1025
翻译 Game Engine Architecture by Jason Gregory:1.7 工具和资源流水线(1)
<br />任何游戏引擎都会用到大量的各种格式的数据,如游戏资源、配置文件、脚本,等等。图1.31描述了现代游戏引擎中用到的一些类型的数据。粗黑箭头展示了数据是如何从创建它们的最原始的工具转换到最终的游戏引擎中去的。细灰箭头则表示了表示了这些各种各样的资源如何关联或者引用其它资源的。<br /><br /><br />1.71 数字内容创建工具<br />游戏天生就是多媒体应用程序。游戏引擎的输入数据来自于非常多的格式: 3D网格数据,图片(位图),动画数据,音频数据...所有这些源数据都需要由艺术
2011-03-16 21:22:00
1338
原创 用标准库对大规模数据排序
30万3千行数据。我自己写了个冒泡,外层循环0.4秒执行一轮,那么差不多是300000*0.4/(60*60) = 33.3小时。然后特意跑去同事那边用他那台8核2.4G内存24G的超强机器去跑,没有什么明显的效率提升。然后使用std::sort(),用时4.7秒(我自已的电脑,双核2.0G),同事的电脑2.1秒。泪流满面...
2011-03-15 21:09:00
867
原创 正则表达式
<br />最近有一个很大的文件(>15M,超过30万行)要处理,泪流满面,要手动我就废了。<br /> <br />于是查了查有关正则表达式的文章,这一篇<正则表达式30分钟入门教程>(版本:v2.31 (2009-4-11) 作者:deerchao 转载请注明来源)介绍得还挺详细。<br />另外我用的是UltraEditor,所以找到了这篇文章: <在UltraEdit的查找和替换中使用正则表达式>,作者是谁我就没有去考证了。<br /> <br />想当年为了找聊天记录里面的手机号码,专门
2011-03-15 10:47:00
590
翻译 Game Engine Architecture by Jason Gregory:1.6 实时游戏引擎架构(4)
在任何游戏引擎中,声音是跟图象一样重要的。不幸的是,声音经常不如画面渲染、物理、动画、人工智能及游戏性那么受重视。一个佐证便是: 程序员经常在写代码的时候把扬声器关掉!(事实上,我知道有许多甚至没有扬声器或者耳机的游戏程序员)。但是,离开优秀声音引擎,没有哪个伟大的游戏能完成。音乐层如图1.27所描述。声音引擎变化多样。Quake和Unreal的声音引擎都非常基础,游戏开发团队经常通过自定义的功能或者用私有的(in-house)解决方案取代它来增加声音引擎。对于DirectX平台(PC和Xbox 360
2011-03-13 17:23:00
1711
翻译 Game Engine Architecture by Jason Gregory:1.6 实时游戏引擎架构(3)
<br />1.6.9 性能分析及调试工具(Profiling and Debugging Tools)<br /><br />游戏是实时系统,因此,游戏引擎开发者一般需要查看分析他们的游戏的性能以作性能上的优化。另外,内存资源经常紧缺,所以开发者也很认真的对待和使用内存分析工具。如图1.23所示,性能查看和调试工具层,包含前面所提到的东西,另外还包括其它的调试工具,如调试用绘制(debug drawing),游戏内菜单或控制台(in-game menu/console),然后还有作为测试及调试用的记录
2011-03-10 22:01:00
1324
翻译 Game Engine Architecture by Jason Gregory:1.6 实时游戏引擎架构(2)
1.6.5 平台无关层(Platform Independence Layer)大多数游戏引擎需要有能运行在超过一个硬件平台上的能力。像EA及动视暴雪(Activision/Blizzard)这些公司,一直把它们的游戏定位在一个非常广泛的平台,因为这能使他们的游戏拓展到尽可能大的市场。典型的,对每个游戏,唯一不把目标定在至少两个不同的硬件平台上的公司是第一方工作室(first-party studio),如Sony的Naughty Dog还有Insomniac Studio.因此,绝大多数游戏引擎架构上
2011-03-08 23:57:00
2498
翻译 Game Engine Architecture by Jason Gregory:1.6 实时游戏引擎架构(1)
一个游戏引擎一般是由工具集和一个运行时组件组成。下面部分我们将首先研究这个运行时组件,然后再看工具集。图片1.11展示了组成一个典型的3D游戏引擎的主要的组成部件。没错,它非常宏大!而且这张图片并没有把所有的工具都包含进来。游戏引擎绝对是一个大的软件系统。就像其它所有的软件系统一样,游戏引擎是分层次结构的。一般来说上层依赖下层,但反过来不一定成立。当下层也依赖上层的时候,我们就说这是一个循环依赖。循环依赖在所有的软件系统中都是需要尽量避免的,因为它们导致系统联接关系不明,让软件变得不可测试,阻止代码
2011-03-07 23:39:00
2260
转载 确定项目技术方案
本文转自xikema的博客http://blog.youkuaiyun.com/xikema/archive/2009/02/16/3895802.aspx 确立技术 <br /> 技术版本应用ogre3dShoggoth 1.6.1SceneManager PluginClient FrameworkResourceTheme ceguiversion 0.6.2UI aceversion 5.6Client NetworkServer ComponentPort boostversion 1.38.0Commo
2011-03-04 11:19:00
984
翻译 Game Engine Architecture by Jason Gregory:1.5 游戏引擎概况
1.5.1 Quake引擎系列一般认为第一个3D的FPS游戏是位于美国德克萨斯州的id Software做的PC平台上的Castle Wolfenstein 3D(1992).这个游戏把整个行业带向一个全新的并且令人兴奋的方向。Id Software接着制作了Doom, Quake, Quake II, Quake III. 所有这些引擎在架构上都比较接近,我将它们称之为Quake引擎系列。Quake引擎的技术被拿来制作了大量的其它游戏,甚至其它引擎。例如,PC平台上的Medal of Honor的族谱
2011-03-03 22:38:00
1699
翻译 Game Engine Architecture by Jason Gregory:1.4 不同类型的游戏引擎(2)
<br />1.4.3 格斗游戏<br /><br />格斗游戏是一种由像人一样的角色在某种类型的拳击场里用拳头互相打对方的、有两个玩家的的游戏。这种类型的游戏以Soul Calibur和Tekken为代表。关于这种游戏类型的wiki页面地址为: http://en.wikipedia.org/wiki/Fighting_game<br />传统的格斗游戏关注的技术为:<br />* 非常丰富的格斗动画<br />* 精确的命中检测<br />* 一个能检测复杂的按键及摇杆组合的用户输入
2011-03-02 22:46:00
956
翻译 Game Engine Architecture by Jason Gregory:1.4 不同类型的游戏引擎(1)
游戏引擎是一种典型的有流派之分的东西。一个设计为支持两人的在一个拳击场上的搏斗游戏引擎将会跟一个大型多人在线游戏(MMOG)的引擎或者一个第一人称射击游戏(FPS)引擎又或是一个即时战略游戏(RTS)引擎有非常大的不同。但不管怎样,它们仍然有许多共同之处 - 所有的3D游戏,不管类型,都会有某种形式的底层输入,来自游戏手柄、键盘或者鼠标,某种形式的3D的网格渲染,某种形式的包括支持多种字体文字显示的平视显示器(HUD),一个非常强大的音频系统,等等。因此比如当Unreal引擎是为FPS游戏设计的,但仍被成功
2011-03-01 22:27:00
932
原创 6 Introduce stencil buffer
模板测试:模板测试最经典的用途是,将屏幕上不规则的区域屏蔽掉,防止在该区域中绘图。比如需要在场景中绘制一面镜子及它反射的物体。即可以绘制镜子以形成模板缓存,然后绘制场景中的物体,只有可以通过模板测试(也即是在镜子中)的东西才会绘制出来。流程如下:http://www.cppblog.com/lovedday/archive/2008/03/19/44875.html1、正常渲染所有的场景——地板,墙,镜子和茶壶——不包含反射的茶壶。注意这一步没有修改模板缓存。2、清除模板缓存为0。图8.3显
2011-03-01 18:03:00
862
原创 5 introduce FBO
FBO: framebuffer object.framebuffer is the final rendering destination of OpenGL pipeline. by default it's created and managed by window system. FBO is non-displayable created by OpenGL.OpenGL app can redirect the rendering output to the FBO.FBO cont
2011-03-01 13:02:00
1627
翻译 Game Engine Architecture by Jason Gregory:1.3 什么是一个游戏引擎
"游戏引擎"这个概念是在1990时代中期随着类似当时由idsoft公司做的疯狂流行的Doom这种第一人称射击游戏而出现的。Doom通过对核心软件部分(如3D图形渲染系统、碰撞检测系统、音频系统)、美术资源、游戏世界、用以提高玩家游戏体验的一些游戏规则的合理的、很好的定义的分离,形成了一个比较好的的架构。当开发者开始开放游戏授权,或者仅仅用对“游戏引擎”作最小的改动而把新创作的美术资源,世界地形分布,武器,角色,车辆还有游戏规则做到新产品中去的时候,这个分离的作用就显现出来了。这个使得"mod commnit
2011-02-28 22:32:00
915
翻译 Game Engine Architecture by Jason Gregory:1.2 什么是一个游戏
<br />可能我们都会对“什么是一个游戏”有一个直观上的感觉。“游戏”这个术语包含桌上游戏如象棋、monopoly,纸牌游戏如扑克和21点,赌博游戏如轮盘赌和街机,对战游戏,电脑游戏等,它们在少年儿童中很普遍,这个单子还可以列得更长。在学术上,很多代理商为了在一个定义良好的游戏规则下最大化利润下选择产品分类的时候,会之为“游戏理论”. 当我们在谈游戏机或者电脑上的游戏的时候,“游戏”一般指在一个三维的虚拟世界中,有一个虚拟人,或者动物或者车辆,作为主角由玩家来控制的这种类型的软件(为了避免我们中的一些死板
2011-02-26 10:58:00
961
翻译 Game Engine Architecture by Jason Gregory:1.1 一个典型游戏团队的结构
<br />1.1 一个典型游戏团队的结构<br /><br />在深入了解一个典型游戏引擎的结构之前,让我们先看一看一个典型的游戏开发团队的结构。游戏工作室一般由下面五个基本部门组成:工程师(engineer),艺术师(artists),游戏设计师(game designers),制作人(producers),还有其它管理人员及支持人员(市场营销人员、法律顾问、信息技术支持、行政人员).每个部门还可以再细分,下面我们就这几个部分作一个简单的介绍.<br /><br />1.1.1 工程师 Engi
2011-02-24 22:29:00
1677
翻译 Game Engine Architecture by Jason Gregory: 序
前言当我在1979年得到我的第一台游戏机 - Mattel做的一个非常酷的控制系统 - 的时候,还没有"游戏引擎"这个术语. 那个时候电视游戏和街机在成人眼里只不过是小玩意儿,然后那个时候的软件也使它们跟运行它们的硬件绑定得非常紧密. 今天,游戏已经是一个几百亿市场的产业,的无论在规模上还是在受欢迎程度上都不亚于好莱坞电影。引起这一切的软件,它们可以随意搭建出一个3D的世界,也就是游戏引擎。如id Software公司的Doom engine(毁灭战士),Quake engine(雷神之锤),Epic的
2011-02-24 17:32:00
1360
原创 4. introducing POD
<br />InitApplication:<br />PVRTModelPod mScene.ReadFromFile()<br /><br />InitView:<br />LoadVbos()<br />LoadTextures()<br />LoadShaders()<br />Print3D.SetTextures(0,PVRShellGet(prefWidth),PVRShellGet(prefHeight), bRotate)<br /><br />RenderSc
2011-02-24 14:40:00
859
翻译 Game Engine Architecture by Jason Gregory: 目录
觉得这本书很牛,为了更好的学习,准备翻译一下。今天翻译了个目录。游戏引擎架构 Jason Gregory前言序第一部分:基础知识1. 简介 1.1 一个典型游戏团队的结构 1.2 什么是一个游戏? 1.3 什么是一个游戏引擎? 1.4 不同类型的游戏引擎 1.5 游戏引擎状况 1.6 实时游戏引擎架构 1.7 工作和资源流水线2. 项目中用到的工具 2.1 版本控制 2.2 Visual
2011-02-23 21:37:00
1113
原创 2 Texture && PRVShell
<br />// Fragment and vertex shaders code<br /> const char* pszFragShader = "/<br /> uniform sampler2D sampler2d;/<br /> varying mediump vec2 myTexCoord;/<br /> void main (void)/<br /> {/<br /> gl_Fr
2011-02-23 16:31:00
978
原创 3. introducing PVRTools
从这一节开始,对shader进行了封装.项目中加入了FragShader.cpp这个shader程序跟FragShader.fsh是一样的。它会加入到MemoryFileSystem中去。// File datastatic const char _FragShader_fsh[] = "uniform sampler2D sTexture;/r/n" "/r/n" "varying mediump vec2 TexCoord;/r/n" "/r
2011-02-23 16:28:00
1221
原创 Shader学习 Hello World!
<br />本来是准备学习有关 光照和阴影算法 的,然后发现都是用shader做的。虽然做游戏有一段时间,主要接触的也是图形学部分,在OpenGL下工作,也就没有学shader了。<br />几个月前看过那个<GPU编程之阳春白雪与下里巴人>,但没有实践过,但也算稍微有个了解。<br />这次学习,主要以PowerVR的示例为教程。它有一个帮助手册<Migration from OpenGL ES 1.x to OpenGL ES 2.0 API.1.1f.External>,里面作了shader使用的说明
2011-02-23 09:52:00
2325
原创 注册一个网站,居然要提问!
<br />第一次碰到,把题目贴出来晒晒:<br /> <br />1. [图形学问题] DX/OGL中的纹理压缩尺寸(即,一个block包含多少个像素)?<br />2. [视频图像编解码问题] 在H264/MPEG2中,“运动估计”是一种非常有效的frame间压缩方法,请问这个术语的英文缩写是什么?<br />3. [视频图像编解码问题] 在Jpeg图像压缩标准中,时域到 频域的转换使用的是以下哪一种变换(请选择最精确的描述)?<br />4. [IC设计] 一个标准的三输入与非门是由几个mos管组成的
2010-10-18 23:44:00
748
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人