About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Nov

    30

    周末闲着也是闲着么(一个不搞 3D 开发的人如何看 3D 引擎)。

    我第一次看到 Flash 3D 技术是在 2006 年的夏天的一个夜晚,一个朋友发给了我一个使用 Papervision3D(AS2版本的 PV3D)制作的 Flash 360 度旋转的全景案例。但因我个人比较喜欢 2D 唯美的东西,对他的 3D 演示产品并没有表示出很大的兴趣。因为我对 3D 的评价是:一张纸永远包不平一个球

    —— 所以位图材质被贴到模型上的时候,它总是需要以这样或那样的方式被拉伸、缩放、平滑、模糊等等,进行各种像素的插值计算—— 所以3D 即时渲染技术在我的印象中一直都是比较丑陋的。尤其是看到一些游戏角色的模型那些肌肉有棱有角,像个怪兽一样时,这种“丑陋”就会表现的淋漓尽致(我一直比较讨厌轩辕剑后来的那些 3D 版本,其实就是因为游戏里面的 3D 画质跟它们的 2D 宣传画真的是有着天壤之别)。

    在 Flash 加入 Stage3D 之前,PV3D 一直是 Flash 3D 引擎中最简单也是最完整的 3D 引擎,尤其是在 AS2 的时代,几乎国内外所有的 360 度全景展示或 360 环物展示产品都使用清一色的 PV3D。然而由于 PV3D 是基于 CPU 计算的方式,在 Flash 加入 Stage3D 技术后,从此末落(虽然 Papervision3D 曾经想要推出基于 Stage3D 的 PapervisionX 产品,但这么些年过去了至今未发布正式版本,应该算是“流产”了)

    但如果开发者没有任何 3D 基础(注意是没有任何3D基础),并且英语水平很囧,我会推荐从 PV3D 学起,但并不需要深入的学习全部,因为:PV3D 是至今为止拥有唯一完整和系统的中文基础教程的翻译版《Papervision3D Essentials》,这会帮助开发者了解 3D 中的术语是指哪些对象。而其它 3D 引擎除了 《Away3D 3.5 Essentials》,都是没有完整和系统的教程的。如果直接看 DEMO 的演示源代码——没有 3D 基础看 3D 的代码,很可能就像没有 AS 基础的人直接看 AS 源代码一样,可能会花了很多时间仍然看的一知半解,甚至看不懂——因为演示代码本身就是给有基础的人看的,有了基础便会一看就懂。

    我在这个周末大概花了将近3 个小时,通读了一边《Papervision3D Essentials 中文翻译》,既便是像我这样没有 3D 基础的人,再去看 Flare3D 官方提供的演示代码,也是很容易看懂的。然而 Flash 3D 技术并不景气,至少目前来说它并不景气,如果它一直这么不景气,那么类似《Away3D 3.5 Essentials》这样的英文书籍可能永远不会有人去翻译它(这书已经上市有个二三年了,虽然我没有看过它,但我觉的既然它出书了,那么应该是系统的教程)。

    其实开发者们应该都有接触过 Flash 页游,很多都是打着 3D 的口号,但实际上它们往往处在一种“伪 3D ”状态,只有角色是 3D的,而游戏地图往往是 2D,所以是没有景深透视的,不能像那些真正的 3D 端游那样旋转镜头之类的操作。这跟性能有着很大的关系,所以很多页游公司会放弃使用 Flash3D 技术,而采用类似 U3D 这样的技术,而 Flash 3D 页游开发者也会被迫的转到 U3D 之类的技术。

    我并没有真正的使用过 3D 引擎做过实际的项目,只是在看资料时测试过 PV3D 和 Flare3D 的几个示例代码。在查找资料的过程中其实我也发现到国内以 9RIA 论坛为例,在 3D 资料中,Away3D、Flare3D、Alternativa3D 的资料是比较多的,有 3D 牛人们都给他们出了一些单独的案例教程。

    也有国外的开发者对多种 Flash 3D 引擎进行了一个综合性的比较:《On the choice of a Stage3D engine》,有兴趣的可以看看,这位名叫 Arnaud Gatouillat 的作者相比较之下他喜欢 Flare3D。但我更喜欢这篇有针对性的文章Flare3D Vs Away3D in the creation of a simple game》,这个名叫 Emanuele Feronato 的作者提供了 Away3D 和 Flare3D 更具体更详细的比较,并且在最后也倾向于 Flare3D(这位作者将 Alternativa3D 也剔除了,我觉的它应该被剔除,因为 Alternativa3D 这名字也太长了,长到我都不知道怎么读,哈哈!!,所以取个简单易读的名字还是重要的,@_@)

    这两位作者喜欢 Flare3D 的原因有很大的两个共同点:1、帮助文档做的很棒;2、简单易上手(包括编码量也少。所以能用一行代码搞定的事件,别搞好几行;能用简单的名字,就别取那么长的名字。再次哈哈)。我一个没有 3D 基础的人仅仅只是通读了 《Papervision3D Essentials》 的翻译,就能看懂 Flare3D 的那些样例代码,这说明它真的很简单(至少入门真的是很简单)。

    还有一点很重要的是,这些新的基于 Stage3D 的 Flash 3D 引擎,在实际测试的几个案例中都会遇到一个相同的问题:那就是如果用户关闭了 Flash 播放器本身的硬件加速功能,这时候它们的锯齿现象就会变的很严重,并且帧速率也会大大的下降(很多笔记本用户其实都会有一个感受,就是在 Google Chrome 浏览器中如果去观看类似优酷这样的视频,或者玩一些 Flash3D 网页游戏时,显卡风扇会狂转,如果没有显卡风扇甚至可能会因为温度过高而自动关机,甚至莫名奇妙的连同 CPU 的使用率也会升高,CPU 风扇也是狂转。在百度上有很多这样询问的用户,因为我曾经也遇到过这样的情况,所以会不得不关闭 Chrome 播放器的硬件加速功能)。这种特殊情况下其实是不及 PV3D 的,因为 PV3D 从一开始就是基于 CPU 的,它的材质平滑处理、帧速率完全不受播放器是否开启硬件加速的影响。

    也许这篇闲谈跟开头说的有些不一样,既然我觉的这种“非照片级别的实时渲染 3D 技术”是丑陋的,那为什么又要去研究它呢,有一句话叫做:吐着吐着,你就习惯了。

    Nov

    29

    交友需谨慎:《飓风营救》

    • 0 Comments
    • Movies, TV and Celebrities

     

    这片子很有教育意义啊哇卡卡~~。应该给国内同样是青春叛逆期的女生们都看看,不要因为过了 16 岁拿到了身份证就到处去追星,到处去旅行,特别是交朋友需谨慎。远离那些经常混社会的女生,也不要因为陌生的男生长的帅就觉的可以乱搭讪。因追星、见网友被拐卖相关的新闻最近可是屡见不鲜。

    为这退休的特工老爸点个“赞”:女儿就是爸爸的全部,哪怕拼上自己的性命

    Nov

    29

    走肾的激情 vs 走心的爱情:《心花路放》

    • 0 Comments
    • Movies, TV and Celebrities

     

    就像身体里的两个人格:一个走肾,看见美女、大胸、长腿,是个单身男人总会想要搭讪一下,然后搞个一夜激情;一个走心,对待感情要认认真真,既便是一段失败的感情,也要拿的起,放的下,不要像个失败之后站不起来的 Loser。

    Nov

    29

    我,无处不在:《超体 / Lucy》

    • 0 Comments
    • Movies, TV and Celebrities

     

    有什么事物不属于哲学范畴?那么还有什么事物不属于神学吗?唉~

    Nov

    28

    痞子英雄:《全面开战》vs《黎明升起》

    • 0 Comments
    • Movies, TV and Celebrities

     

    在《痞子英雄1:全面开战》上映后就有人评论说:如果没有痞子,看个毛英雄?那这《痞子英雄2:黎明升起》应该就基本可以映证这句评论了(有观众说这痞子的戏份没超过2分钟,我看连1分钟都没有吧)。

    Nov

    27

     

    图片来自 Papervision3D Essentials 

    场景对象 Scene

    Scene 是 3D 空间,有3 个轴的舞台(x,y,z)。每个 3D 可视化对象都需要添加到 Scene 对象,否则就不会在出现在屏幕上。

    摄影机对象 Camera

    就像我们的 DV 摄象的镜头,记录场景中的运动,它本身在场景中是看不到的,所以在一般的 3D 引擎中不需要把它添加到场景里。但它却可以像真实存在的一样缩放聚焦,旋转等操作(一个好的 3D 引擎摄影机与场景之间都会有选择性的自动优化所需要的渲染对象)。

    观察口对象 Viewport

    其实就是一个用于显示 Scene 中对象的容器,只是这个容器它显示的内容是摄像机拍到内容,它的大小决定最终用户看到 Scene 的范围(学过 Starling 的人应该不会陌生,就是一个概念的东西)。

    3D 对象

    就是球、立方体、圆锥、茶壶、人物、汽车等等神马的可以放到 Scene 中去的东西

    材质对象 Material

    最简单的材质就是颜色(纯色),复杂一些的就是贴图(位图)。

    渲染引擎对象 Render engine

    如果说摄像机(Camera)像 DV 机的镜头,那么这个渲染引擎就像 DV 机中“所见即所拍”的视频观窗口。镜头一边拍,视频小窗上直接就可以看到拍的内容了。这个渲染工作是需要不停的工作的,如果渲染引擎停止了,那么看视频的窗口中的画面也就停止了。

    坐标系统 coordinate system

    一般就是左手定则笛卡尔坐标系统(Left-handed Cartesian coordinate system),因为这种坐标系统是我们从中学的数学课立体几何开始就接触的,最为熟悉的坐标系系统。

    Flash 3D 引擎

    就是通过以上这些对象来大大简化 3D 开发过程的 AS 框架/类库,直接调用这些简单对象的 API 就可以,不需要开发者去做大量的底层工作,避免重复的发明轮子(类似什么面片计算、顶点着色、缓冲器神马的都可以省的去了解了,除非想要开发属于自己的 3D 引擎)。

    对于大多数 Flash 开发者而言,在挑选或使用某个 3D 引擎时,只需要知道它是基于数学模型模似的还是基于原生的 Stage3D 的就可以了。

    Nov

    27

    Papervision 3D 下载

    • 0 Comments
    • Flash Platform

    Papervision 3D,一个比较老牌的 Flash 3D 引擎。它的顶盛时期可能更在于 AS2 时代的版本,国内外大量的 Flash 360 度 3D立体旋转效果的软件几乎都是清一色的 PV3D 这个引擎(AS2 时代很难找出其它引擎能像它这么简单易用又完整的 3D 引擎)。

    AS3 时代虽然它也出了 AS3 版本的引擎(基于 CPU 计算的传统显示层),在 FlashPlayer 加入 Stage3D 后,相较于其它基于 Stage3D 的高级引擎,它的使用者就几乎变的寥寥无几;尤其是在 3D 的网页游戏开发、移动应用开发,基于 Stage3D 的其它引擎能够提供强大的硬件加速功能。

    不管怎么样,至少它曾经是个经典,重点还是它的简单易用性,适合 Flash 美工人员使用。比如设计师解决广告公司制作简单 3D 效果的需求:类似360度立体旋转,广告牌翻转神马的效果,用它绰绰有余了(既便它不会使用 AS3 ,它也有 AS2 版本)。

    AS3 源码格式:src920.rar

    SWC 预编译格式:Papervision3D_2.1.920.rar

    PV3D 引擎的使用说明与离线版的 API 帮助手册文件有点大,可以到我的 QQ 群共享里下载。

    Nov

    26

    老版本 Flash Player 8.0 下载

    • 0 Comments
    • Miscellaneous

    一些比较老的 Flash 文件基于 AS1 或 AS1.1 在 FlashPlayer 9 以后的版本中播放会有问题,比如类似“金鹰视频教程”系列教程有些进度条用到了 AS1 代码,在网页中放了一半就无法继续播放了,这是因为网页默认 FlashPlayer 会自动升级更新到最新版本。

    所以只要把网页中的 FlashPlayer 播放器控件还原到 8.0 以前的版本就可以,但这样一来就又无法继续播放 AS3 的 Flash 文件,比如优酷,土豆神马的视频就无法观看了。

    一个比较好的方法:将这些在线 SWF 文件用迅雷工具神马的下载下来(最好是能够找到这些资源的离线版本,直接打包下载,否则就算用迅雷一个一个的下载也麻烦),然后在本地就可以用独立的 FlashPlayer 8.0 播放这些 SWF 文件了。

    FlashPlayer8.0 独立版下载: FlashPlayer8.0.rar (解压密码:blog.zinewow.com)

    Nov

    26

    Access 2003 版视频教学

    • 0 Comments
    • Access

    计算机二级 ACCESS (2003 版)视频教学打包下载

    百度网盘下载:pan.baidu.com/s/1mg40aXq

    不是高清版本,但完全可以看的清,声音也和画面完全同步,适合 Access 初学者。

    Nov

    25

    这套教程出自 21互联,看到有人整套(1-40 课)的将它放在了优酷上,比较模糊,有些视频声音和视频也没有同步,但觉的这套教程讲的很简单,适合 Access 初学者(想要高清版本看的爽的话建议直接找 21 互联购买正版)。

    More...