MyException - 我的异常网
当前位置:我的异常网» Flash » [转] [Flash/Flex] 轻量级flash3d发动机native3d re

[转] [Flash/Flex] 轻量级flash3d发动机native3d rev19使用教程

www.MyException.Cn  网友分享于:2013-11-16  浏览:9次
[转] [Flash/Flex] 轻量级flash3d引擎native3d rev19使用教程

  • 资讯类型: 原创
  • 来源页面: http://game-develop.net/blog/?p=232
  • 资讯原标题: 轻量级flash3d引擎native3d rev19使用教程
  • 资讯原作者: sliz
  • 我的评论:自弹自唱 
    对这篇文你有啥看法,跟贴说说吧!欢迎口水和板砖,哈哈。欢迎大家和我们一同分享更多资讯。

    本帖最后由 sliz 于 2011-4-7 13:22 编辑

    比起其他3d引擎动辄几百k,无位图资源时,只有3k+的native3d引擎在做一些轻量级的网页效果时,它甚至比five3d的体积还要小,确实有它一定的优势。
    native3d在设计的时候力求最大限度的节省开发者的时间
    比如其他引擎每次创建的时候都要新建scene camera viewport render,然后再把他们组合成正确的位置。native3d把新建的工作都直接写在view3d里好了。native3d的rx,ry,rz对应其他3d引擎的rotationX,rotationY,rotationZ。
    1,native3d基本类
    Obj3D 3d对象
    View3D 内部包括了camera scene 渲染器等
    Cam3D 摄像机
    2,新建view3d
    1. var view:View3D; = new View3D(400, 400, -1000, this);
    复制代码
    其中前2个参数是viewport的宽高,第三个参数是默认摄像机的z坐标,因为native3d和大部分3d引擎的z轴都是指向屏幕内的,所以默认摄像机位置为负数,第四个参数this是你想把view3d显示对象加到哪里。
    1. if (parent) {
    2.         parent.addChild(this);
    3. }
    复制代码
    从它的构造函数可以看出,如果你传入一个可用的容器它会执行addchild方法,否则不做操作。
    view3D提供了render,start,stop方法,如果你只想渲染一次,当你添加好3d对象的时候,可以执行render来做单次渲染。我们一般用start方法来使native一直渲染。
    3,几何体
    primitives包里提供了几个最基本的几何体,可以试试立方体Cube的功能。
    可以
    1. new Cube(new LineMaterial(0), 400, 400,400);
    复制代码
    来建立一个Ojb3D对象,第一个参数为材质 ,后面3个参数为长方体的长宽高。
    新建好后加到scene上进行渲染
    1. view.scene.add(ob3d);
    复制代码
    Obj3D包括一个public的m matrix3d变量我们可以操作它来改变Obj3D的位置,欧拉角,缩放等属性。
    执行过后他如果想得到正确的 xyz等属性需要执行decompose方法来做映射。
    如果不熟悉matrix3d的使用方法,可以直接对Obj3D的各个属性进行操作,可以达到一样的效果。
    x,y,z 3d对象的位置,rx,ry,rz 3d对象的欧拉角 sx,sy,sz 3d对象的缩放。
    可以设置culling(不替除,背面剔除,正面剔除) 对应为 TriangleCulling类。
    4,材质
    在materials包内的线材质,位图材质,色块材质,组合材质,可以把其他材质任意组合。
    5,最基本例子代码
    1. package  
    2. {
    3.         import flash.display.*;
    4.         import flash.events.*;
    5.         import net.game_develop.native3d.*;
    6.         import net.game_develop.native3d.materials.*;
    7.         import net.game_develop.native3d.primitives.*;
    8.         /**
    9.          * ...
    10.          * @author sliz http://game-develop.net/blog/
    11.          */
    12.         public class Test2 extends Sprite
    13.         {
    14.                 private var ob3d:Obj3D;
    15.                 private var ctrl:FreeRotationController;
    16.                 private var view:View3D;
    17.                 public function Test2() 
    18.                 {
    19.                         var view:View3D; = new View3D(400, 400, -1000, this);
    20.                         ob3d = new Cube(new LineMaterial(0), 400, 400,400);
    21.                         view.scene.add(ob3d);
    22.                         view.start();
    23.                         addEventListener(Event.ENTER_FRAME, update);
    24.                         ctrl = new FreeRotationController(ob3d);
    25.                 }
    26.                 
    27.                 private function update(e:Event):void 
    28.                 {
    29.                         ctrl.update(view.containerMouseX, view.containerMouseY);
    30.                 }
    31.         }
    32. }
    复制代码
    6 例子
    https://native3d.googlecode.com/ ... 3d/bin/native3d.swf
    https://native3d.googlecode.com/ ... d/bin/native3d2.swf
    https://native3d.googlecode.com/ ... d/bin/native3d3.swf
    https://native3d.googlecode.com/ ... d/bin/native3d4.swf
    https://native3d.googlecode.com/ ... d/bin/native3d5.swf
    7 native3d的未来发展方向
    加入对molehill的支持,在效率上有所建树,转型为主流的3d框架
    8 svn
    svn地址 http://native3d.googlecode.com/svn/trunk/

     

    文章评论

    程序员和编码员之间的区别
    程序员和编码员之间的区别
    亲爱的项目经理,我恨你
    亲爱的项目经理,我恨你
    如何区分一个程序员是“老手“还是“新手“?
    如何区分一个程序员是“老手“还是“新手“?
    如何成为一名黑客
    如何成为一名黑客
    当下全球最炙手可热的八位少年创业者
    当下全球最炙手可热的八位少年创业者
    总结2014中国互联网十大段子
    总结2014中国互联网十大段子
    为啥Android手机总会越用越慢?
    为啥Android手机总会越用越慢?
    程序员周末都喜欢做什么?
    程序员周末都喜欢做什么?
    “肮脏的”IT工作排行榜
    “肮脏的”IT工作排行榜
    10个调试和排错的小建议
    10个调试和排错的小建议
    程序员眼里IE浏览器是什么样的
    程序员眼里IE浏览器是什么样的
    每天工作4小时的程序员
    每天工作4小时的程序员
    程序员最害怕的5件事 你中招了吗?
    程序员最害怕的5件事 你中招了吗?
    什么才是优秀的用户界面设计
    什么才是优秀的用户界面设计
    团队中“技术大拿”并非越多越好
    团队中“技术大拿”并非越多越好
    编程语言是女人
    编程语言是女人
     程序员的样子
    程序员的样子
    10个帮程序员减压放松的网站
    10个帮程序员减压放松的网站
    要嫁就嫁程序猿—钱多话少死的早
    要嫁就嫁程序猿—钱多话少死的早
    那些争议最大的编程观点
    那些争议最大的编程观点
    我跳槽是因为他们的显示器更大
    我跳槽是因为他们的显示器更大
    不懂技术不要对懂技术的人说这很容易实现
    不懂技术不要对懂技术的人说这很容易实现
    “懒”出效率是程序员的美德
    “懒”出效率是程序员的美德
    程序员必看的十大电影
    程序员必看的十大电影
    60个开发者不容错过的免费资源库
    60个开发者不容错过的免费资源库
    Web开发者需具备的8个好习惯
    Web开发者需具备的8个好习惯
    程序员的一天:一寸光阴一寸金
    程序员的一天:一寸光阴一寸金
    鲜为人知的编程真相
    鲜为人知的编程真相
    科技史上最臭名昭著的13大罪犯
    科技史上最臭名昭著的13大罪犯
    漫画:程序员的工作
    漫画:程序员的工作
    写给自己也写给你 自己到底该何去何从
    写给自己也写给你 自己到底该何去何从
    5款最佳正则表达式编辑调试器
    5款最佳正则表达式编辑调试器
    聊聊HTTPS和SSL/TLS协议
    聊聊HTTPS和SSL/TLS协议
    老美怎么看待阿里赴美上市
    老美怎么看待阿里赴美上市
    程序员应该关注的一些事儿
    程序员应该关注的一些事儿
    老程序员的下场
    老程序员的下场
    Java程序员必看电影
    Java程序员必看电影
    程序员的鄙视链
    程序员的鄙视链
    中美印日四国程序员比较
    中美印日四国程序员比较
    程序员都该阅读的书
    程序员都该阅读的书
    我的丈夫是个程序员
    我的丈夫是个程序员
    初级 vs 高级开发者 哪个性价比更高?
    初级 vs 高级开发者 哪个性价比更高?
    我是如何打败拖延症的
    我是如何打败拖延症的
    看13位CEO、创始人和高管如何提高工作效率
    看13位CEO、创始人和高管如何提高工作效率
    代码女神横空出世
    代码女神横空出世
    软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有