【J2me3D系列学习文章之一】J2me3D开发技术和基础知识

简介:

   以前不喜欢写博客,但是后来发现写文章其实也是自我提升一个方式,所以准备学3D历程写下来,学习研究顺序应该是从J2me 3D开发开始然后到 Android 3D开发。希望大家多多指教;写的不好,不要耻笑哈。 

    【 Android进阶胡同 】 Android开发的可以加入,现在1群满员了,成员上限200 - -、请童鞋们加入开发2群~
     由于J2me 3D(jsr184)的文章网上也有了不少,这里就不多说了,只是概括的说下针对于j2me 3D开发基本需要了解的知识以及简单阐述几个术语;

第一:开发模式;

    J2me 3D(jsr184)api 分为两种开发模式,一个是立即模式,另一个就是保留模式。这里简单的说下两者的区别和不同。

    立即模式:所谓立即模式通俗点说就是不需要外界导入数据,如m3g(3D模型的格式都是.m3g),所有的3D模型数据等都由开发者一个在代码中完成!例如自己定义3D模型的顶点,颜色,面等等......

    保留模式:由于立即模式下要自定义这些顶点,各个面 等等,数据量是相当的大,如果全部手工完整的去做一个RPG或者ARPG的游戏几乎是不可能了也就是很说设计一个复杂的游戏世界将成为一项令人望而却步的工作 - -、 所以我们可以通过建模工具来设计 3D 场景,并将数据导入程序。导入数据来简化开发工作量,例如通过导入m3g文件,从而得到 一个 world (3D世界) camera 等等,这样的方式被称为保留模式。

    概述:其实说白了,保留模式下我们开发就相同于J2me中用midp2.0去做一样,用别人封装好的东西来简化开发量!

第二:三角形带;

    什么叫三角形带,估计看过一些J2ME 中3d开发文章中,会发现很多出现这么个词语。其实三角形带,就是利用顶点重复用的方式;例如我们构造一个三角形描述立方体,那么需要条边 * 2 个三角形 * 3 个顶点 = 36 个顶点。这么多重复的顶点显然浪费了大量内存。为节约内存,首先应将顶点与其三角形定义分隔开来,然后例三角带方式来构造。假设两个顶点a1(1,2,3) 和 a2(2,3,4),那么我们写成1,2,3,4 的方式,这样就是三角带方式。重复利用重复的点坐标!当然这里可能说的比较含糊,那么后续文章中根据代码实例会详细讲解。

    那么这里简单的就说这两点,针对两种模式,肯定就要先从立即模式开始学习,毕竟就算以后用导入模型数据的方法来做开发,也应该知道原理才能更好的去理解!

    其实3D开发需要是基础知识很多,例如高数、图形学等,但是我感觉这些都是次要的,只要努力去做一件事,没有做不好的!这里我写的文章也只是根据自己理解认为重点的拿来先进行阐述说明,其实我也是刚开始接触3D开发。我的计划是从j2me 3D开始 (因为我是做J2ME 起身的),然后再转向Android 3D开发。当然如果你还没有对游戏开发脑子里没有一个简单的框架那么建议先去学习下,这里不多做说明。

    文章是记录本人学习3D的过程以及经验分享的文章,所以文章中对基本的游戏框架不会讲述和说明,

    希望不太理解的同学先去学习下J2me游戏开发相关资料,请谅解。 





本文转自 xiaominghimi 51CTO博客,原文链接:http://blog.51cto.com/xiaominghimi/605186,如需转载请自行联系原作者
目录
相关文章
|
4天前
|
自然语言处理 Java 编译器
【软件设计师—基础精讲笔记10】第十章 程序设计语言基础
【软件设计师—基础精讲笔记10】第十章 程序设计语言基础
14 1
|
4天前
|
设计模式 存储 算法
【软件设计师—基础精讲笔记7】第七章 面向对象技术
【软件设计师—基础精讲笔记7】第七章 面向对象技术
39 1
|
6月前
|
存储 安全 编译器
【C++】C++入门必备知识详细讲解
【C++】C++入门必备知识详细讲解
198 0
|
2月前
|
网络协议 Unix Linux
Linux应用开发基础知识——网络通信编程(九)
Linux应用开发基础知识——网络通信编程(九)
50 0
Linux应用开发基础知识——网络通信编程(九)
|
8月前
|
缓存 JavaScript 前端开发
进阶中级前端必备知识点(三)
进阶中级前端必备知识点(三)
51 0
|
6月前
|
安全 编译器 C语言
C++入门必备知识
C++入门必备知识
39 0
|
6月前
|
设计模式 前端开发 JavaScript
前端Web开发学习,入门到进阶,推荐几本很不错的书籍
前端Web开发学习,入门到进阶,推荐几本很不错的书籍
94 0
|
8月前
|
存储 前端开发 JavaScript
进阶中级前端必备知识点(二)
进阶中级前端必备知识点(二)
50 0
|
8月前
|
XML IDE 编译器
【C++】C++ 基础进阶【二】开发技巧
C++基础进阶,关于开发环境开发工具的一些便捷使用方式,提高生产力
103 0
【C++】C++ 基础进阶【二】开发技巧
|
12月前
|
存储 安全 编译器
【C++入门必备知识】
库里的名称我们无法改变,那我们可以将自己定义的名称放在命名空间里,当需要时指令访问即可。 那怎么定义命名空间呢?
60 0