为了做一些较复杂的3D应用,打算学习下3D引擎。PV3D早已停止更新,Away3D看上去是个不错的起点,一来因为它开源免费,而且 相关的资料比较丰富。通过比较,发现推荐较多的是这本:《The Essential Guide to 3D In Flash》。

第一章是基础知识,如何下载源代码,如何建立工程文件。可以大概扫一眼,比较有趣的是最后一种方式,使用make和Flex SDK进行开发, 学习曲线最陡峭,但也最灵活。下面是MAKE文件的一个写法样例

MXMLC=/cygdrive/d/flex/bin/mxmlc
SRC=src lib-src
APP=src/HelloWorld.as
OUT=out/helloWorld.swf
ARGS=-sp $(SRC) -o $(OUT) -use-network=false
all:
    $(MXMLC) $(ARGS) -file-specs $(APP)

第二章包括一些简单的例子,通过敲打这些demo,可以摸索出away3d的些许脾气和秉性。

最简单的away3d文件中,只存在一个View3D(视窗)对象。View3D直接继承自Sprite,可以在显示列表上进行添加删除 操作。它的render()函数,用来渲染其中的三维场景。常规的做法是在EnterFrame侦听函数中调用render函数,以实现逐帧刷新。 另外,View3D的位置除了代表视窗位置之外,还指定了灭点(vanishing point)的方位。

往三维空间里面添加物体十分方便。Away3D最大程度上沿用了Flash原生API规范,能减少生词数量。三维空间的根节点是scene(场景), 属于Scene3D类。添加删除子元素的函数分别是:addChild(), removeChild()。

另外一个好消息是,当创建了View3D对象后,Away3D会免费赠送一个Scene3D对象。放在View3D的scene属性里。这个贴心的设计,体现了 设计者无微不至的关怀。

Cube类,作为最简单的三维模型之一,它的创建相当简单:

var cube:Cube = new Cube();

默认的材质是WireColorMaterial,很朴素的材质。如果你想让它色彩丰富,可以试试BitmapMaterial 材质:

var bmp:BitmapData = new BitmapData(200, 200);
bmp.perlinNoise(200, 200, 2, Math.random(), true, true);
var mat:BitmapMaterial = new BitmapMaterial(bmp);
var cube:Cube = new Cube({material:mat});

转载于:https://www.cnblogs.com/mzbdadou/archive/2012/03/21/2410011.html

Away3d学习笔记(1)相关推荐

  1. away3d学习笔记 转载

    http://abcdefgea.blog.163.com/blog/static/13278774120121155041956/ away3D_4.1.0_教程使用到的3D文件格式 .3ds(3D ...

  2. Away3D学习笔记1 - 戏说Flash 三维引擎

    如果把文章开头比作一个入口的话,那我要在入口处立一块牌,上书:"非flash开发人员免入".因为如果把flash比作一部电影的话,本文以及本博客所有文章都是写给导演而非观众的. 万 ...

  3. Away3D学习笔记(4)

    第三章的基类 先写一个基类Chapter03SampleBase.as,位于flash3dbook.ch03包内.后面的例子都会在它的基础上扩展. 这个基类定义了三个保护成员变量:_view, _cu ...

  4. Away3d学习笔记 - away3d类库下载

    Away3d引擎就是一个Actionscript的类库,所以我们要使用它就先要下载.目前最新的版本是Version 2.3.3 / 3.3.3 点此下载 :2.3.3(flash9)         ...

  5. away3d 4.0.9Gold 学习笔记 加载模型(6)

    学习笔记提供模型和贴图请勿用于商业用途. 1 package 2 { 3 import away3d.containers.ObjectContainer3D; 4 import away3d.con ...

  6. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  7. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  8. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  9. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

最新文章

  1. rust投递箱连接箱子_灭火器箱存在的必要性
  2. String 字符串对象
  3. tomcat 部署脚本
  4. Android 8.0学习(25)---系统的应用图标适配
  5. 图解TCPIP-传输层 UDP报文格式
  6. FastDFS安装脚本
  7. DOS命令 For Set
  8. android ios mp4格式转换,ios 开发 视频格式转换、mov转MP4
  9. 无为而无不为——论老子哲学的深度悖论(转载)
  10. 英语语法笔记Day7——并列主从句
  11. sklearn NearestNeighbors
  12. 盒模型——快递比喻法
  13. 手机号登录和微信登录
  14. 功率放大器的输入阻抗和输出阻抗的关系
  15. Python Tox介绍和使用
  16. Unreal Engine 4 —— 禅意花园项目中的水池
  17. mac下好用的截屏工具--QQ截图
  18. Linux环境下使用scrapyd+spiderkeeper部署scrapy爬虫
  19. Matlab三维矩阵变换行列
  20. jQuery Ajax相关api(重点)

热门文章

  1. springboot static方法与构造方法加载@VALUE
  2. Collection源码分析(二):LinkedList源码分析
  3. 编译AVX代码,升级Redhat 5.5 GCC至4.7.1
  4. php pathinfo()函数
  5. SystemCenter2012SP1实践(12)服务器、网络和存储配置
  6. PHP之数组元素的排序
  7. python raise用处_python基础教程python raise的基本使用
  8. python函数递归 斐波那契数列
  9. Compound供应量突破70亿美元
  10. 去中心化借贷协议24小时清算超1300万美元