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

简介:
本站文章均为  李华明Himi  原创,转载务必在明显处注明: 
转载自【黑米GameDev街区】 原文链接:  http://www.himigame.com/j2me-kjava/249.html


        由于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游戏开发相关资料,请谅解。

相关文章
|
29天前
|
Linux 开发工具 C++
技术笔记:RustGUI编程
技术笔记:RustGUI编程
|
2月前
|
设计模式 开发者
探索代码之美:我的编程艺术之旅
【5月更文挑战第19天】 在数字的海洋中,我是一位潜水者,每一次键盘的敲击都是对未知世界的探索。本文记录了我在编程实践中的一些感悟和经验,从最初的困惑到最后的豁然开朗,我逐渐理解了编程不仅仅是一种技能,更是一种艺术。我将分享如何通过不断学习和实践,将代码转化为优雅的解决方案,以及在这个过程中所经历的挑战和收获。
|
2月前
|
监控 Java 数据库连接
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
39 3
|
2月前
|
设计模式 算法 测试技术
探索代码之美:我的编程思考之旅
【5月更文挑战第8天】 在数字化的浪潮中,编程已成为一种艺术,一种用逻辑与创造力编织的语言。本文将分享我在编程实践中的一些技术感悟,从最初的困惑到逐渐的深入理解,再到最后的灵活应用,我经历了一段充满挑战与收获的旅程。文章不仅探讨了编程技巧的提升,还涉及了对软件设计原则的认识,以及如何通过不断学习来适应快速变化的技术环境。
|
2月前
|
存储 算法 C语言
【C 言专栏】用 C 语言开发游戏的实践
【5月更文挑战第5天】本文探讨了使用C语言开发游戏的实践,包括选择适合的游戏类型(如贪吃蛇、俄罗斯方块),设计游戏框架、图形界面和逻辑,以及音效添加。文章还强调了性能优化、测试调试、跨平台挑战及未来发展趋势。对于热衷于C语言的开发者,这是一次挑战与乐趣并存的探索之旅。
【C 言专栏】用 C 语言开发游戏的实践
|
2月前
|
存储 IDE 编译器
从零开始学C++:编程新手的入门指南
这篇文稿是C++入门指南,适合编程新手。内容涵盖了C++的基础知识,包括C++的概述(一种面向对象、高效且灵活的编程语言),编程环境的搭建(推荐使用IDE如Visual Studio或Code::Blocks),基础语法(变量、数据类型、控制结构和函数)以及面向对象编程基础(类、对象、继承和多态)。通过学习,初学者可逐步掌握C++编程技能,并鼓励进一步探索C++的高级特性。
|
2月前
|
网络协议 Unix Linux
Linux应用开发基础知识——网络通信编程(九)
Linux应用开发基础知识——网络通信编程(九)
70 0
Linux应用开发基础知识——网络通信编程(九)
|
9月前
|
设计模式 前端开发 JavaScript
前端Web开发学习,入门到进阶,推荐几本很不错的书籍
前端Web开发学习,入门到进阶,推荐几本很不错的书籍
118 0
|
11月前
|
XML IDE 编译器
【C++】C++ 基础进阶【二】开发技巧
C++基础进阶,关于开发环境开发工具的一些便捷使用方式,提高生产力
135 0
【C++】C++ 基础进阶【二】开发技巧
|
SQL 移动开发 前端开发
Web前端开发笔记——第一章 Web前端概论
Web前端开发笔记——第一章 Web前端概论
Web前端开发笔记——第一章 Web前端概论