3. 模型
游戏引擎提供了一套绘制三角形的解决方案,而这些三角形将如何被组织,绘制时采取何种参数,则需要美术人员在模型编辑器(3ds max等)里给出定义。
在硬盘上如何将这些三角形和渲染参数组织为文件,这些文件又如何加载,由此催生出诸多模型文件格式(.x,.mesh,.nif等),基本上各大公司都有自己的格式文件,并提供整套由编辑器(3ds max)格式到自己文件格式的转换方法。
看似简单的规则,却产生了诸多方的诸多诠释版本。竞争导致冗余,同时催生发展,行业乃至社会进步全仗于此。如果要编写一个像样的引擎的话,我们也将加入这个诠释行列中。
也就是说我们需要开发自己的3ds max导出(甚至导入)插件。
3.1 配置插件开发环境(3ds max2008+vs2008)
以3ds max2009为例,安装时确保同时安装了3ds max sdk。
3ds max2009默认支持visual studio2005,按照max安装目录Autodesk\3ds Max 9 SDK\maxsdk\howto\3dsmaxPluginWizard下的readme.txt中的说明步骤,可以配置出一个vs2005向导(wizard)用于快速建立max插件工程。该文档为英文书写,在下述网址中则可以找到中文教程,该教程在指导建立配置之余同时演示了如何建立一个空的插件项目。
http://www.cnblogs.com/csyisong/archive/2009/09/01/1558051.html
注意,如果你使用的是visual studio2008,那么在配置时需要做出额外更改:在根据教程复制3dsmaxPluginWizard.ico、3dsmaxPluginWizard.vsdir、3dsmaxPluginWizard.vsz到VS 2005安装目录的VCProjects之前,你需要:
1. 将max安装目录Autodesk\3ds Max 9 SDK\maxsdk\howto\3dsmaxPluginWizard下3dsmaxPluginWizard.vcproj文件及Autodesk\3ds Max 9 SDK\maxsdk\howto\3dsmaxPluginWizard\Templates\1033下root.vcproj文件里的Version="8.00"改为Version="9.00";
2. 将max安装目录Autodesk\3ds Max 9 SDK\maxsdk\howto\3dsmaxPluginWizard下3dsmaxPluginWizard.vsz文件中Wizard=VsWizard.VsWizardEngine.8.0改为Wizard=VsWizard.VsWizardEngine.9.0;
这三个文件直接用文本编辑器打开编辑即可。其余与配置vs2005无异。
3.2 插件开发
3dsmax插件开发可参考潘李亮《游戏程序中的骨骼插件》一文,这篇文章前部分细述了模型文件的导出,后部分讲解骨骼动画的导出,阐述十分透彻。建议在自行编写的同时参考max sdk自带的实例代码,相信很快就能轻驾就熟,达到应用层面的水平。
http://www.cppblog.com/lai3d/archive/2009/07/11/89768.html
3.3 ElMaxPlugin
El目前支持导出模型(含动画)为ELM格式文件,导出骨骼为ELS格式文件,导出骨骼动画为ESA格式文件,并提供在游戏中加载、使用上述格式文件的方案。
对于模型的支持,作者以为在各个引擎中占据大部分比重。围绕模型产生的技巧也是数不胜数,例如模型LOD,模型拆分、组装(换装系统),模型渲染参数(是否含Alpha通道、是否投射阴影)等,都需要在设计之初给予考虑。
大家可以从一个简单的模型导出和载入开始,逐步学习3ds max插件开发及游戏网格模型系统的设计,相信对大家进阶游戏深层开发会大有裨益。
图3.1 模型
图 3.2 模型(线框模式)
分享到:
相关推荐
3. **EL表达式**(Expression Language):可能被用来简化页面中的数据访问,如`${variable}`,这可以方便地从请求或会话范围获取数据。 4. **JSTL(JavaServer Pages Standard Tag Library)**:可能使用了JSTL...
"3ds Max导出插件"是El游戏引擎的一个重要组成部分,允许用户将3ds Max中创建的3D模型和场景无缝导入到El引擎中。3ds Max是一款广泛使用的3D建模、动画和渲染软件,通过这个插件,开发者可以充分利用其强大的3D内容...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。 Java的COM桥 JCom JCom (Java-COM Bridge) 可以...
开发者可能使用了开源的3D建模工具(如Blender)和游戏引擎(如Godot或Unity)来构建游戏世界。开源游戏通常采用跨平台的编程语言,如C++或Python,以便在多种操作系统上运行。 对于玩家而言,开源游戏的另一个好处...
在"vigila-el-cortijo"中,开发者可能利用Unity的场景管理、物理引擎、动画系统以及渲染功能来创建游戏世界。 3. **游戏循环**:游戏通常包含一个主循环(如Update函数),用于处理玩家输入、更新游戏状态、渲染...
4. **物理引擎**:编辑器集成了一套物理引擎,可以模拟真实世界的物理规则,如重力、碰撞检测等,使得游戏物体的运动更加自然。 5. **关卡设计**:Element编辑器允许用户设计各种复杂的关卡布局,通过设置路径、...
3. 资源管理:学习如何加载、管理和更新纹理、模型和其他游戏资源。 4. 空间变换:理解如何使用矩阵来实现对象的位置、旋转和缩放。 5. 用户输入处理:学习如何捕获和响应键盘、鼠标等输入设备的事件。 总之,《El_...
### Spring Boot Thymeleaf 模板引擎详解 #### Thymeleaf 简介 Thymeleaf 是一种现代的服务器端 Java 模板引擎,它的独特之处在于支持 HTML 原型,这意味着它的文件扩展名为 `.html`,可以直接在浏览器中打开。...