Away3D 基础5 - 3D基本元素(2)

掌握Away3D Core FP9:构建3D应用的实践指南 本文还有配套的精品资源,点击获取 简介:Away3D是基于ActionScript 3的开源3D引擎,专为Adobe Flash Player设计。FP9版本的核心运行库——away3D-core-fp9-master,为Flash CS3用户提供强大的3D图形处理能力,支持丰富的交互式3D应用构建。本文深入解析了Away3D Core FP9的核心组件和实际应用,包括Sc... 阅读详情

本教程,我们继续探讨简单却有用的3D基本元素。我们还将学到如何用旋转镜头、sphere及skybox 3D基本元素来创建全景图。并会了解一个可以帮我们创建全景图的软件。

这篇教程,我们先讲述两个3D基本元素,然后看一些可以用于创建全景图的3D基本元素。

先决条件

本教程建立在我们别的教程基础之上。假如你是flash3D菜鸟,你可能会先要去看看这些教程。举个例子,有些源文件,点击附带的as文件查看它们是如何工作的。所有这些例子都要用到一个Cover.as文件。这个文件是让教程里用到的flash影片不能同时工作,否则会拖垮你的电脑。如果你不确定如何使用这些例子,查看这个教程。

教程里的一部分例子会用到“纹理”。关于纹理与材质我们会在后边教程详细介绍,如果要让代码在flash cs3里工作, 读这个教程.

The Trident(三叉戟)

三叉戟,可以帮助我们更好的了解3D物体是如何呈现在3D空间里的。三叉戟是一种拥有X/Y/Z三根轴的很简单的3D基本元素。她对测试复杂的场景非常有用。假如你想知道载入的模型是则样旋转的,在其上加个三叉戟,一切就显而易见了。在下例子里点击并拖动,我们可以看到三叉戟是如何衬托出三球在3D空间里的位置情况。

  影片:  点击观看   代码: Triaxe.as

下边是用默认值创建一个三叉戟:

var axis:Trident = new Trident();

view.scene.addChild(axis);

三叉戟有两个可选参数,轴的长度与是否显示轴代表符号(x/y/z)。

 var axis:Trident = new Trident(200,true);

上面的代码生成一个新的三叉戟,其三根轴长为200单位且每根轴都显示代表符号。注意,三叉戟在创建出它之后再调整其属性(lenth/letters),这点有别于其他3D基本元素。

影片:  点击观看   代码:Basic02.as Basic02_view.as

上例子中,从四个不同视角显示同一简单场景。在三叉戟的帮助下,很容易知道四个视口的摄像机的设置情况。

The RegularPolygon(规则多边形)

规则多边形也被称为圆盘。与平面一样它没有厚度。创建时,你只能指定边数与圆盘半径。

polygon = new RegularPolygon({radius:200,sides:3});

view.scene.addChild(polygon);

边数可以设为2以上的任何整数。看下面例子体验相关设置。

影片:  点击观看   代码:Basic08_regular_polygon.as

如果多边形的纹理出现失真情况,你可以增加subdivision值:

polygon.subdivision = 3;

这会将每个三角形细分成3个。下载源文件自己试作增加subdivision的值。

The Sphere(球)

立方体最少可用12个三角形就能显示出来。球相对更加复杂。创建一个球你要更多个三角形。数值有你球的逼真度决定。默认情况,该数值比较小。为了让球更加逼真你需要通过设置egmentsW 和 segmentsH参数增加三角形数。

影片:  点击观看   代码: SphereTri.as

点击按钮增加/减小构成球的三角形数。

每个球都有半径,所以创建一个球你需要这些参数:

var sphere:Sphere = new Sphere({radius:50,segmentsW:10,segmentsH:10});

当然也可以这样设置:

var sphere:Sphere = new Sphere();

sphere.radius = 50;

sphere.segmentsW = 10;

sphere.segmentsH = 10;

你可以设置sphere.yUp属性改变球的倾向。

sphere.yUp = false;

这样设置让球的顶部朝向你。好了,现在你可以创建一个球,那么球的内部是什么呢?在球体内放一个“旋转”摄像机,我们就可以看到球的内部了。你可以以这样的方式创建全景图。为了能看到球的内部我们还要用到一个方法invertFaces.

sphere.invertFaces();

这会反转纹理,只内部可见。看例子。

影片:  点击观看   代码:Basic08_sphere.as

本例用到的全景图片(由译者添加):

记住要让3D物体内外都可以看到,你必须设置bothSides属性:

sphere.bothsides = true;

现在你已经知道如何有sphere去创建一个球形全景图。另一类流行的全景图是立方体全景图,away3D里有两种3D基本元素可以实现立方体全景图。

The Skybox and Skybox6

Skybox和skybox6都用来做全景图。它们的不同是,skybox需要我们指定6张图片,而skybox6只要一张3×2的图片。创建一个skybox,你要提供材质,就像这样:

var mat:BitmapMaterial = new BitmapMaterial( (new texture() as Bitmap).bitmapData );

largeCube = new Skybox6(mat);

如果你用普通的skybox,你要创建6个不同材质:

largeCube = new Skybox(frontMaterial,leftMaterial,backMaterial,rightMaterial,upMaterial,downMaterial);

下面你看到的例子用的是skybox6.

影片:  点击观看   代码:Basic08_skybox6.as

本例用到的全景图片(由译者添加):

你看源代码时你可能注意到这句:

largeCube.quarterFaces();

这句目的是细分skybox各面,只有这样做,当旋转纹理里时才不会出现“史前古物”。这方法同样适合其他3D元素和导入的模型。x做全景图用skybox相对于用球有一个好处,skybox用到的“三角形”更少。当然这是有“代价”的,这会让全景图有一点扭曲变形,但大多数情况下这点扭曲是可以忽略的。

那下面工作就简单了吧?你准备好了六张图进行下一步了吧?如果你这么认为那你就太乐观了。用于全景图的图片要经过特殊处理才能让全景图无缝结合。这里有一张用于skybox6的纹理图.如果不是这样,skybox6全景图展现的就不能如实际中看上去的那样。

那么我们要这样才能打造一张3×2的图片呢?有许多生成球形全景图图片的软件,但用于生成3×2格式的却很少。在写这篇教程是我找到一个名为Pano2vr 的跨平台(Win / Mac / Linux)软件,它价格不贵但可以将一张全景图转换成另一种格式的全景图(支持16种格式)。上面例子里就是试用版做的,所以图里有水印。完整版是没有水印的。

《Away3D傻瓜系列教程3 — 灯光和投影》示例代码 《Away3D傻瓜系列教程3 — 灯光和投影》示例代码,教程地址:http://www.chenlinsheng.com/?p=2109 立即下载

相关推荐

AS3常见开源项目大全

AS中各种开源项目大全,比如:Tweener(动画)、as3crypto(加密)、Away3D(3D)、Box2DFlashAS3(2D物理引擎)、Alcon (Debug工具)等等....

让Away3D伴你360°全景漫游

1代码展示 package { import away3d.containers.View3D; import away3d.controllers.HoverController; import away3d.entities.Mesh; import away3d.materials.TextureMaterial; import away3d.primitives.SphereG

leverli的专栏 6735

一款强大的3维引擎away3d

一款强大的3D引擎,源文件!camera,scene!

Away3D4.0入门教程

好吧,我知道有很多人不会有兴趣一点点把教程全看完,所以,我先在这帖子里集中发布一些基础的,但大家又非常关心的问题, 至于具体细节怎么实现,我会在以后的教程中慢慢完善,这里仅是为了提供给那些有一定动手能力的兄弟们自己先丰衣足食.... 1.怎么为一个Mesh设置各个不同部位的皮肤? 调用Mesh的subMeshes,但前提是你的Mesh里有SubMesh... mesh.subMes

Zszen John 的 Blog 3179

RTX 50系显卡(5080/5090D)CUDA 12.8环境下的vLLM部署避坑与实战指南

本文为RTX 5080/5090D显卡用户提供了在CUDA 12.8环境下部署vLLM的完整实战指南。文章详细介绍了从驱动安装、CUDA 12.8环境配置、PyTorch Nightly版本精准匹配,到vLLM源码编译及常见报错排查的全过程,帮助开发者高效利用新一代硬件进行大模型推理。

gray5的博客 663

金蝶K3系统物料主数据后台表对应字段一览

我们说到物料表,一般是指t_icitem,但正确的说t_icitem并不是一张有,而是一张视图,不过我们对于数据库物料表中的大部分操作,都是通过此视图来完成。比如经常通过此视图,来成批修改数量,单价精度,是否启用批次等一些字段,有的时候,对于账套已经启用,并且已经有业务发生的物料,有一些关键属性也需要通过修改物料表t_icitem来进行。 当然修改的时候,需要考虑一些前提条件的。 比如说我有一个客户新建的账套,在月底结账时发现,要改一种成本核算方法,启用时用的是加权平法,现在想改成移动平均法,这样的情况,

hzfw2008的博客 1万+

As3.0 Away3d as3dmod 超炫3D相册

这是一个在Away3d 3d环境下的通过as3mod变形的效果。

he_wen_jian的专栏 2692

DaVinci Configurator BswM模块配置

BswM是AUTOSAR(Automotive Open System Architecture)系统架构中的模块之一,它是基础软件模块(BSW)之一。BswM全称为Basic Software Module Manager(基础软件模块管理器),它负责管理和协调其他BSW模块的行为和交互,以实现整个系统的功能。BswM可以被看作是一个状态机,通过监控系统的状态和事件触发,来控制其他BSW模块的运行状态和互相配合,以达到整个系统的预期行为。

qq_59258431的博客 3945

Away3D基础5-3D基本元素(1)

原文地址:http://www.flashmagazine.com/Tutorials/detail/away3d_basics_5_-_primitives_part_1/ 在大多数3D软件中,3D基本元素是构成3D世界的基石。Away3D自带有17种3D基本元素以及一些别的帮助物。本教程将解释如何用这些3D基本元素实现非常酷的效果,比如音乐波形条、CMYK颜色分离等等。本教程同时会...

dnukjz5627的博客 146

无人驾驶汽车系统入门(三十二)——FEC算法:点云快速欧几里得聚类实战解析

本文深入解析了FEC算法在无人驾驶点云聚类中的高效应用,通过逐点处理策略和体素栅格预分割技术,实现了比传统欧几里得聚类快百倍的速度。文章详细介绍了算法原理、Python实现及参数调优指南,并对比了FEC与传统算法的性能差异,为无人驾驶系统开发提供了实用解决方案。

weixin_29065015的博客 485

若依开源框架(分离版)在人大金仓数据库下使用

对于甲方业务特殊要求,使用国产化数据库人大金仓,作为项目主要存储。这里以若依开源框架整合人大金仓为例,演示如何在真实项目中引入人大金仓。

🐱喵测实验室 5942

Away3D 基础5 - 3D基本元素(3)

这是关于3D基本元素的第三篇教程也是最后一篇。在这篇里要介绍的是我们不常用到的。GridPlane和LineSegment用于调试,然而Cone, Torus 和SeaTurtle更是“非必备品”了。 这篇教程里介绍过的3D基本元素也存在于别的3D引擎或模型包里。由于不常用,本教程里没有像前两节里那样丰富的实例。不过这里还是提供了能展现其用法的代码 先决条件 本教程建立在我们别的教...

dnukjz5627的博客 137

施耐德 Modicon M580 ePAC 项目实战:从硬件选型到 Control Expert V15 组态

本文详细解析了施耐德 Modicon M580 ePAC 在工业自动化项目中的实战应用,从硬件选型到 Control Expert V15 组态的全流程。重点介绍了水处理站控制系统的硬件配置、网络架构设计、软件安装授权及程序框架开发,帮助工程师高效实施中大型控制系统项目。

weixin_33701617的博客 326

Flex 4+Away3D环境配置

前一段时间学习Flash Builder 4和Away3D,做了一些小程序,在这对Flash Builder 4和Away3D做一点小总结,为了以后再使用,提供些资料。         一、Flash Builder 4简介: Flash Builder 4 简称Flex 4,是Adobe公司的软件,编程语言是AS3和HTML,AS3和HTML显示了完美兼容,html可以调用AS3,AS3也可

恋上蛋炒面的专栏 2331

RK3588 buildroot 制作的系统增加 docker 支持

RK3588 使用buildroot制作的系统添加 docker 和 docker-compose 的功能

荻夜的博客 1567

【YOLOv11多模态涨点改进】独家创新首发 | TGRS 2025 | 引入CDFIM跨模态差异特征交互模块,通过差异特征提取和融合增强机制,减少了冗余信息,显著提升了小目标的检测精度,高效涨点改进

🔥本文给大家介绍使用 CDFIM跨模态差异特征交互模块改进 YOLOv11多模态目标检测,通过有效的差异特征提取和增强,显著提升了小目标的检测精度,特别是在复杂背景和低对比度环境下。该模块通过残差加法和通道与空间注意力机制,增强了可见光与红外模态之间的互补特征交互,减少了冗余信息,提高了检测稳定性。尽管提升了特征交互,CDFIM 仍保持轻量化设计,计算开销和参数量较低,适合实时检测应用。总的来说,CDFIM 模块在保留原始模态信息的同时优化了特征融合,有效提高了 YOLO 在多模态目标检测中的鲁棒性和精度

Ai缝合怪、助力小伙伴高效发论文 131

away3D基础6-颜色材质

在前面的教程里我们已经接触到材质。这篇教程将探讨如何使用一些基本的材质:color materials, phong shader 和lighting 为3D元素添加颜色与线框材质会让3D元素更有三维的感觉。本教程要解释的是在流行的3D引擎away3D里的一些基础的颜色材质的使用。 先决条件 本教程建立在我们别的教程基础之上。假如你是flash3D菜鸟,你可能会先要去看看这些教程。...

dnukjz5627的博客 217

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Flash 3D引擎Away3D完全指南:从零搭建你的第一个3D世界(入门必读)

Away3D 是一款免费开源的 Flash 3D 引擎,专为 Flash Player 11 的 Stage3D 硬件加速接口打造,让你在浏览器中就能构建真实的三维场景。本指南面向零基础新手,带你认识 Away3D Flash 3D 引擎的核心概念,并用不到 20 行代码搭建出你的第一个 3D 世界,最后附上功能地图与常见坑位提示,是入门必读的完整教程。 ## 一、认识 Away3D:免费开源的

gitblog_00003的博客 701

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Away3D 开源3D引擎项目推荐

Away3D 开源3D引擎项目推荐 1. 项目基础介绍和主要编程语言 Away3D 是一个开源的实时3D引擎,专为 OpenFL 平台开发。该项目的主要编程语言是 Haxe,Haxe 是一种跨平台的编程语言,能够编译成多种目标语言,如 JavaScript、C++、Java、C# 等。Away3D 通过 Haxe 实现了跨平台的支持,使得开发者可以在多个平台上运行他们的3D应用程序。 2. 项目的...

gitblog_00743的博客 431

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Away3d基础 3 -摄像机

原英文地址:http://www.flashmagazine.com/Tutorials/detail/away3d_basics_the_cameras/ 相机camera类是观察3D世界必须借助的工具.其作用与现实世界里的相机一样,3D世界里的照相机应用通视原理将3D物进行缩放、聚焦、定位等。在本教程中你将会学到away3d里的三种类型的"相机" 无论你想在Away3D里做什...

dnukjz5627的博客 245
上一篇: Away3D基础5-3D基本元素(1)
下一篇: Away3D 基础5 - 3D基本元素(3)
jamesjun
博客等级 码龄19年 25粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值