`

3D编程的4个境界

阅读更多

来自:http://bbs.gameres.com/showthread.asp?threadid=138552(GameRes.com)

 

很久没来这了,也一直想写点东西,可惜没时间写。昨天突然想到点东西,想写下来。
说说3D编程的4个境界吧,由于我个人水平和见识有限,以及时间比较仓促,说的不对不好,还请谅解和指正。
第一阶段:初学者阶段。
这个阶段主要是熟悉3D图形学的基本原理,和基本api的使用。
特别是对于空间的变换,矩阵的原理要有非常清楚的认识。
能够用简单的资源,做一个简单的demo,基本上就是达到了。
这个阶段比较简单,基本上每个人都可以达到,学习方法也很简单,就是看书,看demo,写代码。
时间周期大概1年。

 

第二阶段:进阶阶段
过了第一个阶段,一般人会走两条路。一种人会选择直接学引擎,开发游戏。另一种人,会选择先学场景管理和高级渲染。
这个视每个人的目标和爱好不同有所不一样。
做好demo后,就会想着怎么让效果更好,于是就学了很多高级渲染,比如阴影,法线贴图,HDR,反射折射等。
做了很多效果后,发现效率低下,于是就写一些场景管理方案。
能够基本实现场景管理和一些高级效果,基本上这个阶段就到达了。
国内大部分3D程序在这个阶段。
这个阶段要难点,自学达到需要一些毅力。如果你在公司里做,有人指导,也有测试资源,那会容易很多。
这个阶段的瓶颈在于没有经历过非常复杂的场景和效果,对于3D认识还是比较孤立的。不过已经打下了良好的基础了。
这个阶段应该也都开始熟悉一款引擎了。
时间周期每个人差别很大,1-2年左右。

第三阶段:3D成熟阶段
当第二阶段学得很好的时候,就会觉得自己像个高手了。有的人开始自己设计开发3D引擎了。
当发现,自己设计的场景管理和渲染都很不错的时候,可是效率还是不尽如人意。
当效果复杂,每帧都需要多遍渲染场景的时候,就发现了,原来还是做了很多重复的事情,以及占用了很多重复的资源和带宽等。
这个时候会静下心来,好好想想场景系统和逻辑该怎么设计才能效率最高,没有重复计算。
了解硬件的资源管理方式,结合自己的需求,解决资源的不当占用和带宽的随意浪费的情况。
深入熟悉硬件,彻底了解显卡流水线的特性,充分利用流水线的特性进行优化,这个时候对dx/opgl api也已经非常熟悉了,甚至一个枚举参数都了解它背后的意义。对于图形的debug,也非常熟练了,一般的渲染问题很快就解决了。
这个时候应该知道根据不同的游戏类型构建不同的场景系统了,即使是设计wow,crysis这种场景也可以,知道该怎么设计材质系统,以及effect 框架了。
这个阶段是最煎熬的阶段,也是最开心的阶段。
成长情况更是差别巨大,环境应该是至关重要。
大部分引擎其实在效率上都没完全达到这个程度。
时间周期1年以上,上不封顶,很多人估计都到不了这个层次。如果人够聪明,基础够好,环境也好,1年就够了。
这个阶段的一个特征,图形已经很简单了,不想再说啥了。

第四阶段:达人阶段
第三和第四阶段也许没有明显分界线。但有点是肯定不同的。
第三个阶段还是花很多时间在学习摸索,到第四个[来源:GameRes.com]阶段,就是在寻求解决方案了。
更关注创作了。也许他觉得市面上没有让他非常满意的引擎,至少很难找到适合中国国情的引擎。
也许他会带着一帮小弟一起做引擎,也许是做游戏。
这个阶段技术已经不是唯一追求的目的了,还有很多很多其他的方面他会关注。
因为他的目的是让整个社会承认他的价值,明白一点只有技术是不够的。
这个阶段特征我也不是很清楚,无法一概而论,国内我只见过几个人达到或者超越了这个阶段。

看看自己是属于第几阶段的。
以后有空再补充,先上班了。

补充:
第二阶段和第三阶段,是由明显的分界线的。
要从第二阶段过渡到第三阶段,必须要写引擎,或者修改引擎来达到自己希望的目的。
本质上讲,第二阶段是学习各个技术,第三阶段是集成。就像武术里,第二阶段有点像在馆子里练招数,第三阶段就是在外面和真人实战。
第三阶段会让你有很多顿悟,环境好,身边高手多,自己基础好,悟性高,一年是可以达到的。

分享到:
评论

相关推荐

    java 3d编程实践

    Java 3D编程实践主要涉及的是使用Java...总之,Java 3D编程实践涵盖了3D图形学的基础知识、场景图构建、几何形状、变换、光照、用户交互等多个方面。通过熟练掌握这些技术,你将能够利用Java创造出引人入胜的3D应用。

    3D游戏编程大师技巧光盘源码

    在3D游戏编程领域,掌握大师级别的技巧是每个游戏开发者追求的目标。"3D游戏编程大师技巧光盘源码"是一份宝贵的资源,它包含了实现高级3D游戏功能的源代码,可以帮助程序员深入理解游戏引擎的工作原理,提升自己的...

    VC++ Direct 3D编程实例

    1. **设备初始化**:在Direct 3D编程中,首先需要创建一个设备对象,这涉及到选择硬件加速级别(软件、纯硬件或混合模式)、设置呈现目标和深度缓冲区、以及决定窗口模式或全屏模式等。 2. **场景渲染**:渲染是将...

    Java 3D编程实践.rar

    Java 3D编程实践是Java平台上的一个高级技术,它为开发者提供了在三维空间中创建、操作和展示复杂对象的能力。这项技术允许程序员构建交互式的、动态的3D图形应用程序,广泛应用于游戏开发、虚拟现实、科学可视化...

    3D游戏编程

    这本书分为三个主要部分,分别涵盖了3D编程的基础知识、特定技术的学习以及实际项目应用。 第一篇“基础知识:3D编程入门”是学习3D游戏编程的基石。这一部分会介绍3D图形学的基本概念,包括向量与矩阵运算,这是3D...

    3D游戏编程demo

    在3D游戏编程领域,创建一个DEMO是学习和展示技术能力的重要步骤。这个"3D游戏编程demo"很可能是为了展示如何运用编程技术来构建一个基础的3D游戏环境,或者是解决特定的3D图形渲染问题。让我们深入探讨一下3D游戏...

    3D游戏编程大师技巧(中文PDF)

    《3D游戏编程大师技巧》是一本深入探讨3D游戏开发技术的专业书籍,结合了JAVA 3D编程的实践应用,旨在帮助读者掌握创建三维游戏的核心技能。这本书涵盖了从基本概念到高级技术的广泛领域,适合对游戏开发有兴趣或者...

    福彩3d编程

    在进行【福彩3d编程】时,开发者通常会涉及以下几个核心知识点: 1. 数据收集:首先,需要编写程序从官方渠道抓取或导入最新的3D彩票开奖数据,这些数据包括每期的中奖号码。 2. 数据处理:对收集到的数据进行清洗...

    Java 3D 编程实践——网络上的三维动画 电子书

    Java 3D编程是Java平台上的一个强大工具,用于创建和展示复杂的三维图形和动画。在互联网上,Java 3D技术提供了一种交互式的、跨平台的方式,使得用户可以在网页浏览器中体验丰富的三维视觉效果。这本书《Java 3D...

    3D图形编程指南.rar

    3D图形编程是计算机科学中的一个重要分支,它涉及到计算机图形学、数学、物理等多个学科。在本指南中,作者深入浅出地介绍了3D图形编程的关键知识点: 1. **基础理论**:包括三维坐标系、向量与矩阵运算、变换理论...

    3D游戏编程大师技巧

    3D游戏编程大师 3D游戏编程大师 3D游戏编程大师 3D游戏编程大师

    3D游戏编程大师技巧代码

    总的来说,"3D游戏编程大师技巧代码"提供了一个全面的学习平台,涵盖从图形渲染到游戏逻辑的各个层面。通过深入研究这些源码,开发者不仅可以提升自己的编程技能,还能理解3D游戏开发背后的复杂系统,从而创造出更加...

    3D 游戏编程大师技巧源码

    "3D游戏编程大师技巧源码"是针对3D游戏开发爱好者和初学者的一份宝贵资源,它来自于一本经典书籍,通过软件渲染技术构建了一个简单的游戏引擎。这个压缩包中的源代码提供了一个实践性的学习平台,帮助读者深入理解3D...

    3D游戏编程大师技巧(下册) 第二版

    3D游戏编程大师技巧(下册)这个是第一部分,两部分下完才能解压

    java3d 编程源码

    Java3D编程是一种用于创建和显示三维图形的Java库,它是Java平台的一部分,提供了一种高级、面向对象的API,使得开发人员能够构建复杂的3D场景,并在各种设备上进行渲染。这个源码集合显然是针对初学者设计的,旨在...

    3D游戏编程大师技巧源代码

    "3D游戏编程大师技巧源代码"这个资源,正如其标题所言,提供了全面的学习材料,让开发者深入理解游戏开发的核心技术。这份源代码集合可能是基于某本专门讲述3D游戏编程技术的书籍,旨在帮助读者通过实践来深化理论...

    3DMax脚本编程

    3DMax脚本编程,是3DMax从事人员必备教材,本书详细系统地介绍3DMax脚本编程方法。

    3D游戏编程大师技巧Source

    《3D游戏编程大师技巧》是一本深度探讨3D游戏编程技术的专业书籍,其源码提供了丰富的实践示例,帮助读者深入理解3D游戏开发的核心概念。这本书涵盖了多个关键领域,包括图形学、物理模拟、人工智能、网络同步以及...

    3d游戏编程大师技巧源码

    "3D游戏编程大师技巧源码" 提供了一个宝贵的平台,让我们深入探究3D游戏开发的核心技术。以下将详细讨论这个主题涉及的关键知识点: 1. **三维图形学**:3D游戏的核心在于渲染和交互3D模型。这涉及到向量数学、矩阵...

    DirectX3D游戏编程实用教程

    DirectX3D游戏编程实用教程DirectX3D游戏编程实用教程DirectX3D游戏编程实用教程

Global site tag (gtag.js) - Google Analytics