- 博客(10)
- 资源 (14)
- 收藏
- 关注
翻译 Nebula3的多线程架构
Nebula3的代码运行在两种根本不同的方案中. 第一种方案我称之为”Fat Thread”. 一个Fat Thread在一个线程中运行一个完整的子系统(如渲染, 音频, AI, 物理, 资源管理), 并且基本上锁定在一个特定的核心上. 第二种类型的线程我叫它”Job”. 一个job是一些数据和用于处理这些数据的包装成C++对象的代码. 工作调度程序掌管了Job对象, 并且把工作分配给低负载的
2008-10-31 23:55:00 3090
翻译 Nebula3资源子系统
跟N2比起来, N3的资源子系统更加开放, 让程序员对资源的创建和管理更多的控制. Nebula3的资源有下面几个特性:包装了一些其它Nebula子系统需要的数据可以用ResourceId共享可以在任何时候加载(初始化)和卸载可以同步或异步加载 例如典型的图形资源有网格和纹理, 但资源子系统并不局限于图形资源. 资源子系统有两个操作层次( 可能以后会把他们放
2008-10-30 00:44:00 3365 2
翻译 Nebula3脚本系统
Nebula2的脚本系统实现了一个面向C++的脚本接口, 它把脚本命令直接映射到了C++方法. 从技术角度来说, 这是一个简捷的思路, 但是对于需要把游戏逻辑和行为脚本化的关卡设计师来说, Nebula2的脚本系统太底层和透明了. 关卡逻辑脚本一般来说构架于比C++接口更高级的层次上, 直接把脚本命令映射到C++方法会把脚本层次弄得错综复杂. Bug甚至会比同样的C++代码更多, 因为脚本语言
2008-10-28 23:47:00 2932 3
原创 C++与Flash的交互
研究Flash嵌入游戏中的可行性.......渲染问题已解决事件响应已解决下面是C++与Flash AS的交互, 以MFC为例:1. 新建一个MFC Dialog程序2. 添加一个Flash控件 3. 把Flash控件添加一个变量 4. 在OnInitDialog()中添加载.swf文件// CCppFlashDlg 消息处理程序
2008-10-22 10:12:00 27750 11
原创 MPQ Plugin for Total Commander
一直以来我都用TC而不用Windows的资源管理器的 今天在看MPQ文件格式, 在StormLib的网站上找到这么个东西: MPQ Plugin for Total Commander v 1.2.0.53 (1,87 MB) for Win95/98/NT/ME/2000/XP/VistaArchive plugin for Total Commander.
2008-10-20 20:16:00 2527
原创 Nebula3的场景管理
N3的场景管理最为核心的一个类是GrphicsServer, 它包含一些"stage"和"View". Stage把图形实体(模型, 摄像机, 灯光)进行分类渲染. 它的主要工作是在连接的图形实体间加速可见性查询. 不同的可见性查询由不同的Stage子类来实现. N3会提供了一些不同用途的Stage子类, 但你也可以根据程序需要自己来实现可见性查询机制. 可见性查询适用
2008-10-20 13:18:00 1900
原创 关于Nebula3工程的几个编译选项
研究一下人家是怎么通过编译选项来优化性能的 DEBUG:C++/Code Generation/Enable String Pooling: Yes (/GF)该选项使编译器能够为执行过程中程序映像和内存中的相同字符串创建单个副本,从而得到较小的程序,这种优化称为字符串池C++/Code Generation/Enable C++ Exceptions: N
2008-10-15 23:05:00 2096
原创 嵌入式的浏览器有第三种方案啦
最初在游戏里嵌入网页用的是LLmozLib, 说实话, 还不错, 用的FireFox的解析引擎但是它的编译太麻烦了, 而且跟一些引擎代码直接链接到一起的话还会冲突最让人觉得不爽的是, 附带了一大堆的DLL和资源文件 后来自己用IE的IWebBrowser2实现了一个嵌入浏览器, 除了滚动条拖动和效率还有点问题, 也基本上能用好处是兼容性好, 也不用附带什么 后来看到go
2008-10-12 23:43:00 2561 2
原创 纹理投影测试
对于不规则的几何体的纹理坐标, 差不多都是通过投影来算的吧冒似有个"球状纹理"投影到一个物体上, 就像CubeMap还有一种"圆柱形纹理", 对物体一圈进行投影GPU Gems3里有个不规则地形(X,Y,Z三个方向上都有面), 这时就没法简单地用X,Z坐标来计算UV了对于基于高度图的地形来说, 如果Y方向很高的话, 纹理会有明显的拉伸现象这时就可以换个方向进行投影, 用于制作悬
2008-10-12 22:06:00 2543
原创 Nebula3的Input系统
相对于其他的子系统来说, 输入系统是比较简单的. 很多游戏根本就没有对这一块进行封装, 而直接采用了Win32的消息机制. 不过经过封装的输入系统使用起来很方便, 呵呵. N3中有三种输入设备, 键盘, 鼠标, 手柄. 分别是基于Win32消息, DirectInput, XInput实现的. 这里有一个继承图能够很好的说明输入系统的组织结构:基本的消息处理机制是这样的一个流
2008-10-06 23:26:00 1652
View Frustum Culling Tutorial
2009-11-19
Introduction to 3D Game Programming with Direct3D 10(2)
2009-11-16
Introduction to 3D Game Programming with Direct3D 10(1)
2009-11-16
Programming Vertex, Geometry, and Pixel Shaders
2009-02-02
DirectX in C++/CLI
2008-11-02
Introduction to 3D Game Programming with DirectX9.0c A Shader Approach
2008-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人