快速导航:   教程资源  | 经典范例  | 友情链接  | 联系我们  | 官方微博
登陆 | 注册

 flash 3d 研究所
flash3d 研究所 pv3d 教程 研究所小贴士: 别开玩笑朋友,flash怎么可能建模,找个正规的三维软件吧










最近更新:
● Aberumnomug阁下在讨论区里 发表新主题“Казино Онлайн Честно...”(18:31:07)
● DonaldHaing阁下在讨论区里 发表新主题“Бк Фонбет зеркало са...”(13:47:47)
● Aberumnomug阁下在讨论区里 发表新主题“Играть В Крейзи Манк...”(05:48:59)
浏览主题:《超简易papervision3D基础 第十三篇 研究所FlabCamera3D功能制作摄像机平滑移动》

《超简易papervision3D基础 第十三篇 研究所FlabCamera3D功能制作摄像机平滑移动》
DDM君 (2012-03-16 05:50:38)

DDM君 , Flab3D.com (允许转载,转载请注明)

Pv3d总部的12月28日示例,对于不懂图形学的朋友,是一个难理解而且不好直接使用的例子(且作者不像我们这样做代码讲解)。但在下肯定这又是今后商业网站应用的一项需求功能之一。
所以今天,我们研究所提供一种新的摄像机FlabCamera3D,来让不想理解四元数原理的初学朋友也能立即简单的使用这项功能。(结果基本一样,不过研究所使用的方法和pv3d总部的有一些区别。没必要知道FlabCamera3D摄像机内部如何工作,知道怎么用就行了)
另:
由于12月份FreeCamera3D被取消掉了,我们现在傻瓜包里的FreeCamera3D是研究所为了配合教程的改版camera3d而已。所以我们推荐以后都使用我们新的FlabCamera3D,除了和Camera3D的参数和功能完全一致,还会不断会增加新功能,何乐而不为呢。

点击下载最新FlabCamera3D功能(解压后覆盖以前傻瓜包的flab3d包即可)


点击任意平面,摄像机平滑过度








原理解释
FlabCamera3D目前比Camera3D多加了两个功能:. tweenTo()和.resetToZero()
平常自己多多把玩一下这些参数就了解具体的意义了,别怕麻烦。

. tweenTo(): 平滑移动/旋转到指定的目标物体,接受5个参数
参数一:要移动到的目标物体,是一个DisplayObject3D
参数二:最后停留在离目标物体多远的距离,是一个Number,默认为700
参数三:移动过渡用时多少秒,是个Number,代表秒(不是毫秒),默认为2秒
参数四:是不是需要旋转摄像机,是一个布尔变量,默认为‘是’
参数五:没图形学基础的朋友可以无视,slerp插值,是一个Number,默认为0.2

.resetToZero():可把摄像机移动回0,0,0原点,不需要参数。

申明FlabCamera3D和声明Camera3D一摸一样。接受5个参数,前1个参数常用。
参数一:fov视场,视场是由zoom和focus三角计算而来的一个综合值,表示视野的广度。默认为60,自己调整一下玩玩就理解了。
后面的参数为制作大场景节约资源而使用的摄像机clipping,不懂clipping的概念可以无视。




这次我们来看看如何只用很短的代码,完成总部那种平滑摄像机到被点击平面效果。
点击下载源代码(无法右键另存,直接点击即可)
代码分析
声明FlabCamera3D,参数上面都讲了,很简单。

var camera=new FlabCamera3D();


这个方法是用来生成一大堆三维平面,自动重复生成,贴图和加侦听器n次,默认为20次,我们源代码里生成了50次。这一段几乎和总部代码相同。里面具体的操作以前的《超简易》教程讲了很多次了,这里略过。请不理解的朋友翻看以前的超简易教程,或去讨论区提问。

private function setupPlanes(_num:int=20):void
{
    for(var i:int = 0; i < _num; i++)
    {
    var bitmapMaterial:BitmapFileMaterial=new   BitmapFileMaterial("map.jpg");
    bitmapMaterial.interactive = true;
    bitmapMaterial.doubleSided = true;
    bitmapMaterial.precise = true;

    var plane:Plane = new Plane(bitmapMaterial);

    plane.x = Math.random() * 5000 - 2500;
    plane.y = Math.random() * 5000 - 2500;
    plane.z = Math.random() * 2500;
    plane.rotationX = Math.random() * 180 -90;
    plane.rotationY = Math.random() * 180 -90;
    plane.rotationZ = Math.random() * 180 -90;

    scene.addChild(plane);

            plane.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onPlaneClick);
            }
        }


点击平面的时候,使用我们的tweenTo功能,参数上面讲了,看看就清楚了,非常快速简单。
这里Plane(evt.currentTarget)是确保被点击的物体‘Plane化’。AS3基础,不理解的可以去讨论区询问。

private function onPlaneClick(evt:InteractiveScene3DEvent):void{
camera.tweenTo(Plane(evt.currentTarget));
}


当点击按钮的时候,调用resetToZero将摄像机返回原点。(按钮是在flash里面事先加上去的,不重要)

private function onButtonClick(evt:MouseEvent):void{
camera.resetToZero();
}


最后记住还是要导入我们的flab3d包哦。
import flab3d.*;






很麻烦的功能现在用FlabCamera3D这么两句话就完成了,挺方便的吧。Camera3D和FreeCamera3D的功能它都有,可以很方便的使用在您的网站和游戏的制作里。




DDM君
Flab3D.com



Flash3d研究所推荐的最新pv3d傻瓜包
研究所FreeCamera3D功能下载(解压后覆盖以前傻瓜包的flab3d包即可)
程序源代码(无法右键另存,直接点击即可)










flash 3d 研究所
(2009-01-12 16:24:31)
源代码无法下载,404错误


flash 3d 研究所
(2009-01-12 16:57:52)
对不起,现在可以了。给你带来麻烦真是很抱歉。


flash 3d 研究所
(2009-01-12 19:53:01)
DDM
对你的坚持真的无话可说...
你的努力越积越多了.


flash 3d 研究所
(2009-01-12 19:53:15)
DDM
对你的坚持真的无话可说...
你的努力越积越多了.


flash 3d 研究所
(2009-01-20 15:15:13)
支持你


flash 3d 研究所
(2009-02-11 16:13:47)
支持


flash 3d 研究所
(2009-03-02 15:19:37)
没有任何不挺你的理由,致敬一下


flash 3d 研究所
(2009-03-11 17:12:37)
你太有才啦!!!!!!!!!!!!


flash 3d 研究所
(2009-03-19 17:51:26)
能不能出 一个可以控制Camera行走路径的例子,现在应用比较多。。。。。。。


flash 3d 研究所
(2009-03-23 10:18:11)
↑↑↑顶顶顶↑↑↑


flash 3d 研究所
(2009-03-26 10:38:57)
就是反恐精英cs那种吗?


flash 3d 研究所
(2009-04-03 14:34:31)
现在的pv3d包里没有freecamera了


flash 3d 研究所
(2009-05-15 15:50:02)
立方体能不能这个FlabCamera3D转到我点击的面?
咱整,试了一下,没办法把点击的面转为Plane。
多谢


flash 3d 研究所
(2009-06-05 11:18:36)
DDM君
我用了你的代码 在FLEX 编译的时候 有一句话
button.addEventListener(MouseEvent.CLICK,onButtonClick);
编译不通过

请问怎么解决 谢谢


flash 3d 研究所
(2009-06-11 16:08:56)
里面的东西全部都下载不了。不管用什么方式!!1


flash 3d 研究所
(2009-07-30 14:03:42)
研究所什么时候再做点更新啊,还有很多教程文章没有完成呢!!!


flash 3d 研究所
(2009-10-10 17:43:45)
支持你们。越做越好,就是在你们这里入门的


flash 3d 研究所
(2009-10-12 11:05:25)
高手们,一个好的扩展


flash 3d 研究所
(2009-10-22 15:45:07)
谢谢DDM,谢谢各位高手的 经典之作


flash 3d 研究所
(2009-10-29 13:27:48)
请问我加载了3DS文件后,如何设置CAMERA能得到在3DMAX里使用的摄像机同样的透视效果呢???


flash 3d 研究所
(2009-11-03 04:22:59)
请问,可以让这些bitmap加入超链接双击打开么?


flash 3d 研究所
(2009-12-07 11:53:13)
运行之后,没有任何图片出现,请问这是什么回事?


flash 3d 研究所
(2009-12-30 13:43:40)
对你的坚持真的无话可说...
你的努力越积越多了.


flash 3d 研究所
(2010-01-09 17:27:31)
下载源码,放好包,运行没有报错,可是图片都不见,屏幕空空的,除了上面按钮,请问该怎么解决?


flash 3d 研究所
(2010-01-09 17:42:06)
var plane:Plane = new Plane(bitmapMaterial);

这个要加长宽参数,就可以见了,呵呵


flash 3d 研究所
(2010-02-07 00:11:53)
好东西~顶死你了~~哈哈


flash 3d 研究所
(2010-03-17 00:06:07)
这个封装的好,谢谢


flash 3d 研究所
(2010-04-13 21:15:03)
太谢谢了!!!帮我这种小白扫了不少的忙!!!


flash 3d 研究所
(2010-06-07 15:29:53)
不知为什么生成影片 , 没有报错 也没有效果,连图片也没有、这是为什么吗啊?是pv3d版本跟新后就不能用了吗?


flash 3d 研究所
(2010-06-07 16:09:18)
要换很老的版本才能?想问下,有什么方法解决吗?


flash 3d 研究所
(2010-06-07 22:44:43)
oconutmilk
(2010-01-09 17:42:06)      var plane:Plane = new Plane(bitmapMaterial);

这个要加长宽参数,就可以见了,呵呵


flash 3d 研究所
(2010-06-08 14:33:57)
var plane:Plane = new Plane(bitmapMaterial,500,500);
这样为什么还是看不见东西呢?


flash 3d 研究所
(2010-07-09 11:50:22)
我想问下为什么我下载源代码后没有任何改变,但是就是编译后没有任何显示,以前的几个源文件都可以正确编译显示,唯独这个没显示。


flash 3d 研究所
(2010-07-21 13:54:40)
dear DDM君
请问教程的下一节,3D粒子基础什么时候出呢?


flash 3d 研究所
(2010-09-09 15:36:17)
camera.z如何控制

从库里拿到舞台,


flash 3d 研究所
(2011-05-30 22:22:52)
var plane:Plane = new Plane(bitmapMaterial);      
改成这样
var plane:Plane = new Plane(bitmapMaterial,300,300,1,1);      
参数      数据类型      默认值      说明
1      material      MaterialObject3D      null      应用到plane的材质
2      width      Number      0      设置plane的width
3      height      Number      0      设置plane的height
4      segmentsW      Number      0      设置水平段的数量
5      SegmentsH      Number      0      设置竖直段的数量



flash 3d 研究所
(2011-08-22 19:44:44)
Hey, that post leaves me feleing foolish. Kudos to you!


flash 3d 研究所
(2011-09-18 09:22:49)
what is prednisone used for jofap viagra propecia buy online =(


flash 3d 研究所
(2012-01-04 09:49:33)
不错,学习了,,


flash 3d 研究所
(2012-03-14 08:12:36)
下载的源文件测试 看不到 面,不知道是FlabCamera3D错了还是 别的问题???


评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了