Tài liệu đồ hoạ máy tính và hiện thực ảo

Thảo luận trong 'Kiến Trúc - Xây Dựng' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    167
    Điểm thành tích:
    0
    Xu:
    0Xu
    ĐỀ TÀI: đồ hoạ máy tính và hiện thực ảo

    T́m hiểu ngôn ngữVRML

    Lời nói đầu
    Trong xu thế tin học hoá toàn bộ cuộc sống đang diễn ra tấp nập hiện nay,lĩnh vực đồ hoạ đóng góp một vai tṛ cực kỳ to lớn.Ở đâu ta cũng có thể t́m thấy những minh hoạ cho việc áp dụng đồ hoạ máy tính vào cuộc sống : xử lư ảnh, phim hoạt h́nh, đặc biệt là thực tại ảo(Virtual Reality_VR) Thực tại ảo,là một nghành công nghệ cao,có ứng dụng đặc biệt rộng răi.Từ các tṛ chơi 3D cực ḱ sống động đến những mô phỏng phức tạp trong công nghiệp và khoa học công nghệ(mô phỏng các vụ thử hạt nhân,mô phỏng thế giới ảo dùng để huấn luỵện phi công ),từ những trường hợp đơn giản đến các trường hợp cực ḱ quan trọng.
    Một phần quan trọng của VR là mô phỏng thế giới thực xung quanh chúng ta.Để làm được điều này, chúng ta có thể dùng ngôn ngữ VRML(Virtual Reality Modeling Language).Đây là một ngôn ngữ tương đối đơn giản nhưmg cực kỳ hiệu quả.Với VRML,kết hợp với tŕnh duyệt IE hay Nescape,chúng ta có thể mô phỏng thế giới quanh ta một cách như ư.Trong thế giới đó,có các vật thể,có các tương tác và có các cảm biến y như thế giới thực.Ứng dụng của VRML cũng rất rộng răi : mô phỏng nhà cửa,thiết kế các pḥng học ảo,các thiết bị thí nghiệm ảo, lập tŕnh không gian ảo
    Trong bài tập lớn môn học này,em đă t́m hiểu về VRML và dùng ngôn ngữ VRML để mô phỏng toà nhà C14-15 của trường đại họcBKHN.Tuy được sự hướng dẫn tận t́nh của thầy Hùng nhưng do thời gian và năng lực c̣n có hạn nên kết quả c̣n nhiều thiếu sót.Tuy nhiên,em rất cám ơn thầy Hùng v́ môn học và bài tập lớn này đă đem lại cho em nhiều hiếu biết về thế giới đồ hoạ,mở ra cho chúng em một hướng đi mới trong lĩnh vực tin học.

    BÁO CÁO BÀI TẬP LỚN MÔN HỌC ĐỒ HOẠ MÁY TÍNH VÀ HIỆN THỰC ẢO
    I.Giới thiệu về VRML
    1.Về ngôn ngữ VRML
    a,V̉ tr×nh duyÖt
    §ỉu ®Çu tiªn b¹n cÇn lµ VRML browser, ®Ó quan s¸t c¸c thƠ giíi cña b¹n. PhÇn lín c¸c brower VRML ho¹t ®éng cho Nescape vµ Internet Explorer, c¸c browser că s½n ®èi víi c¸c hÖ ®ỉu hµnh. §Ó biƠt thªm th«ng tin b¹n h·y tra trong VRML Repository.

    b,Son tho VRML

    §ỉu tiƠp theo b¹n cÇn lµ t¹o nªn c¸c thƠ giíi cña b¹n. Că hai c¸ch ®Ó thùc hiÖn ®ỉu nµy. §Çu tiªn b¹n că thÓ sö dông mét trong c¸c c«ng cô t¹o ra VRML, chƯnh lµ c¸c m« h×nh 3D mµ b¹n că thÓ t¹o ra thƠ giíi cña b¹n. Mét ph­¬ng ph¸p thùc hiÖn VRML lµ m· ho¸ b»ng tay, tÊt c¶ b¹n cÇn lµ viÖc so¹n th¶o v¨n b¶n wordpad hoÆc notepad. VrmlPad lµ bé so¹n th¶o Vrml ®Æc biÖt hiÖu qu¶ víi ®Æc ®iÓm næi bËt có ph¸p. Lo¹i ®¬n gi¶n ®­îc m· ho¸ chØ ra, ®­îc cÊt d­íi file că d¹ng filename.wrl. Sau ®ă b¹n că thÓ t¶i vµo browser vµ lÊy ra ®Ó xem. NƠu b¹n sö dông bé so¹n th¶o phøc t¹p h¬n, nh­ Wordpad, h·y ®¶m b¶o cÊt d­íi file ®¬n gi¶n hoÆc nƠu kh«ng nă sÏ kh«ng lµm viÖc.
    Lµm viÖc víi VRML ch­a că kinh nghiÖm, nă că thÓ rÊt khă ®Ó t¹o ra c¸c ®èi t­îng phøc t¹p. §Ó thùc hiÖn ®ỉu nµy b¹n cÇn ph¶i sö dông hoÆc c«ng cô b¶n quỷn møc cao hoÆc ng«n ngư m« h×nh ho¸. NƠu b¹n ®i ®Ơn c¸c lùa chän muén h¬n, b¹n că thÓ sÏ cÇn vµi lo¹i file ch­¬ng tr×nh biªn d̃ch ®Ó chuyÓn giưa c¸c d¹ng m« h×nh ho¸ vµ VRML. Bé biªn d̃ch miÔn phƯ lµ crossroads. C¸c c«ng cô VRML cÊp cao că s½n ®èi víi nhỉu c«ng ty.
    c. Kü thuËt nĐn, MIME vµ xuÊt b¶n


    Sù më réng th«ng th­êng cho c¸c file VRML lµ .wrl vµ .wrz sö dông cho viÖc nĐn VRML. Browser că thÓ ®äc c¸c file VRML b̃ nĐn bëi GZIP. C¸c file nĐn că thÓ sö dông nh­ .wrz, .wrl.gz hoÆc sù më réng chuÈn .wrl. GZIP lµ mét chuÈn c©n b»ng trªn c¸c hÖ thèng UNIX nh­ng b¹n că thÓ nhËn thÊy trªn phiªn b¶n PC hoÆc Mac. C¸ch tèt nhÊt ®Ó nĐn c¸c file lµ sö dông Chisel, lµ bé x¸c nhËn vµ bé ®¸nh gi¸ VRML că thÓ b̃ cÊt c¸c file VRML GZIP. §©y lµ mét c«ng cô tèt ®Ó că bÊt kú c¸ch nµo cho viÖc ǵ rèi m· bëi v× kh«ng că ai viƠt VRML hoµn h¶o ngay tơ lÇn ®Çu tiªn.
    TÊt c¶ c¸c tµi liÖu internet theo chuÈn MIME, chuÈn VRML MIME lµ model/vrml, t­¬ng tù nă că thÓ lµ x-world/x-wrml. Mçi khi b¹n t¹o thƠ giíi cña b¹n, b¹n cÇn t¹o nă lªn trang web ®Ó mäi ng­êi că thÓ xem nă. §èi víi viÖc nµy b¹n cÇn mét vµi ISP (Internet Service Provider). B¹n că thÓ sö dông kh«ng gian nµy ®Ó ®­a c¸c file lªn trang web, că thÓ lµ c¸c file HTML th«ng th­êng.
    d. Headers vµ chó thƯch.


    VRML(Virtual Reality Modeling Language), là ngôn ngữ cho phép mô tả các đối tượng 3D của thể giới thực, và chạy trên môi trường web. Nó cho phép xây dựng nên các file . wrl có thể mở được bằng các tŕnh duyệt web như IE hay NESCAPE. Một file vrml có dạng như sau:
    Tiêu đề file: #VRML V2.0 utf8
    trong đó utf8 là cụm từ cho phép dùng các kư tự quốc tế trong file VRML sau đó là các nút. §ỉu nµy năi cho c¸c browser xem xĐt file VRML, vµ phiªn b¶n nµy nă ®ang sö dông. Trong tr­êng hîp nµy nă lµ phiªn b¶n 2.0. VRML lµ tr­êng hîp dÔ b̃ ¶nh h­ëng(case sensetive), viÖc sö dông chƯnh x¸c nh­ b¹n ®· thÊy. PhÇn utf8 th«ng b¸o cho browser chuÈn chuçi v¨n b¶n ®Ó sö dông. VRML 1.0 hoÆc lµ ascii hoÆc utf8 nh­ng phiªn b¶n 2.0 chØ lµ utf8, tèt nhÊt ®Ó sö dông.
    BÊt kú dßng nµo b¾t ®Çu víi kƯ tù # lµ chó thƯch, vµ b̃ lê ®i khái bé ph©n tƯch có ph¸p VRML. TiƠp theo lµ VRML hîp lÖ.

    e,C¸c nót trong VRML
    Nút đầu tiên thường là nút WORLDINFO chứa thông tin đặc tả về file vrml sau đó là các loại nút khác để xây dựng nên file vrml.
    Nót nµy chøa th«ng tin chung v̉ thƠ giíi ( the world) nh­ tiªu ®̉ cña thƠ giíi, ®­îc hiÓn th̃ trong thanh tiªu ®̉ cña cö sæ browser t­¬ng tù nh­ cê TITLE trong HTML. WorldInfo c̣ng că thÓ chøa mét chuçi th«ng tin, chøa c¸c th«ng tin kh¸c v̉ file. B¹n că thÓ ®Æt vµo c¸c tơ kho¸ cho c¸c search engine. Mét nót WorldInfo mÉu ®­îc chØ ra ë d­íi ®©y:

    WorldInfo {
    title Floppy's VRML97 Tutorial Example 1
    info [(C) Copyright 1999 Vapour Technology
    <a class="__cf_email__" href="http://www.cloudflare.com/email-protection" data-cfemail="a1c6d4c8c5c4e1d7c0d1ced4d3d5c4c2c98fc2cecc">[email protected]<script type="text/javascript">
    (function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute(data-cfemail);if(a){s=;r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
    ]
    }Că thÓ că c¸c chuçi phøc t¹p trong tr­êng info, b»ng c¸ch ®Æt chóng bªn trong ngoÆc vu«ng. Tiªu ®̉ kh«ng cÇn ngoÆc vu«ng, khi nă chØ lµ mét chuçi ®¬n lÎ. File VRML că thÓ că nhỉu nót WorldInfo nh­ng chØ că nót ®Çu tiªn ®­îc ph©n tƯch, c¸c phÇn sau b̃ lê ®i.
    VRML có 54 loại nút khác nhau, và được chia làm 9 nhóm, bao gồm:
    . Grouping Nodes : Các nút nhóm
    . Special Group Nodes: Các nút nhóm đặc biệt
    . Common Nodes: Các nút chung
    . Sensor Nodes: Các nút cảm biến
    . Geometry : Các nút h́nh học
    . Geometric Properties Nodes: Các nút thuộc tính h́nh học
    . Appearance Nodes : Các nút h́nh dáng
    . Interpolators Nodes Các nút nội suy
    . Bindable Nodes: Các có thể ghép nối được
    Một nút gồm có :
    Tên nút: Thường bắt đầu bằng chữ in hoa và chỉ có thể là một trong các tên chuẩn do vrml cung cấp, sau đó là đến các trường của nút chúng thường bắt đầu là chữ thường, mổi loại nút có các trường khác nhau. Gía trị của trường có thể là các giá trị thực hoặc các bộ giá trị thực hoặc có thể là một nút cơ bản, ta có thể h́nh dung các nút như các lớp trong lập tŕnh hướng đối tượng. VRML không cho bạn định nghĩa thêm các nút mới của ḿnh mà chỉ được dùng các nút cơ bản của nó. Một h́nh dạng h́nh học bất kỳ có thể được xây dựng qua nút Shape. Cấu trúc của nút này có dạng như sau:
    Shape{
    appearance Appearance{
    material Material{
    diffuColor 1 0 0
    Shininess 0
    }
    textture ImageTextTure{}
    }
    geometry Box{}
    }
    trong đó appearance là thuộc tính của nút giá trị của nó chỉ có thể là nút Appearance dùng chỉ dạng bề mặt của vật thể . Trong nút Appearance co các trường material dùng để chỉ màu, độ bóng, độ trong suốt của vật thể. Trường textture dùng để chỉ kết cấu của vật thể, giá trị của trường này có thể là các nút ImageTextture,MovieTextture .
    Chúng ta điểm qua một số nút cơ bản
    e1.C¸c nót appearrance

    Khi chóng ta nh×n thÊy ®èi t­îng FBOX chóng ta ®· ®̃nh nghÜa tr­íc ®©y, nót Shape că mét tr­êng gäi lµ appearance, nă sö dông ®Ó chøa tr­êng Appearance ®­îc chØ ra d­íi ®©y:

    DEF FBOX Shape {
    appearance Appearance {
    material Material {
    }
    }
    geometry Box {
    }
    }VƯ dô nµy că mét tr­êng bªn trong nót Appearance, tr­êng material. Theo c¸ch nµy că c¸c nót bªn trong c¸c nót d­êng nh­ lµ khă kh¨n, nh­ng cho phĐp b¹n ®̃nh nghÜa c¸c h×nh d¹ng do sö dông DEF vµ USE. §ỉu nµy lµ hiÖu qu¶ trong viÖc că nhỉu ®èi t­îng theo cïng mét c¸ch quan s¸t. Nót Appearance că thÓ chøa tr­êng material vµ texture. tr­êng material chøa nótMaterial. Nót texture chøa mét trong sè c¸c lo¹i nót kƠt cÊu. Nhưng ®ỉu nµy ®­îc m« t¶ trong phÇn sau, tr­íc tiªn chóng ta gi¶i quytƠt c¸c nót Material.
    e2.C¸c nót Material

    Nót Material că thÓ chøa 6 tr­êng, ®ă lµ:
    diffuseColor
    mµu s¾c th«ng th­êng cña ®èi t­îng
    specularColor
    mµu s¾c næi bËt cña c¸c ®èi t­îng chiƠu s¸ng
    emissiveColor
    §èi t­îng 'glows' víi ¸nh s¸ng cña nă tơ mµu s¾c nµy, nă kh«gn ph¶i lµ ¸nh s¸ng mÉu tơ c¸c ®èi t­îng kh¸c.
    ambientIntensity
    Sè l­îng c¸c ¸nh s¸ng bao xung quanh mµ ®èi t­îng ph¶n chiƠu.
    shininess
    c¸ch ¸nh x¹ cña ®èi t­îng
    transparency
    c¸ch lµm râ rµng ®èi t­îng. chó ư mét vµi browsers kh«ng hç trî c¸c ®èi t­îng tơng phÇn kh«ng râ rµng.
    Ba tham sè ®Çu tiªn lµ c¸c gi¸ tr̃ mµu, ba tham sè sau lµ c¸c gi¸ tr̃ ®¬n gi¶n giưa 0 vµ 1. C¸c mµu s¾c ®­îc chØ râ nh­ c¸c thµnh phÇn red, green vµ blue nh­ trong HTML. B¹n că thÓ lÊy bÊt kú mµu nµo b¹n thƯch tơ viÖc kƠt hîp c¸c mµu red, green vµ blue. C¸c gi¸ tr̃ mµu ®¬n lÎ n»m giưa 0( kh«ng mµu) vµ 1(mµu ®Çy ®ñ), v× vËy red ®Çy ®ñ ®­îc ®̃nh nghÜa lµ 1 0 0, tr¾ng lµ 1 1 1, x¸m lµ 0.5 0.5 0.5 .C¸ch nµy că thÓ chØ râ c¸c mµu trong khi sö dông nh­ng b¹n că thÓ sö dông bé lùa chän mµu trong PaintShop Pro hoÆc mét vµi thø ®Ó că thÓ nhËn ®­îc c¸c mµu b¹n thƯch vµ chuyÓn chóng thµnh gi¸ tr̃ VRML.
    V× vËy nƠu b¹n muèn t¹o h×nh khèi ban ®Çu, víi mµu xanh b¸n trong suèt, b¹n sÏ ®̃nh nghÜa d¹ng cña nă nh­ sau:

    Shape {
    appearance Appearance {
    material Material {
    emissiveColor 0 0.8 0
    transparency 0.5
    }
    }
    geometry Box {
    }}
    e3,KƠt cÊu h×nh ¶nh( image texture)

    C¸c mµu s¾c thó ṽ lµ rÊt tèt nh­ng ®Ó tr«ng thùc sù lµ hÊp dÉn, chóng ta ph¶i că s¬ ®å kƠt cÊu c¸c vËt thÓ. §ỉu nµy ®­îc thùc hiÖn qua tr­êng texture cña nót Appearance . tr­êng nµy chøa ba lo¹i nót kƠt cÊu. Lo¹i ®Çu tiªn chóng ta xem xĐt lµImageTexture. §©y lµ s¬ ®å kƠt cÊu c¬ së, ¸nh x¹ toµn bé h×nh ¶nh vµo mét ®èi t­îng. Nót că thÓ lµ s¬ ®å kƠt cÊu mét ®èi t­îng víi file JPEG hoÆc PNG. Mét vµi browser că thÓ hç trî nă, nh­ng ®©y kh«ng ph¶i lµ chuÈn. nót că thÓ chøa ba tr­êng. §Çu tiªn, url chØ râ h×nh ¶nh ®Ó sö dông chuÈn d¹ng URL. B¹n că thÓ chØ râ danh s¸ch h×nh ¶nh trong c¸c ngoÆc vu«ng, browser sÏ hiÓn th̃ h×nh ¶nh ®Çu tiªn trong danh s¸ch mµ nă t×m thÊy. Hai tr­êng kh¸c lµ repeatSrepeatT, th«ng b¸o liÖu kƠt cÊu lÆp l¹i theo h­íng trôc ngang (S) hay trôc däc(T). §ỉu nµy dÉn ®Ơn gi¸ tr̃ boolean lµ TRUE hoÆc FALSE. chóng chØ thùc sù hiÖu qu¶ khi kƠt hîp víi TextureTransform, chóng ta kh«g tr×nh bµy kü ë phÇn sau. B¹n că thÓ chØ râ c¸c th«ng tin trong suèt trong c¸c h×nh ¶nh ®· sö dông trong tr­êng hîp nă thay thƠ l¹i sù trong suèt cña c¸c ®èi t­îng ban ®Çu. NƠu b¹n sö dông kƠt cÊu tØ lÖ x¸m, diffuseColor ®­îc nh©n lªn víi ®é dµy cña kƠt cÊu ®Ó t¹o ra kƠt cÊu thùc sù. Thùc tƠ, b¹n că thÓ t¹o nhỉu hiÖu qu¶ do kƠt hîp nót MaterialImageTexture. Năi chung, chóng chØ thùc hiÖn nhưng g× b¹n mong muèn, v× vËy chØ cÇn quan s¸t vµ mét chót kinh nghiÖm lµ b¹n că thÓ t¹o ra ®­îc.
    V× vËy ®Ó ®̃nh d¹ng kƠt cÊu cña hép thø hai víi kƠt cÊu g¹ch, chóng ta că thÓ sö dông nh­ sau:

    Appearance {
    texture ImageTexture {
    url brick.jpg
    }
    }khi nót appearance cña hép thø hai.

    e4. Movie Texture

    MovieTexture nhËn lÊy phim MPEG vµ s¬ ®å kƠt cÊu lªn mét ®èi t­îng theo c¸ch nh­ ImageTexture. Nă că ba tr­êng gièng nhau, ngoµi ra că mét sè tr­êng kh¸c, ®ă lµ:
    speed
    Gi¸ tr̃ speed mÆc ®̃nh lµ 1, 2 lµ tèc ®é t¨ng 2 lÇn. Gi¸ tr̃ 0 lu«n hiÓn th̃ ë c¬ cÊu ®Çu tiªn.
    loop
    Gi¸ tr̃ boolean ( (TRUE hoÆc FALSE), chØ râ liÖu phim lÆp hay kh«ng.
    startTime
    Khi b¾t ®Çu phim, trong mét vµi gi©y tơ nöa ®ªm cña ngµy 1 th¸ng giªng 1970.
    stopTime
    Khi kƠt thóc phim, trong mét vµi gi©y tơ nöa ®ªm cña ngµy 1 th¸ng giªng 1970.
    e5. Pixel Texture

    Nót nµy cho phĐp b¹n ®̃nh nghÜa c¸c kƠt cÊu b»ng tay trong file VRML. §ỉu nµy d­êng nh­ khă tin lµ că thÓ ®Çy ®ñ nh­ng nă kh«ng că nh­ ®· sö dông, b¹n sÏ thÊy sau ®©y. Nă că tr­êng image thay thƠ cho tr­êng URL.
    Tr­êng image bao gåm hai con sè chØ râ chỉu réng vµ cao cña kƠt cÊu, tiƠp theo lµ mét con sè chØ râ sè l­îng c¸c thµnh phÇn. Thµnh phÇn mµu s¾c lµ tØ lÖ x¸m, hai thµnh phÇn mµu s¾c lµ tØ lÖ x¸m víi ®é trong suèt, thµnh phÇn thø ba lµ mµu RGB vµ thø t­ lµ RGB víi ®é trong suèt. Sau c¸c ®èi sè nµy lµ danh s¸ch c¸c ®iÓm pixel, lµ c¸c sè hexa víi mét byte cho mçi thµnh phÇn. V× vËy pixel thµnh phÇn thø t­ lµ red vµ 50 % ®é trong suèt lµ 0xFF00007F. C¸c pixel ®­îc s¾p xƠp theo thø tù tơ ®¸y tr¸i ®Ơn ®Ønh bªn ph¶i. VƯ dô ®­îc chØ ra d­íi ®©y:

    DEF PIXMAP Appearance {
    texture PixelTexture {
    image 2 2 3 0xFF0000 0x00FF00 0x0000FF 0xFF0000
    }
    }[​IMG]
    Chóng ta chØ cÇn m« t¶ nhanh v̉ c¸c sè hexa. Th«ng th­êng ë m¸y tƯnh thuËn tiÖn khi chØ râ c¸c con sè lµ c¸c sè thËp ph©n th«ng th­êng (0-9) hoÆc nh̃ ph©n (0-1) vµ ngoµi ra că mét lo¹i kh¸c lµ hexadecimal, că d¹ng nh­ sau:

    [TABLE=align: center]
    [TR]
    [TD]Hexadecimal[/TD]
    [TD]Decimal[/TD]
    [/TR]
    [TR]
    [TD]0[/TD]
    [TD]0[/TD]
    [/TR]
    [TR]
    [TD]1[/TD]
    [TD]1[/TD]
    [/TR]
    [TR]
    [TD]2[/TD]
    [TD]2[/TD]
    [/TR]
    [TR]
    [TD]3[/TD]
    [TD]3[/TD]
    [/TR]
    [TR]
    [TD]4[/TD]
    [TD]4[/TD]
    [/TR]
    [TR]
    [TD]5[/TD]
    [TD]5[/TD]
    [/TR]
    [TR]
    [TD]6[/TD]
    [TD]6[/TD]
    [/TR]
    [TR]
    [TD]7[/TD]
    [TD]7[/TD]
    [/TR]
    [TR]
    [TD]8[/TD]
    [TD]8[/TD]
    [/TR]
    [TR]
    [TD]9[/TD]
    [TD]9[/TD]
    [/TR]
    [TR]
    [TD]A[/TD]
    [TD]10[/TD]
    [/TR]
    [TR]
    [TD]B[/TD]
    [TD]11[/TD]
    [/TR]
    [TR]
    [TD]C[/TD]
    [TD]12[/TD]
    [/TR]
    [TR]
    [TD]D[/TD]
    [TD]13[/TD]
    [/TR]
    [TR]
    [TD]E[/TD]
    [TD]14[/TD]
    [/TR]
    [TR]
    [TD]F[/TD]
    [TD]15[/TD]
    [/TR]
    [TR]
    [TD][/TD]
    [TD][/TD]
    [/TR]
    [/TABLE]

    F trong sè hexa lµ 15 trong sè thËp ph©n. 10 trong hexa lµ 16 trong sè thËp ph©n. Chư sè hexa th«ng th­êng ®­îc chØ râ 0x ë phƯa tr­íc ®Ó dÔ dµng nhËn ra. VƯ dô 0x10 = 16, 0xFF = 255, vµ 0x7F = 12.
    e6. V¨n b¶n vµ kiÓu font( text vµ fontstyle)

    Nót nµy t¹o v¨n b¶n 2D trong thƠ giíi. TÊt c¶ ®̉u thùc sù ®¬n gi¶n trơ phi b¹n muèn thùc hiÖn c¸c ®ỉu phøc t¹p h¬n sö dông Fontstyle. Nót Text că 4 tr­êng. Tr­êng ®Çu tiªn lµ string, b¹n că thÓ ®̃nh nghÜa chuçi hoÆc danh s¸ch c¸c chuçi ®Ó hiÓn th̃. Tr­êng fontStyle chøa nót FontStyle. Hai tr­êng cuèi lµ maxExtent, b¹n chØ râ ®é réng lín nhÊt ( theo ®¬n ṽ mĐt) cña v¨n b¶n vµ length lµ danh s¸ch chỉu dµi ®èi víi mçi chuçi, v× vËy b¹n că thÓ chØ râ ®é réng riªng biÖt cña mçi chuçi. NƠu c¸c length ®­îc chØ râ, browser sÏ ®̃nh l¹i kƯch th­íc cña v¨n b¶n ®Ó cho vơa víi kƯch th­íc ®ă.

    geometry Text {
    string [Hello, World]
    fontStyle USE HELLOFONT
    maxExtent 5
    length [3, 3]
    }Nót Text lµ phøc t¹p, FontStyle phøc t¹p h¬n. C¸ch tèt nhÊt ®Ó thùc hiÖn ë ®©y lµ liÖt kª danh s¸ch c¸c tr­êng.

    FontStyle {
    size
    family
    style
    horizontal
    leftToRight
    topToBottom
    language
    justify
    spacing
    }size lµ chỉu cao cña dßng v¨n b¶n theo hÖ mĐt. Tr­êng family că thÓ nhËn 3 gi¸ tr̃ vµ thay ®æi lo¹i b̉ mÆt cuØa font. Ba lo¹i ®ă lµ SERIF, SANS, hoÆc TYPEWRITER, chóng rÊt râ rµng. §Ó thay ®æi c¸ch xem xĐt v¨n b¶n, b¹n că thÓ sö dông tr­êng style, că thÓ nhËn mét trong c¸c kiÓu sau: PLAIN, BOLD, ITALIC, hoÆcBOLD ITALIC. horizontal lµ gi¸ tr̃ boolean chØ ra liÖu v¨n b¶n lµ ngang horizontal (TRUE) hoÆc däc vertical (FALSE). leftToRighttopToBottom c̣ng lµ gi¸ tr̃ boolean vµ c©n b»ng trong c¸c ho¹t ®éng tr­íc. T­¬ng tù chuçi utf-8 că thÓ xuÊt hiÖn kh¸c nhau, phô thuéc vµo ng«n ngư trong nă, v× vËy ®ỉu nµy lµ m· ho¸ hai kƯ tù ®èi víi ng«n ngư. Thùc sù kh«ng biƠt c¸c m· lµ g×, tèt nhÊt lµ lê ®i tr­êng nµy. justify lµ hiÖu qu¶ vµ căthÓ lµ mét trong bÊt kú BEGIN, MIDDLE, hoÆc END. spacing lµ sè l­îng kh«ng gian tr«ngd giưa c¸c dßng trong v¨n b¶n. 1 lµ b×nh th­êng, 2 lµ gÊp ®èi kho¶ng c¸ch (dßng trång giưa mçi dßng.
    §ă lµ FontStyle , b¹n că thÓ thùc sù lê ®i c¸c tr­êng nh­ng style, family justify thùc sù lµ hiÖu qu¶.
    e7,Các đối tượng cơ bản
    Để chỉ h́nh dáng vật thể ta dùng trường geometry. Giá trị của trường này là các nút h́nh học cơ bản.VRML hỗ trợ 4 đối tượng cơ bản , đó là: Cone(h́nh nón), Cylinder(H́nh trụ), Box(H́nh hộp), Sphere(H́nh cầu). Đây là bốn đối tượng h́nh học cơ bản giúp ta xây dựng nên các đối tượng h́nh học của ḿnh .Cấu trúc của các nút này như sau


    Nút Box:
    Box{size cd cc cr}. Trong đó cd, cc, cr là các số thực lần lượt là chiều dài, chiều cao, chiều rộng của h́nh hộp. Tâm của h́nh hộp là gốc tọa độ hệ thống
    Nút Cylinder:
    Cone{
    radius dk Chỉ bán kính của h́nh trụ
    height cc Chỉ chiều cao của h́nh hộp
    bottom TRUE/FALSE
    top TRUE/FALSE Hai giá trị này để chỉ xem h́nh trụ có nắp (TRUE) hay không(FALSE) ở đáy(bottom), đỉnh(top) của h́nh trụ
    }
    Nút Cone:
    Cone{
    radius Một giá trị thực chỉ bán kính đáy của h́nh nón
    height Môt giá trị thực chỉ chiều cao của h́nh hộp
    }
    Nút Sphere:
    Sphere{ radius } trường radius chỉ bán kính của h́nh cầu
    Đây là bốn nút h́nh học cơ bản để bạn xây dựng nên các đối tượng h́nh học cơ bản của ḿnh.Chúng được gọi là các nút h́nh học chuẩn. Để xây dựng nên các đối tượng h́nh học không chuẩn bạn có thể dùng các nút IndexedFaceSet, IndexedLineSet, IndexedPointSet,ElavationGrid, Extrusion
    Thông thường khi bạn tạo ra một đối tượng tâm của nó trùng với tâm của hệ toạ độ địa phương, để di chuểyn đối tượng bạn dùng nút Transform.
    Transform{
    Scale Chỉ sự biến đối của đối tượng
    Translation chỉ các giá trị dịch chuyển theo các trục x, y, z
    Rotation chỉ góc quay và trục quay
    Children[] các nút con chịu tác động của translation và rotation
    }
    Trong nút Transform Scale có tác động đầu tiên, sau đó đến rotation và translation
    Để gom nhiều nút lại với nhau ta sử dụng nút Group, cú pháp của nó như sau:
    Group{
    Children[] chứa các nút con của nút này
    }
    Trong VRML c̣n có các nút cảm biến với đuôi là Sensor, cho phép chúng ta mô phỏng một số loại cảm biến trong thực tế, như TimerSensor, TouchSensor, PlaneSensor Các nút nội suy, như PositionInterpolator, OrientationInterpolator, ColorInterpolator, cho phép bạn chuyển các giá trị khác kiểu về kiểu giá trị mà bạn mong muốn như chuyên sự thay đôi thời gian về giá trị dịch chuyển của một vật thể. Các nút nội suy đóng vai tṛ là các Engine trong luồng Animation của VRML. TRong VRML c̣n có một số loại nút khác như LOD, Switch
    2.Các kiểu dữ liệu trong VRML
    Nh­ ®· năi ë phÇn tr­íc, c¸c file VRML bao gåm mét nhăm c¸c nót. C¸c nót nµy că thÓ chøa c¸ nót kh¸c vµ că thÓ chøa c¸c tr­êng. Mçi tr­êng că c¸c kiÓu dư liÖu kh¸c nhau. Sau ®©y lµ m« t¶ cña chóng.
    SFBool
    §©y lµ gi¸ tr̃ boolean ®¬n lÎ, că thÓ nhËn gi¸ tr̃ TRUE or FALSE.
    SFColor & MFColor
    SFColor lµ mét tr­êng chøa mµu ®¬n lÎ, ®­îc t¹o nªn tơ ba sè thùc dÊu chÊm ®éng giưa 0 vµ 1 t­¬ng øng víi c¸c gi¸ tr̃ mµu red, green vµ blue, vƯ dô 0 1 0 lµ green. MFColor lµ mét tr­êng chøa c¸c sè nh©n, vƯ dô [0 1 0, 1 0 0, 0 0 1].
    SFFloat & MFFloat
    SFFloat lµ gi¸ tr̃ dÊu chÊm ®éng ®¬n lÎ, vƯ dô 7.5. MFFloat lµ mét sè c¸c gi¸ tr̃ dÊu chÊm ®éng, vƯ dô [1.0, 3.4, 76.54].
    SFImage
    SFImage lµ h×nh ¶nh hai chỉu hoÆc lµ mµu hoÆc lµ x¸m. Nă bao gåm:

    Hai sè nguyªn, ®¹i diÖn chỉu réng hoÆc chỉu cao cña h×nh ¶nh
    Mét sè nguyªn biÓu th̃ sè thµnh phÇn cña h×nh ¶nh. 1 chØ lµ c¸ møc x¸m, 2 lµ c¸c møc x¸m víi ®é trong suèt, 3 lµ mµu RGB, 4 lµ RGB víi ®é trong suèt.
    Sau ®ă, că c¸c con sè hexa are width * height bao gåm ahi chư sè cho mçi thµnh phÇn. V× vËy 0xFF lµ mµu tr¾ng trong h×nh ¶nh 1- thµnh phÇn vµ 0xFF00007F sÏ lµ nöa mµu ®á trong h×nh ¶nh 4- thµnh phÇn.
    C¸c pixel ®­îc chØ râ tơ tr¸i sang ph¶i, tơ trªn xuèng d­íi.
    SFInt32 & MFInt32
    C¸c sè nguyªn ®¬n lÎ hoÆc chuçi 32 bit că thÓ theo d¹ng thËp ph©n hoÆc hexa. C¸c sè hexa b¾t ®Çu víi 32 bit, vƯ dô 0xFF lµ 255 hÖ thËp ph©n.
    SFNode & MFNode
    SFNode lµ mét nót ®¬n lÎ vµ MFNode lµ danh s¸ch c¸c nót. Tr­êng children víi nhỉu nót lµ kiÓu MFNode.
     
Đang tải...