• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
元某人的代码农场
博客园    首页    新随笔    联系   管理    订阅  订阅

PV3D学习笔记-基本对象创建

吃了以前没学过D3D的亏,竟然不知道3D对象的相对0点是位于其几何中心的,PV3D也采用这个原则。

PV3D创建基本几何体和其他任何一种3D引擎一样简单,简单几句代码即可,需要注意的是只有继承自DisplayObject3D或DisplayObjectContainer3D的类才能直接通过scene.addChild来添加到场景。

以下几何体包含路径都是org.papervision3d.objects.primitives。

平面:

var pl:Plane = new Plane(new BitmapColorMaterial(0xc0c0c0), 200, 200, 2, 2);
pl.position = new Number3D(100,0,100);
scene.addChild(pl);

这里Plane对象需要5个参数,第一个材质,可以是任何继承自MaterialObject3D的对象,这里用BitmapColorMaterial创建了一个灰色的纯色材质。第二第三分别是平面的宽和高,一半数学上定义平面采用长和宽,但在PV3D里创建的平面是默认平行屏幕的,也就是放在XOY平面,因此长就是“宽”,宽就是“高”。第四第五分别是宽高方向上的片段数。

 

 控制position属性,使平面左下角位于舞台坐标原点。

  长方体:

 

var mp:BitmapFileMaterial = new BitmapFileMaterial("brick.jpg", true);
var m:MaterialsList = new MaterialsList();
m.addMaterial(mp, "all");
var cu:Cube = new Cube(m, 200, 200, 200);
cu.position = new Number3D(100,100,100);
scene.addChild(cu);

代码稍微多一些,因为创建长方体的第一个参数是一个材质列表,即MaterialsList对象,它负责保存一系列材质对象,在用addMaterial添加材质时需要一个name参数,可选的name参数有“back”,“front”,“left”,“right”,“top”,“bottom”,“all”。前六个分别对应立方体的6个面,不过PV3D里面的front面是离屏幕较远的面,back才是离屏幕最近的面。

 

创建立方体的参数有9个,第一个材质列表,后面3个分别是长,宽,高,这里的宽高就是数学意义上的宽高。第4到第6个分别是长宽高方向上的片段数,第7个是从立方体内部可见的面,第8个是在外部可见的面。PV3D中几乎所有对象的创建都带有默认值,不需要的可以省略。

球:

 

var mp:BitmapFileMaterial = new BitmapFileMaterial("brick.jpg", true);
mp.doubleSided = true;
var sp:Sphere = new Sphere(mp, 200, 20, 20);
sp.position = new Number3D(200, 0, 200);
scene.addChild(sp);

创建球要4个参数,第一个是任意 MaterialObject3D对象,第二个是半径,第三个是对应贴图的宽度方向的片段数,第四个就是对应贴图高度方向的线段数。

 

圆锥:

var co:Cone = new Cone(mp, 200, 150, 20, 6);
co.position = new Number3D(200, 0, 200);
scene.addChild(co);

创建参数第一第二和球一样,第三个是高度,后面两个依然是各自方向上的片段数。


圆柱:


var cy:Cylinder = new Cylinder(mp,200,200,20,6);
cy.position = new Number3D(200, 0, 200);
scene.addChild(cy);

圆柱的创建参数有8个,前5个和圆锥完全一样,第6个是顶部半径,如果要创建圆台就可以设置这个值,最后两个参数控制是否显示顶面和底面。

posted @ 2010-11-06 18:07  元某人  阅读(541)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3