<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評(píng)論 :: 0 Trackbacks

    出處:http://hi.baidu.com/heguang

    Papervision3D仍然處理2.0 alpha階段,在測試這些例子之前,確保更新到了Papervision3D 2.0 alpha Great White branch的最新版本。

    原文地址:http://www.insideria.com/2008/05/textures-wireframe-bitmap-movi-1.html

    Materials
    關(guān)于Papervision3D的材質(zhì)你需要知道些什么呢?以一個(gè)球體為例,你怎樣確定這個(gè)球體是地球呢,還是眼睛或籃球?你只能通過貼在球體上面的材質(zhì)來判斷。
    這篇文章介紹了Papervision3D材質(zhì)的基本內(nèi)容并且教會(huì)你怎樣把材質(zhì)加到一個(gè)平面上。讓我們開始吧。

    材質(zhì)的基類
    在單獨(dú)介紹每種材質(zhì)之前,需要著重了解每種材質(zhì)都擴(kuò)展了的抽象父類“MaterialObject3D” (org.papervision3d.core.proto.MaterialObject3D)。也就是說,無論哪種材質(zhì),你都可以找到以下共同的屬性。

    所有的材質(zhì)都很常用的
    1. name(String):材質(zhì)的名稱。
    2. interactive(Boolean)允許指定監(jiān)聽器。
    3. oneSide或doubleSided(Boolean):在網(wǎng)格(即3D物體)的正面和反面貼上材質(zhì)。例如,一個(gè)轉(zhuǎn)動(dòng)的平面在它的兩面都顯示相同的材質(zhì)。
    4. smooth(Boolean):在材質(zhì)上應(yīng)用平滑算法。把材質(zhì)或者高分辨率的材質(zhì)的平滑打開,會(huì)增強(qiáng)它的表現(xiàn)效果。

    較少用到,但很有用的
    5. bitmap(BitmapData):允許你訪問材質(zhì)的bitmap data。
    6. tiled(Boolean):決定紋理是否平鋪在整個(gè)材質(zhì)上。對(duì)于原始對(duì)象,需要調(diào)整maxU 和maxV才能生效。關(guān)于UV映射的更多信息請?jiān)L問:http://en.wikipedia.org/wiki/UV_mapping/
    7. maxU (Number):“U”最大值。
    8. maxV (Number):“V”的最大值。
    9. scene (Scene3D):持有物體所屬舞臺(tái)的引用。

    特別情況下使用的
    10. invisible(Boolean):表明物體表明是否被繪制。
    11. opposite(Boolean):indicates whether the face is flipped. Only use this if the material is double sided.
    12. widthOffset (Number): holds the original width of the bitmap before auto mip-mapping resizes
    13. heightOffset (Number): holds the original height of the bitmap before auto mip-mapping resizes

    Wireframe Material(或者包含了Wireframe Material的組合材質(zhì))
    14. lineColor (Number):表面線條的RGB值(如0xabc123)。
    15. lineAlpha (Number):0到1之間的數(shù)值,代表了線條的透明度。
    16. lineThickness (Number):線條厚度。

    僅適用于Color Material(或者包含了Color Material的組合材質(zhì))
    1. fillColor (Number):填充網(wǎng)格的RGB值(如0xabc123)。
    2. fillAlpha (Number):0到1之間的數(shù)值,填充的透明度。

    1. Wireframe

    WireframeMaterial( color:Number=0xFF00FF, alpha:Number=100, thickness:Number = 0 )

    2.Color

    ColorMaterial( color:Number=0xFF00FF, alpha:Number = 1, interactive:Boolean = false )

    3.Bitmap
    如果想要將圖像應(yīng)用到3D物體上,你需要用到下面的方法來得到.gif、.jpeg或者.png文件的bitmap數(shù)據(jù)。

    在這個(gè)例子里用到上面這幅logo。Bitmap Material, Bitmap Asset Material, 和 Bitmap File Material是三種不同的方式,得到相同下面相同的效果。

    a.Bitmap

    Bitmap Material允許將任何BitmapData貼到材質(zhì)上。最典型的用法是綁定一個(gè)位圖,從而獲取它的bitmapData再應(yīng)用到材質(zhì)上。你可以從這 里獲得關(guān)于在Flex中綁定位圖的更多信息:http://livedocs.adobe.com/flex/3/html /help.html?content=embed_3.html
    BitmapMaterial( asset:BitmapData=null, precise:Boolean = false)

    b.Asset(僅在Flash CS3使用)

    使用Bitmap Asset Materials將Flash庫里的一幅位圖貼到物體上。僅需要增加任何位圖到library里,右鍵單擊->屬性

    c. Color

    Bitmap Color Material的用法跟Color Material差不多,但它允許你訪問bitmapData,按照自己的意愿繪制或改變顏色的像素。

    d.File

    Bitmap File Material僅需要一個(gè)字符串,指出圖片的位置。你可以為材質(zhì)增加監(jiān)聽器,來監(jiān)聽圖片下載進(jìn)度或什么時(shí)候完成下載。
    BitmapFileMaterial( url :String=”" )

    e.Viewport

    Bitmap Viewport Material獲取一幅視口位圖的快照,并允許你把它應(yīng)用到其它的3D物體上。類似于籃球比賽,通過大屏幕而不是直接觀看。
    BitmapViewportMaterial(bitmapViewport:BitmapViewport3D,precise:Boolean=false); BitmapViewport3D(viewportWidth:Number=640,viewportHeight:Number=480, autoScaleToStage:Boolean = false, bitmapTransparent:Boolean=false, bgColor:int=0×000000, interactive:Boolean=false, autoCulling:Boolean=true);

    f.Wireframe

    Bitmap Wireframe Material類似于Wireframe Material,但允許訪問材質(zhì)的bitmapData。
    BitmapWireframeMaterial(color:Number=0xFF00FF, alpha:Number=1,thickness:Number=3)

    4.MovieClip
    Papervision3D允許你直接使用Flash庫里的MovieClip,通過鏈接標(biāo)識(shí)符(linkage identifier)貼到3D物體上。對(duì)于Flex,就需要綁定公開的.swf和MovieClip。
    a.Asset (僅用于Flash CS3)
    MovieAssetMaterial( linkageID:String=”", transparent:Boolean=false, animated:Boolean=false, createUnique:Boolean=false, precise:Boolean = false)
    b.MovieMaterial
    MovieMaterial( movieAsset:DisplayObject=null, transparent:Boolean=false, animated:Boolean=false, precise:Boolean = false )

    5. Video Stream

    嗯,你可以在3D物體上顯示視頻了。真酷!

    VideoStreamMaterial ( video:Video, stream:NetStream , precise:Boolean = false )

    6.Shade
    陰影材質(zhì)是基于光線的,一束光照射在材質(zhì)上,反射與否就形成了陰影。你可能已經(jīng)猜到了,你首先需要?jiǎng)?chuàng)造一束光:
    light = new PointLight3D();
    通過x、y和z屬性,你可以把這束光移動(dòng)到你想要的位置。陰影物體會(huì)朝向這束光。如果你想這束光可見,需要傳遞一個(gè)為“true”的參數(shù),并把它“addChild”到舞臺(tái)上。否則,它就是一束不可見的光,在同樣的位置上創(chuàng)建3D物體,看起來光源就像是太陽或燈那樣。
    a.cell

    http://en.wikipedia.org/wiki/Cel-shaded_animation
    Cell Material用到了兩種顏色,你可以設(shè)置步數(shù)來混合它們。

    CellMaterial(light:LightObject3D, color_1:int, color_2:int, steps:int)

    b.Environment Map

    http://en.wikipedia.org/wiki/Environment_map
    environment map接受投影過的位圖。下一篇文章里會(huì)提到需要“shaders”的environment map的更多高級(jí)用法。

    EnvMapMaterial(light:LightObject3D, lightMap:BitmapData, backEnvMap:BitmapData=null, ambientColor:int = 0)

    c. Flat Shade

    http://en.wikipedia.org/wiki/Flat_shading

    平面陰影使多邊形的每一面都有固體陰影。這個(gè)效果用在球體上會(huì)比在平面或立方體上更好。你會(huì)看見光線環(huán)繞著這個(gè)球體。

    FlatShadeMaterial(light:LightObject3D, diffuse:uint=0xffffff, ambient:uint=0×000000)

    d.Gouraud

    http://en.wikipedia.org/wiki/Gouraud_shading
    Gouraud Material具有更平滑的陰影。上面的鏈接討論了它的局限性。

    GouraudMaterial(light3D:LightObject3D, lightColor:int = 0xFFFFFF, ambientColor:int=0×000000)

    e. Phong

    http://en.wikipedia.org/wiki/Phong_shading
    Phong Material跟Gouraud Material類似,不過它允許高光。

    PhongMaterial(light3D:LightObject3D, lightColor:int, ambientColor:int, specular:int)

    7.Composite

    composite material就是多種材質(zhì)組合到一起變成了一種材質(zhì)。在這里我們看到的是bitmap material和wireframe material混在一起的效果。

    8.運(yùn)行時(shí)材質(zhì)交換

    在運(yùn)行時(shí)(run-time)交換材質(zhì)將很容易辦到。感謝Ralph的更新。
    my3DObject.material = myMaterial;
    最用使用是在翻轉(zhuǎn)的時(shí)候,但Papervision3D的交互要在接下來的文章里才會(huì)介紹。

    9.網(wǎng)絡(luò)上Material的例子

    http://www.zeropointnine.com/blog/a-papervision-20-alpha-example
    http://www.unitzeroone.com/blog/2008/03/12/papervision3d-shaders-bumpmap-example-sourcecode-for-cs3/

    標(biāo)簽: , ,

    posted on 2008-12-01 22:54 seal 閱讀(619) 評(píng)論(0)  編輯  收藏 所屬分類: Flex+ActionScript
    主站蜘蛛池模板: 亚洲日本一线产区和二线| 日本免费人成在线网站| 在线播放免费人成毛片乱码| a级毛片毛片免费观看永久| 你是我的城池营垒免费看| 亚洲毛片免费视频| 国产免费观看视频| 国产AV无码专区亚洲AV毛网站| 亚洲春色另类小说| 国产精品日本亚洲777| 国产在线观看免费视频软件| 免费观看黄色的网站| 免费人妻av无码专区| 久久亚洲国产成人亚| 亚洲av无码偷拍在线观看| 很黄很污的网站免费| 精品久久久久久久免费加勒比| 中文字幕亚洲一区| 亚洲AV无码一区二区三区在线 | 亚洲人成电影在线天堂 | 男女猛烈xx00免费视频试看| 日本免费久久久久久久网站| 岛国片在线免费观看| 亚洲精品中文字幕乱码三区| 亚洲熟妇AV一区二区三区宅男| a级毛片毛片免费观看永久| 狠狠久久永久免费观看| 亚洲午夜视频在线观看| 大片免费观看92在线视频线视频| 久久久久久精品成人免费图片| 亚洲精品一级无码鲁丝片| 国产 亚洲 中文在线 字幕| 久久青草免费91观看| 国产91在线免费| 亚洲一级在线观看| 免费看少妇高潮成人片| 亚洲av无码成人精品区在线播放| 亚洲精品中文字幕乱码| 久久一区二区三区免费播放| 亚洲中文字幕无码爆乳av中文| 亚洲大尺度无码无码专线一区|