我的订单|我的收藏|我的商城|帮助中心|返回首页
虚拟现实新闻>VR>行业资讯>行业知识

java3D 构建三维人体模型的方法

文章来源:第三维度 作者:Jessica 发布时间:2010年10月11日 点击数: 字号:
,COLOR_3表示没有Alpha 信息,也就是指顶点数组包括没有透明度的颜色;当不指定COLOR_3 或者COLOR_4 顶点格式颜色时,则GeometryArray 对象中的每个顶点的颜色都是黑色;TEXTURE_ COORDINATE_3,表示每个顶点的3D 纹理坐标。indexCount:该参数是指从总的顶点数中选择出的顶点总数,允许顶点重复使用,允许indexCount 超过vertexCount 的值。

    用该类时,首先需要根据给定的的顶点的一维数组的序号,建立要用到的顶点的索引数组index,该数组是一个一维数组,每个元素保存选择出的一个顶点的元素序号。然后再用继承自IndexedGeometryArray 的方法setColorIndices(0,index)、setCoordinateIndices(0,index)分别设置颜色、坐标数组与索引数组之间的对应关系。

    对应本程序,以第4 部分小腿部分为例,定义floatvert[]数组存放由分析3DS 文件得出的顶点坐标,定义float normals[]数组存放顶点的法向量,定义int index[]数组存放用到的顶点编号。具体程序实现如下:

    IndexedTriangleStripArray line = new IndexedTriangle

    StripArray(vert.length,IndexedTriangleStripArray.COORDINATES|IndexedTriangleStripArray.NORMAS|IndexedTriangleStripArray.COLOR_3,index.length,count);

    4.2.3 对三维模型进行交互控制

    三维图形的几何变换矩阵可以用矩阵T3D表示,表示形式如下[11]:

java3D 构建三维人体模型的方法

    [a41 a42 a43]产生平移变换。

    Java 3D包含了Transform3D类来表示3D放射变换或投影变换。在场景图中,一个TransformGroup节点利用Transform3D对象来定义其变换,Transform3D在其内部保留了一个4*4的double型矩阵以表示其变换。本程序中,通过调用voidsetTranslation()方法建立平移变换,调用void setScale()方法建立缩放变换。并通过鼠标行为类MouseZoom、MouseRotate和MouseTranslate,实现鼠标对3D人体模型交互控制。

    4.2.3 最终显示结果

   

图4 最终效果
图4 最终效果

    5.结论

    应用本文方法开发出的三维人体展示系统,既利用了Poser 建立人体模型方便快捷的特点,又利用了java 3D 容易实现渲染和交互的特点,避免了各自的缺陷,使真实感人体人体建模能更轻松。在本文的基础上可以进一步进行NURBS 曲面拟合,实现面向真实人体着装的需要,输入服装用的人体尺寸,修改相应的主要造型特征与尺寸,得到特定用户所需的个性化人体模型。在服装CAD 领域有着良好的前景和广阔的发展空间。
   

共3页 您在第3页 首页 上一页 1 2 3 下一页 尾页 跳转到页 本页共有1770个字符
  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料