您的位置:

java实现3d人物的简单介绍

本文目录一览:

谁知道java与3D结合怎么实现?

使用java做3d的话,有一个java3d的api可以使用一下,java3d是javaSE的扩充,如果在浏览器中显示3d场景,可以使用applet,写出的java3d程序直接在浏览器中显示。使用java3d的话要装载一个java3d的jdk。可以到网上下载一个。java3d可以实现动态的3d场景,也可以导入一些3d模型文件,如3dmax导出的一些文件,都可以导入到java3d程序中。做java3d程序实际上就是一个做界面的程序,非常的累。

java2D技术模拟3D图形效果如何实现

图3D是一个三维的,2D是二维的。区别如下:

2D

也称为二维平面图形。属于2D二维图形水平X轴和Y轴垂直,传统的手工漫画和插图。

它的光影立体感的手工绘制的模拟二维绘图软件Photoshop,CorelDraw中,画家FLASH平面动画软件

3D

还所谓的3D。除了水平方向的X轴和Y轴垂直的深度Z-轴为什么它们被称为三维(XYZ)和二维的三维图形的区别,可以包含从360度各个角度的信息的表现的图形(模型)

理论上看三维立体图形,现场效果比二维平面图形好得多,因为它是三维的,光,阴影是真实的(相对而言,因为我们的现实世界,它是虚幻的)

添加到回答共三个

比赛的感觉,是不是在同一台机器的配置要求

2D图形游戏最显着的特点是,所有图形元素,图形图像制作,地图无论是拼接的形式,或整个地图的制作,其表面映射,建筑物传单元素。动画是根据在一个预先存在的形式之一。这些图形元素最终会被要求在游戏中复杂的联系和丰富的内容,在游戏的世界。另一方面是2D游戏的显示技术,传统的2D游戏很少需要调用显卡加速,大部分的2D图形元素都是通过CPU。因此,2D游戏的图形在网上看CPU的负载能力,知道这是很重要的,例如,现在这两个城市的咖啡馆通用CPU配置,但显卡配置低,因此即使3D游戏方面,我们已经产生了市场是相当丰富的画面,风格独特的2D游戏。在过去的两年中,它也可用于2D游戏图形加速,但注定2D图形3D技术加速的图形技术,即单张的图形或动画,或者D3D计算的帖图形式,通常可以保证2D图形运行可以达到很高速度,但这种技术还不是很全面,运行的主要瓶颈在内存中帖图数量的限制和3D图形技术标准不同,单独的图形。像素点阵技术也是较早期的2D技术

2D游戏和3D游戏更容易分辨,最简单的方法来区分3D游戏,看游戏是否转换为360

-

度的可视角度,如果可以的话,显然是纯3D的。

java怎么画出 3D 效果的图像?

可参考 孙博文 的一本书 分形算法与程序设计: Java实现 里面有3D的内容

貌似要下载 JAVA3D 的msi安装包 解压后得到jar包 JAVA 3D已经被淘汰 可能有点难找

用Java3D编程就行了 你先把那书上关于3D的代码 稍微看一下 编程的思路也就是 先建立一个场景(有光) 然后空间描点 画线 着色 之类的 可以参考具体的Java 3D 的书 貌似大多是英文的

编程也可以参考官方API文档

怎样用java控制3d人物模型的三围

安装java通常选择以下几个路径:

C:\Program Files\Java

D:\Program Files\Java

D:\Java

安装后可出现jre和jdk两个目录,其中jre为运行环境,jdk为开发环境。

配置JDK环境变量

右键我的电脑,选择属性,选择高级选项卡,点击环境变量进入环境变量设置页,进行JVM环境变量的设置。

建立系统变量:JAVA_HOME=D:\Program Files\Java\jdk1.6.0_07;

建立系统变量:CLASSPATH=.;(逗号+分号);

编辑path系统变量:在最前面加上%JAVA_HOME%\bin;(分号)。

java 如何开发3d可视化

使用之前

在开始使用 ThingJS 之前,需要先了解JavaScript,我们假设您已经掌握JS。

创建项目

创建项目之前需登录ThingJS账号,如果您尚未登录账号或页面出现“登录已过期,请重新登录!”的提示,为保证项目的正确保存及运行,请您在账号登录之后再创建项目。您可通过以下三种方式创建项目:

选择菜单区域的“文件 - 新建项目”选项

点击工具栏“新建”图标,图标如右图所示:

请点击输入图片描述

请点击输入图片描述

使用快捷键“Ctrl+P”

编辑项目

在线开发为用户提供了相应的快捷代码和官方示例,如果你正在用 ThingJS在线开发页面,可以通过以下两种方式来编辑项目:

点击在线开发页面菜单区域的快捷代码选项中的子项,编辑区将自动插入相应代码

请点击输入图片描述

选择在线开发官方示例中的其中任意一个示例,点击相应示例,编辑区将显示相应代码

后续操作详见 在线开发 - 应用开发 - 在线开发网页链接

保存项目

可通过以下四种方式保存项目:

选择菜单区域的“文件 - 保存”选项

点击工具栏“保存”图标,图标如右图所示:

请点击输入图片描述

请点击输入图片描述

使用快捷键“Ctrl+S”

运行项目

在线开发环境提供了以下几种方式运行项目:

使用快捷方式“Ctrl+R/Enter”或点击工具栏中的“运行”图标,3d容器区域将运行编辑器相应的代码。图标如右图所示:

请点击输入图片描述

请点击输入图片描述

选择菜单区域的“工具 - 设置”选型,出现的设置面板,点击开启“自动保存执行”

请点击输入图片描述

java3d的详细介绍

引 言

Java3DAPI是用来开发三维图形和开发基于Web的3D应用程序(applet)的编程接口.用于开发三维图形软件的3DAPI(OpenGL、Direct3D)都是基于摄像机模型的思想,即通过调整摄像机的参数来控制场景中的显示对象,而Java3D则提出了一种新的基于视平台的视模型和输入设备模型的技术实现方案,即通过改变视平台的位置、方向来浏览整个虚拟场景.它不仅提供了建造和操作三维几何物体的高层构造函数,而且利用这些构造函数还可以建造复杂程度各异的虚拟场景,这些虚拟场景大到宇宙天体,小到微观粒子.

Java3D是JavaMediaAPIs中的一部分,可广泛地应用于各种平台,而且用Java3DAPI开发的应用程序和基于Web的3D小应用程序(applet),还可以访问整个Java类,且可以与Internet很好地集成,即如果在浏览器中安装了Java3D的浏览插件,在网上也可浏览Java3D所创建的虚拟场景.Java3DAPI还汲取了已有图形APIs的优点,即Java3D的底层图形构造函数不仅综合了底层APIs(Direcrt3D、OpenGL)最好的绘制思想,而且它的高层图形绘制还综合了基于场景图的思想,同时,它又引入了一些通用的图形环境所未考虑的新概念(如3D立体声),这样将有助于提高用户在虚拟场景的沉浸感.本文将着重介绍Java3D针对VR应用所提出的基于视模型和输入设备模型的新思想,在此基础上又讨论了如何利用Java3D来开发VR应用程序及其实现方法,并设计实现了一个应用实例.

1.适于VR应用开发的Java3DAPI众所周知,开发VR应用程序是一件很繁琐的工作,其开发人员必须编写应用程序可能遇到的各种输入和显示设备的接口程序,或者依赖专为VR应用开发而设计的应用程序编程接口(API),且典型的VR应用必须跟踪用户的头部位置和方向,以生成与头部位置方向相一致的虚拟场景图.

另外,还需要先跟踪身体的其它部位(手、臂或腿部),然后通过身体各部位在虚拟场景中的虚拟视点与场景中的对象进行交互,而应用程序也必须具有能够利用跟踪输入设备在视点内放置物体,并标明其在生成的三维图象中的位置和方向的功能.同时,面向VR的应用程序开发接口(API)必须能支持3D图形生成、处理跟踪器的输入,并能将跟踪信息反馈到图形绘制中.

Java3DAPI可自动将头部跟踪器的输入集成到图形生成中,并具有通过访问其它跟踪器信息来控制其它特征的功能,但它是通过一种新的视模型(viewmodel)技术来实现的.该视模型是将用户真实的物质环境与计算机生成的虚拟环境相互独立,并建立它们之间的通信桥梁.该API也明确定义了用来探测Java3D物体六自由度(6DOF)传感器的返回值,并将其应用于显示场景图中.总之,这种新的视模型和输入设备模型可以很方便地将交互式的3D图形应用程序转化为VR应用程序.

Java3D视模型

2.1 新的视模型概念(viewmodel)基于摄像机的视模型是模仿虚拟环境中的摄像机,而不是虚拟环境中人的“替身”,而且它是通过控制摄像机与视点的相关参数来控制所显示的场景,但这种方法,在用户物质环境确定某些视参数的系统中是不合理的,例如在头盔显示器(HMD)系统中,HMD的光学性能就直接确定了应用程序所显示的视域.由于不同的HMD有不同的光学特性,因此如果允许终端用户随意改变光学参数显然是不合理的.这里视参数的值将随终端用户物质环境的不同而不同,而影响视参数的主要因素有显示器大小、显示器的位置(戴在头上,还是放在桌子上)、三维空间中用户的头部位置、头盔显示器的实际显示视域、每英寸的显示象素等.由于Java3D的视模型直接提供了头部跟踪的功能,因而使用户产生了真实存在于虚拟环境中的错觉.

Java3D不仅提出了新的基于视平台的视模型概念,同时将其推广到包括显示设备和6DOF外围输入设备(如头部跟踪器等)的接口支持中,而且新的视模型继承了Java的“writeonce,vieweverywhere”本质.这意味着由Java3D视模型开发的应用程序或applet可广泛地应用于各种显示环境.这种显示环境可以是标准的计算机显示屏、多元显示空间,也可以是头盔显示器.Java3D视模型是通过将虚拟环境和物质环境完全独立的方式来实现上述功能的,且该视模型可将虚拟环境中视平台的位置、方向和大小,与Java3D绘制的与视平台位置、方向相一致的虚拟场景相区分.一般应用程序控制视平台的位置和方向,而绘制着色系统则依据终端用户的物质环境以及用户在物质环境中的位置和方向来确定显示场景.

2.2 视模型的组成

Java3D视模型由虚拟环境和物质环境两部分组成,其中,虚拟环境由ViewPlatform对象来表示,它是虚拟对象存在的空间;而物质环境则由View对象以及和它相关的对象来表示.这里,View对象和它的相关对象就描述了用户所处的显示和操纵输入设备环境.虽然视模型将虚拟环境和物质环境相互独立,但可通过一一对应关系来建立两种世界之间相互通信的桥梁,这样将使得终端用户的行为会影响虚拟环境中的对象,同时虚拟环境中的对象行为也会影响终端用户的视点.

Java3D可通过几个对象来定义视模型参数.这些对象包括View对象及其相关对象、PhysicalBody对象、Canvas3D对象、PhysicalEnvironment对象、Screen3D对象.视模型相关的对象(如图1所示)其作用如下:ViewPlatform用来标志场景图中视点位置的节点.其父节点则指明了视平台在虚拟环境中的位置、方向和大小.View用于指定需要处理场景图的信息.Canvas3D定义了Java3D绘制图象的窗口,它提供了Canvas3D在Screen3D对象中的大小、形状和位置信息.Screen3D用于描述显示屏幕的物理属性.PhysicalBody用于封装那些与物质体相关的参视模型的组成及其相互关系数(如左、右眼的位置等).PhysicalEnvironment用于封装那些与物质体环境相关的参数(如,用于头状物体或头盔式跟踪器的校验信息).

2.3 虚拟环境中的视平台(ViewPlatform)

鉴于视平台定义了一坐标系统,于是虚拟环境中的原始点和参考点就有了一参考坐标系.这里视平台代表与视对象相关的一个点,并充当确定绘制图象的基础.图2显示了包括视平台节点场景图的一部分.由图2可见,视平台的父节点确定了视平台在虚拟环境中的位置和方向.若通过修改与TransformGroup节点相关的Transform3D对象,就可以在虚拟场景中随意移动视平台.虽然虚拟环境中可以有许多不同的视平台,但特定的视对象只能与一个视平台相关联,于是在Canvas3D对象中所绘制的场景均来自于一个视平台的视点.这样应用程序就可通过修改视平台的TransformGroup节点,在虚拟环境中漫游.图2 包括视平台的局部场景图3 Java3D的输入设备模型Java3D除了支持通用的键盘、鼠标输入外,还能给各种不间断的输入设备,如6DOF跟踪设备和操纵杆提供支持.由于不同的跟踪输入设备其工作原理不同,因而计算机与其交互的方式也不同.为了给不同的6DOF输入设备提供支持,Java3D还提供了一个输入设备接口,而且该输入设备接口还定义了一个抽象的输入设备,虽然用其可以实现对一特定设备的驱动,但输入设备接口的实现必须实现接口所定义的所有方法(如设备开、关、读取操作、状态设置及查询等).Java3D的输入设备列表就用这些方法同特定的设备进行交互.

一般Java3D环境中,可能包括许多输入设备,而且这些输入设备不一定是实际的物理设备,也可能是虚拟设备,例如通过软件的方法将鼠标的运动参数转化为6DOF虚拟跟踪球的参数,来模拟虚拟跟踪球的输入.由于所有的输入设备都由许多传感器对象组成,因此每一种输入设备都与一定数量的传感器对象相关,且每一种传感器都与其传感器设备6DOF数据的一个数据源相关.当输入设备驱动的数据改变时,传感器对象的数据也会相应改变,而且传感器对象由读取传感器对象组成.由于缓冲区中记录了各传感器N个读取传感器对象的值,因此可以对传感器数据进行平均,以及对传感器输入值的趋势进行预测等处理,但应用程序的开发并不直接使用输入设备.Java3D是通过一个传感器数组将输入设备抽象化,传感器对象数组是物质环境对象的一个子类,该数组是由与输入设备相关的对象指针组成.Java程序可以直接从传感器数组中获取传感器的值,并将其用到场景图中,或按任意方式对其进行处理。

2.4 用Java3D开发VR应用程序利用

Java3D开发的VR应用程序或者applets程序,可建造一个虚拟场景,并能将一个或多个场景图插入到虚拟场景中,虚拟场景由超结构对象集组成,对象集则包括一个世界对象(Universeobject)、一个或多个场所对象(Localeobjects)和按树状结构排列的由节点物体组成的一个或多个场景图(Scenegraphs).该场景图又称为分枝图(Branchgraph),它包括绘制对象节点、光照节点、行为节点和声音节点等,其中,包含内容节点的分枝图称为内容分枝,包含视平台对象的分枝图称为视分枝,视平台对象用来确定用户的位置和方向.图3表示了具有多分枝图的Java3D场景.图3 应用程序场景图由于这种分枝图只描述了场景所要绘制的对象,并不确定对象的绘制次序,因此图中节点的次序和位置与对象的绘制次序无关,而图中的父节点和子节点的直线路径就唯一确定了子节点的图形范围.由于绘制次序的不确定性,因而使得Java3D能横越场景图的任何次序,且它能从左到右,从顶部到底部穿过场景图;或者从右到左,甚至并行遍历整个场景图.Java3D的分支图为树状结构,且图中的每一个节点只有一个父节点.这样通过辅助的场景图机制就可以实现通用场景图的共享,而且具有连接属性的叶节点可以连接到共享子图.分枝图中的节点分为群节点(groupnode)和叶节点(leafnode)两类,其中,群节点按照粘贴的原理来组织场景图单元。

群节点的层次结构图一般群节点包括:BranchGroup、TransformGroup、Switch、OrderGroup、DecalGroup和ShareGroup节点,其中,BranchGroup是分枝图的根节点;而TransformGroup用来指明所有子节点的位置和方向;Switch则用于实现一个或多个子图的转换;OrderGroup用于使它的子节点按照特定的次序绘制;DecalGroup是OrderGroup的一个子集;ShareGroup跟BranchGroup一样,是一个场景图的根节点.虽然共享图作为Java3D场景图的一部分从不直接出现,但是连接节点可以引用.另外群节点还可以包含各种子节点以及所包含对象的群节点或叶节点.这些子节点用一个关联索引属性来允许对特定的子节点进行操作.如果没有指明特定的顺序群节点,Java3D还可以按照任意指定的顺序来绘制群节点的子节点.虽然叶节点是场景图的抽象类,它没有子节点,但叶节点包括了Java3D的各种信息.叶节点由Shape3D、ViewPlatform、Sound、Light以及用户定义的行为节点等组成,Shape3D和ViewPlatform节点在Java3D的视模型和输入模型中扮演着重要的角色,因为它描述了图形系统的两个重要方面,其中,Shape3D描述了场景中对象的几何形状,而ViewPlatform则标定了用户或其视点在虚拟环境中的方向或位置.

另外,应用程序还可像操纵分枝图中的任意对象一样,来操纵ViewPlatform,而且应用程序还可平移、旋转和缩放ViewPlatform,即通过改变ViewPlatform的位置和方向,ViewPlatform将随同用户的视点一起移动,来浏览整个虚拟环境.虽然ViewPlatform是按照事先规定的路线浏览场景,但不会限制用户视点的移动和向不同方向浏览场景.