【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,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
算法 C语言 C++
C++语言学习指南:从新手到高手,一文带你领略系统编程的巅峰技艺!
【8月更文挑战第22天】C++由Bjarne Stroustrup于1985年创立,凭借卓越性能与灵活性,在系统编程、游戏开发等领域占据重要地位。它继承了C语言的高效性,并引入面向对象编程,使代码更模块化易管理。C++支持基本语法如变量声明与控制结构;通过`iostream`库实现输入输出;利用类与对象实现面向对象编程;提供模板增强代码复用性;具备异常处理机制确保程序健壮性;C++11引入现代化特性简化编程;标准模板库(STL)支持高效编程;多线程支持利用多核优势。虽然学习曲线陡峭,但掌握后可开启高性能编程大门。随着新标准如C++20的发展,C++持续演进,提供更多开发可能性。
49 0
|
3天前
|
存储 数据处理 开发者
深入浅出:Python编程基础与实战技巧
【9月更文挑战第32天】本文将引导读者从零开始,掌握Python编程语言的核心概念,并通过实际代码示例深入理解。我们将逐步探索变量、数据结构、控制流、函数、类和异常处理等基本知识,并结合实用案例,如数据处理、文件操作和网络请求,提升编程技能。无论您是初学者还是有一定经验的开发者,这篇文章都能帮助您巩固基础,拓展视野。
|
2月前
|
SQL 前端开发 安全
PHP编程:从入门到精通的旅程
PHP,一个动态的语言,为网页开发而生。本文将带你领略PHP的独特魅力,从基础语法到高级应用,一步步揭示PHP如何让网站开发变得简单而强大。我们将探索PHP的世界,了解它是如何在网络技术中占据一席之地,并且通过实例展示PHP如何解决实际问题,提升你的编程技能。
|
5月前
|
监控 Java 数据库连接
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
48 3
|
12月前
|
存储 安全 编译器
【C++】C++入门必备知识详细讲解
【C++】C++入门必备知识详细讲解
212 0
|
12月前
|
安全 编译器 C语言
C++入门必备知识
C++入门必备知识
54 0
|
12月前
|
设计模式 前端开发 JavaScript
前端Web开发学习,入门到进阶,推荐几本很不错的书籍
前端Web开发学习,入门到进阶,推荐几本很不错的书籍
138 0
|
存储 C# Windows
C#基础知识入门:从零起步学习C#语言
C#基础知识入门:从零起步学习C#语言
187 1
|
存储 安全 编译器
【C++入门必备知识】
库里的名称我们无法改变,那我们可以将自己定义的名称放在命名空间里,当需要时指令访问即可。 那怎么定义命名空间呢?
83 0
|
缓存 小程序 JavaScript
【青训营】-🎨小程序开发入门
【青训营】-🎨小程序开发入门
142 1
【青训营】-🎨小程序开发入门
下一篇
无影云桌面