游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5772|回复: 8

一个适合编程老手更适合编程新手的3D引擎-3DSTATE(介绍)

[复制链接]

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2004-11-9 21:44:00 | 显示全部楼层 |阅读模式
我在一个偶然的机会发现了这个3D引擎,研究了一段时间,觉得特别适合3D编程新手,功能也很强大,只要你在3dmax中做的场景够精致,在你的程序中显示出来的也是同样的精致,纯渲染程序代码不超过20行。



当然自己编写自己的3D引擎对自己的技术增长很有帮助,不过这对编程技术和各种SDK都得有很多了解才行。如果你是想自己编一个出色的游戏,而不是研究图形技术的话,那我建议你使用该免费引擎。



下面是一段引用该引擎中文教程的一段:


为什么使用图形引擎?

      ·        硬件和软件的标准不断在变化: 3D 加速卡和 API 市场不断在变化。几乎每个月我们都能听到关于一些新的市场之冠: MiniGL 淘汰, ICD 推出;DirectX 7.0 淘汰,Direct8.1 推出,Glide2x 淘汰,Glide3x 推出;OpenGL 1.2 1.1 … 针对不同的3D加速卡来测试大量的代码是非常耗时的,而且也是很繁琐的事情。这将使得开发者几乎没时间将精力集中在游戏本身上,等到游戏开发完毕, 相应的工业又发生了变化。 所以,您需要专人负责这方面的事情,从而就可将精力集中在实际的开发中。



      ·        学习曲线: 好的 3D 引擎将尽可能隐藏复杂的底层3D API 编程细节,从而最大程度的发挥出它的性能。使用 3D 引擎将使你能在一个较高的水平上作开发。



      ·        开发时间: 即使你在3D API 的使用上是个专家,也会在它基础上开发一个高效的引擎。这也是我们在最近四年中所作的工作。为什么还要进行重复劳动呢 ? 使用一些已经调试并投入使用的东西来替代你花时间对一些特定主题的研究,例如 二*空间算法, 面的消隐, 物理学和运动学, 纹理内存管理,软件渲染等等。为什么在设计游戏时又要花时间去设计引擎呢?



      ·        性 能:  基于硬件API的引擎性能不会太好。例如,Direct3D 的保持模式引擎性能较差,它不能有效处理大的世界。



      ·        工 具: 好的 3D 引擎 SDK 都带有工具包,这些工具包可以辅助完成开发过程。基于GUI的工具能有效的缩短开发周期,就像许多编程任务被简单的鼠标拖放特性所替代一样。例如,如果想拼装一个自己的SDK包,从供应商X处获得 3D 引擎,从供应商Y处获得世界创建器,从供应商Z处获得地形生成程序。则你将会在输入/输出上画大量的时间来找出为什么从3DS输出的漂亮模型转换成DirectX格式后变得很难看的原因。







为什么使用3DSTATE 引擎?      ·        性 能: 3DSTATE 能保证引擎的高性能,包括高的FPS值、高的图像质量和特殊效果。


      ·        技 术: 3DSTATE 的3D 引擎所拥有的虚拟现实引擎(VR_Engine)基于艺术级的算法和技术,包括它拥有的 PIRR(真实图像交互式实时渲染) 技术。从而使引擎在速度(FPS)和图像质量上都获得了较高的性能,并且高于其它基于PC机的引擎。3DSTATE 引擎 SDK 使得向任何应用程序添加任意类型的3D内容都变得极为简单。



      ·        简 单: 使用 3DSTATE 引擎非常简单,它会大大缩短你的开发时间。3DSTATE 程序可编得极为紧凑。下面是个例子程序。它加载一个世界并在屏幕上显示出来,直到键入Escape 键:



#include "3DSTATE.H"







void main(void)



{



STATE_engine_load_world("worlds\\world1.wld","", bitmaps",USER_DEFINED_BEHAVIOR);



               



    //渲染,直到Escape键按下



while( (GetAsyncKeyState(VK_ESCAPE)&1) ==0 ) {



        STATE_engine_render(NULL, STATE_camera_get_default_camera(););  



    }







}







      ·        完全控制: 使用 3DSTATE 引擎,你可以在位和字节级别上控制3D游戏的各个方面。 3DSTATE 引擎在程序中不限制对其它引擎的使用。例如,你可以在3DSTATE程序中轻松加入Direct3D 代码。



      ·        通用性: 许多3D引擎只能用于制作某一种类型的游戏。如Id Software 公司强大的Quake 引擎就不能用于设计赛车或飞行模拟器之类的游戏。3DSTATE 是一个通用的引擎,它对于户内和户外游戏都作过了大量优化。



      ·        非常快速的学习曲线: 3DSTATE 引擎没有使用任何新类和数据结构。SDK 带有近30个例子程序,它们中许多代码量还不到一页。



      ·        完整的工具包: 3DSTATE 提供了广泛的工具,它们可以与3DSTATE 引擎一起协调的工作。这将节省您许多时间。



      ·        适应性: 3DSTATE 引擎能适应你现有的编程环境。SDK 带有控制台类型、Windows API类型以及MFC 类型的例子程序。3DSTATE 也提供有多种不同版的SDK,它们可以适应当今流行的大多数编译器。



      ·        先进的Dll 技术: 3DSTATE 几乎每两个月发行一个新的引擎版本,从而反映出最新的加速卡和API。由于采用动态连接库技术,更新时,你只需替换3DSTATE 引擎中的DLL文件,而不需要重新编译程序。



3DSTATE 提供了什么?3DSTATE 引擎带有下列工具:



·    软件开发包: 在你喜欢的编程环境中,这些 API 可以向你提供对3D世界的完整控制。



   ·        World Builder: World Builder 允许你使用简单的拖放界面来创建复杂的3D世界。


   ·        Terrain Editor: 使用Terrain Editor 可简单的将位图转换为复杂的3D地形。


   ·        World Text Editor: Text Editor 允许你手工直接修改3D世界文件。


   ·        World Viewer: 使用World Viewer 可在你所创建的3D世界中漫游。在世界中移动摄像机时,你就可以看见目标在移动,动画在改变。




并且还附带大量文件转换器,比如:3dmax->3dstate等等,另外3DSTATE直接支持md2和md3角色格式


你应具有什么样的基础知识?

本书中的例子用很简单的C++语言写成(如果你用的是其他语言也没关系,比如VB,VB.NET C#,在相应的SDK中有相应语言的开发文档,只需对应来看即可)。为了理解它们,你应对C++编程(VB,VB.Net C#……编程)有一定的经验,而熟悉MFC知识也会有一定的帮助,但不是必须的。在本书的中,我会介绍MFC的基本知识。我将尽可能的覆盖全广,使不懂MFC的人可用3DSTATE引擎编制MFC程序。已经了解MFC的程序员可以快速阅读一下关于如何将3DSTATE集成到MFC程序中。



对三维几何的基本了解是很重要的。在第二章, 我将介绍基本的三维坐标系,随后像三维矩阵变换、旋转、光的反射等等将使你对3D有个更深层次的了解,并可以获得更复杂的效果,当然,你不需要明白引擎内部是如何处理的。



就第一个例子来说,我将越过在Visual Studio 中创建一个新的工作空间和项目这一步。毕竟,我假设你知道如何去作,否则,你应回头去看一下创建新程序的过程。



你应具备什么工具?

用3DSTATE 引擎进行开发所需的软件和硬件如下:



·    匹配的操作系统:Windows 95, Windows 98, Windows NT,Windows 2000, WindowsXP


·    3D 图形加速卡,尽管不要求,但应该有。某些效果要用加速卡才能显示出来。



·    与3DSTATE 引擎匹配的编译器: Microsoft Visual C++ 6.0, Microsoft Visual C++ 5.0, Borland C 5.0, Delphi, Borland Builder, and Visual Basic。本书中的例子用 Microsoft Visual C++ 6.0 创建。



·    3DSTATE 3D 工具: SDK,World Builder,Terrain Builder,World Viewer和 World Text Editor 。这些产品的最新版本可从免费从3DSTATE 网站下载, www.3DSTATE.com。


如果大家有兴趣的话可以在3dstate的网上下载到中文教程,并可以注册到免费序列号和SDK,3dstate对非商业用途是完全免费的而且没有任何限制。

我研究这个引擎还是有一段时间了虽然不说用的好,不过一般需求还是够了,我也欢迎大家跟我交流哈,本人QQ:39128918(身份验证:3dstate)

国内研究这个引擎的人太少,除了那一本教程其他的都是英文的,很多深层的技术还得自己研究,因此欢迎大家一起交流~

25

主题

106

帖子

106

积分

注册会员

Rank: 2

积分
106
发表于 2004-11-10 12:36:00 | 显示全部楼层

Re:一个适合编程老手更适合编程新手的3D引擎-3DSTATE(介

可惜不支持骨骼动画

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2004-11-10 13:57:00 | 显示全部楼层

我还是推荐dxframework,一般2D游戏足够了(D3D引擎)

rt
连BSP树都在里面了。

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
 楼主| 发表于 2004-11-10 21:01:00 | 显示全部楼层

Re:一个适合编程老手更适合编程新手的3D引擎-3DSTATE(介

3dstate自动创建BSP树,骨骼动画只需在3dmax中做好转成md2,md3或者自带格式就可以了

2

主题

100

帖子

100

积分

注册会员

Rank: 2

积分
100
发表于 2004-11-11 02:49:00 | 显示全部楼层

Re:一个适合编程老手更适合编程新手的3D引擎-3DSTATE(介

3d web 很有特色,以后这种形式的3Dgame会大有发展

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
 楼主| 发表于 2004-11-11 18:21:00 | 显示全部楼层

Re:一个适合编程老手更适合编程新手的3D引擎-3DSTATE(介

对~
在浏览器中就可以进行3D游戏,这也是3Dstate得一大功能

8

主题

71

帖子

85

积分

注册会员

Rank: 2

积分
85
发表于 2004-11-11 20:01:00 | 显示全部楼层

Re:一个适合编程老手更适合编程新手的3D引擎-3DSTATE(介

提供原代码吗?

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
 楼主| 发表于 2004-11-11 22:50:00 | 显示全部楼层

Re:一个适合编程老手更适合编程新手的3D引擎-3DSTATE(介

引擎得原码就不提供了,例程倒是很多~

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
 楼主| 发表于 2004-11-12 21:09:00 | 显示全部楼层

Re:一个适合编程老手更适合编程新手的3D引擎-3DSTATE(介

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-23 05:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表