۳۰-دى-۱۳۸۴, ۰۹:۱۳:۳۰
با سلام امروز ميخوام درباه اين موضوع صحبت كنم .
VRML كه به صورت ((V-R-M-L )) يا (( Vemal) )) تلفظ مي شود ، كلمه اي اختصاري براي Virtual Reality Modeing است. همان طور كه حدس مي زنيد ، VRML چيزي شبيه HTML يا همان Hyper Text Markup Language)) )) است.
HTML براي طراحي يك صفحه دو بعدي و VRML براي ساخت صحنه هاي سه بعدي كه اصطلاحاً به آنها Virtual World گفته مي شود ، به كار مي رود. دقت كنيد كه نتيجه اجراي فايل هاي HTML يك محيط دوبعدي است كه اصطلاح صفحه را براي آن به كار برديم، ولي اجراي فايل هاي VRML توسط مرورگر ، يك فضاي سه بعدي را مي سازد كه اصطلاح صحنه (( Scene )) را برايش به كار گرفتيم.
VRML به نحوي توسعه داده شده كه به HTML وابسته نباشد ، با اين حال در VRML نيز از همان پروتكل ها براي انتقال فايل از طريق اينترنت استفاده شده است. بنابراين هرچيز كه در مورداينترنت وب آموخته ايد، در VRML هم كاربرد خواهد داشت. شما مي توانيد فايل هاي ساخته شده توسط VRML را با مرورگرهاي VRML يا مرورگرهاي معمولي HTML ( مثل INTEMEL Explorer 4 به بالا ) مشاهده كنيد. آدرس ( URL ) فايل هاي VRML شبيه فايل هاي HTML به نظر مي رسند، با اين تفاوت كه پسوند فايل هاي HTML به صورت html . و htm . است ، در حالي كه در فايل هاي VRML ( World files ) از پسوندهاي flr . ، wrz ، wrl . استفاده مي شود. فايل هاي VRML فقط محتوي متن هستند. با اين حال پس از خوانده شدن توسط مرورگرها ، يك محيط كاملاً گرافيكي را مي سازند.
مهمترين نقش VRML اين است كه مشخص كند چگونه يك صحنه سه بعدي در دنياي مجازي ساخته شود. هدف اين بود كه راه حل آساني مثل HTML براي اين كار ارئه شود كه قابليت توسعه نيز داشته باشد. بر همين اساس ، 0 .1 VRML فقط قابليتها و دستورات پايه اي براي پيوند دادن اشياي دنياي مجازي به صحنه ها را شامل مي شد.اگر بخواهيم تخصصي تر بگوييم ، VRML يك ((زبان صحنه پردازي )) است.
تفاوت VRML با HTML در اين است كه مي تواند به مرورگر دستوراتي را در مورد محل قرارگيري اشياء سه بعدي و رنگ آنها بدهد و به طور اساسي اين امكان را فراهم مي كند تا مرورگر (( نقطه ها را به هم متصل كند))در حالي كه HTML فقط گونه هاي ساده متن و تصاوير از پيش ساخته شده را براي ساخت يك صفحه دوبعدي در كنار هم قرار مي دهد.
VRML چه نوع زباني است؟
VRML ، نه يك زبان برنامه نويسي همه منظوره مثل C++ و نه زبان اسكريپت مثل جاوا اسكريپت و نه يك زبان تعريف صفحه مثل HTML است. همان طور كه قبلاً نيز اشاره كرديم ، VRML يك زبان (( صحنه پردازي )) است كه هندسه و رفتار يك صحنه سه بعدي كه اصطلاحاً به آن (( Word)) گفته مي شود را معين مي كند. چه تفاوتهايي بين VRML 1 ، VRML2 است؟ به طور خلاصه صحنه هاي ساخته شده توسط VRML ، ايستا هستند كه اصطلاحاً به آنها (( Static World )) گفته مي شود ، در حالي كه در VRML2 قابليت حركت و نيز ارتباط با كاربر (( Intractive World )) گنجانده شده است. ويژگيها و خصوصيات هريك از اين نسخه ها ، به شرح زير است:
خصوصيات VRML 1.0
• اشياي استاندارد ( مكعب ، كره ، مخروط ، استوانه ، متن )
• اشياي اختياري ( سطوح ، مجموعه خطوط ، نشانگرها )
• قابليتهاي examine scenes , walk through , fly through
• نورپردازي
• دوربين ها ( ديد از زواياي مختلف)
• قرار دادن بافت ( texture ) روي اشياء
• كليك روي پيوندها
• تعريف و استفاده مجدد از اشياء
2.0 VRML علاوه بر خصوصيات 1.0 VRML ويژگيهاي زير را نيز داراست :
• اشياي متحرك
• سويچ ها
• سنسورها
• اسكريپت ها ( جاوا يا جاوا اسكريپت )
• درج شونده ها ( رنگ ، مكان ، جهت و ...)
• رنگ و بافت زمينه
• صورت ( فايل هاي WAV و MIDI )
• بافت هاي متحرك
• Event routing
• تعريف و استفاده مجدد از اشياء و رفتارها ( behaviors ) و تأثير پذيري و اضافه كردن گره هاي جديد به زبان ، با استفاده از PROTO و EXTERNOROTO
مهمترين تفاوت بين اين دو نسخه اين است كه 2.0 VRML تعريف دقيق و پذيرفته شده براي كل دنيا دارد كه توسط مؤسسه جهاني استاندارد به تصويب رسيده است، ( ISO / IEC – 14772 – 1 : 1997 ) در حالي كه VRML 1.0 اين گونه نيست.
اولين خط هر فايل VRML 2.0 با عبارت زير شروع مي شود :
#VRML V2.0 UTF8
ولي اولين خط هر فايل VRML 1.0 با عبارت زير شروع مي شود :
#VRML V 1.0 ascii
بيشتر مرورگرهاي VRML 2.0 مي تواندد فايل هاي VRML 2.0 را نيز خوانده و رندر كنند ولي هيچ كدام از مرورگرهاي مخصوص VRML 1.0 نمي توانند فايل هاي VRML 2.0 را بخوانند.
اجزاء اساسي يك فايل VRML
در اين قسمت به طور خيلي خلاصه به بررسي مفاهيم پايه اي برنامه نويسي VRML مي پردازيم و بدين منظور VRML 2.0 را مورد بررسي قرار مي دهيم. همه فايل هاي VRML با يك هدر شروع مي شوند كه براي 1.0 VRML به صورت زير است :
#VRML V 1.0 ascii
كه فايل را براي خوانده شدن و اجرا به مرورگر معرفي مي كند. اجزاء يا اشياي پايه اي VRML را گره ((node)) مي نامند. سه نوع گره وجود دارد :
(( shape nodes )) كه هندسه اشياء را مشخص مي كند. (( property nodes )) كه چگونگي ترسيم شدن يك شي ء را مشخص مي كند و
(( Grouping nodes )) كه به كمك آنها مي توانيم گروهي از اشياء را به عنوان يك شي ء جديد تعريف كنيم. گره هاي مختلف پس از مرتب شدن در كنار هم يك گراف صحنه (( Scene graph )) را تشكيل مي دهند كه آنها نيز يك VRML world يا همان صحنه را مي سازند.
Shape nodes
* VRML 1 چهار نوع شكل از پيش تعيين شده را پشتيباني مي كند : مكعب ، مخروط ، استوانه و كره .
property nodes
يكي از مهمترين آنها ، Material node است كه رنگ و ظاهر يك شي ء را مشخص مي كند. رنگها بر طبق استاندارد RGB تعريف مي شوند.
Grouping node
مهمترين نوع از اين گره ها ، گره Separator است كه موجب مي شود مجموعه اي از گره ها را بتوان به صورت يك گره واحد در نظر گرفت.
با استفاده از اين اجزاء مي توان برنامه ساده زير را نوشت :
#VRML V 1.0 ascii
Sep arator {
Separator{
Material {
EmissiveColor 100
}
Sphere{ }
}
}
VRML حداقل 36 گره مختلف را شامل مي شود كه هر كدام از آنها نيز بحثها و مثالهاي مخصوص به خود را دارند.
به نظر من مهم اين است كه ابتدا قابليتهاي VRML را ببينيم و اگر واقعاً آن را توانا يافتيم ، به دنبال يادگيري آن برويم. براي آشنايي با قابليتهاي VRML ، مراجعه به سايت دوستانه خودمان يعني 3Dpersia.com را پيشنهاد مي كنم.
VRML كه به صورت ((V-R-M-L )) يا (( Vemal) )) تلفظ مي شود ، كلمه اي اختصاري براي Virtual Reality Modeing است. همان طور كه حدس مي زنيد ، VRML چيزي شبيه HTML يا همان Hyper Text Markup Language)) )) است.
HTML براي طراحي يك صفحه دو بعدي و VRML براي ساخت صحنه هاي سه بعدي كه اصطلاحاً به آنها Virtual World گفته مي شود ، به كار مي رود. دقت كنيد كه نتيجه اجراي فايل هاي HTML يك محيط دوبعدي است كه اصطلاح صفحه را براي آن به كار برديم، ولي اجراي فايل هاي VRML توسط مرورگر ، يك فضاي سه بعدي را مي سازد كه اصطلاح صحنه (( Scene )) را برايش به كار گرفتيم.
VRML به نحوي توسعه داده شده كه به HTML وابسته نباشد ، با اين حال در VRML نيز از همان پروتكل ها براي انتقال فايل از طريق اينترنت استفاده شده است. بنابراين هرچيز كه در مورداينترنت وب آموخته ايد، در VRML هم كاربرد خواهد داشت. شما مي توانيد فايل هاي ساخته شده توسط VRML را با مرورگرهاي VRML يا مرورگرهاي معمولي HTML ( مثل INTEMEL Explorer 4 به بالا ) مشاهده كنيد. آدرس ( URL ) فايل هاي VRML شبيه فايل هاي HTML به نظر مي رسند، با اين تفاوت كه پسوند فايل هاي HTML به صورت html . و htm . است ، در حالي كه در فايل هاي VRML ( World files ) از پسوندهاي flr . ، wrz ، wrl . استفاده مي شود. فايل هاي VRML فقط محتوي متن هستند. با اين حال پس از خوانده شدن توسط مرورگرها ، يك محيط كاملاً گرافيكي را مي سازند.
مهمترين نقش VRML اين است كه مشخص كند چگونه يك صحنه سه بعدي در دنياي مجازي ساخته شود. هدف اين بود كه راه حل آساني مثل HTML براي اين كار ارئه شود كه قابليت توسعه نيز داشته باشد. بر همين اساس ، 0 .1 VRML فقط قابليتها و دستورات پايه اي براي پيوند دادن اشياي دنياي مجازي به صحنه ها را شامل مي شد.اگر بخواهيم تخصصي تر بگوييم ، VRML يك ((زبان صحنه پردازي )) است.
تفاوت VRML با HTML در اين است كه مي تواند به مرورگر دستوراتي را در مورد محل قرارگيري اشياء سه بعدي و رنگ آنها بدهد و به طور اساسي اين امكان را فراهم مي كند تا مرورگر (( نقطه ها را به هم متصل كند))در حالي كه HTML فقط گونه هاي ساده متن و تصاوير از پيش ساخته شده را براي ساخت يك صفحه دوبعدي در كنار هم قرار مي دهد.
VRML چه نوع زباني است؟
VRML ، نه يك زبان برنامه نويسي همه منظوره مثل C++ و نه زبان اسكريپت مثل جاوا اسكريپت و نه يك زبان تعريف صفحه مثل HTML است. همان طور كه قبلاً نيز اشاره كرديم ، VRML يك زبان (( صحنه پردازي )) است كه هندسه و رفتار يك صحنه سه بعدي كه اصطلاحاً به آن (( Word)) گفته مي شود را معين مي كند. چه تفاوتهايي بين VRML 1 ، VRML2 است؟ به طور خلاصه صحنه هاي ساخته شده توسط VRML ، ايستا هستند كه اصطلاحاً به آنها (( Static World )) گفته مي شود ، در حالي كه در VRML2 قابليت حركت و نيز ارتباط با كاربر (( Intractive World )) گنجانده شده است. ويژگيها و خصوصيات هريك از اين نسخه ها ، به شرح زير است:
خصوصيات VRML 1.0
• اشياي استاندارد ( مكعب ، كره ، مخروط ، استوانه ، متن )
• اشياي اختياري ( سطوح ، مجموعه خطوط ، نشانگرها )
• قابليتهاي examine scenes , walk through , fly through
• نورپردازي
• دوربين ها ( ديد از زواياي مختلف)
• قرار دادن بافت ( texture ) روي اشياء
• كليك روي پيوندها
• تعريف و استفاده مجدد از اشياء
2.0 VRML علاوه بر خصوصيات 1.0 VRML ويژگيهاي زير را نيز داراست :
• اشياي متحرك
• سويچ ها
• سنسورها
• اسكريپت ها ( جاوا يا جاوا اسكريپت )
• درج شونده ها ( رنگ ، مكان ، جهت و ...)
• رنگ و بافت زمينه
• صورت ( فايل هاي WAV و MIDI )
• بافت هاي متحرك
• Event routing
• تعريف و استفاده مجدد از اشياء و رفتارها ( behaviors ) و تأثير پذيري و اضافه كردن گره هاي جديد به زبان ، با استفاده از PROTO و EXTERNOROTO
مهمترين تفاوت بين اين دو نسخه اين است كه 2.0 VRML تعريف دقيق و پذيرفته شده براي كل دنيا دارد كه توسط مؤسسه جهاني استاندارد به تصويب رسيده است، ( ISO / IEC – 14772 – 1 : 1997 ) در حالي كه VRML 1.0 اين گونه نيست.
اولين خط هر فايل VRML 2.0 با عبارت زير شروع مي شود :
#VRML V2.0 UTF8
ولي اولين خط هر فايل VRML 1.0 با عبارت زير شروع مي شود :
#VRML V 1.0 ascii
بيشتر مرورگرهاي VRML 2.0 مي تواندد فايل هاي VRML 2.0 را نيز خوانده و رندر كنند ولي هيچ كدام از مرورگرهاي مخصوص VRML 1.0 نمي توانند فايل هاي VRML 2.0 را بخوانند.
اجزاء اساسي يك فايل VRML
در اين قسمت به طور خيلي خلاصه به بررسي مفاهيم پايه اي برنامه نويسي VRML مي پردازيم و بدين منظور VRML 2.0 را مورد بررسي قرار مي دهيم. همه فايل هاي VRML با يك هدر شروع مي شوند كه براي 1.0 VRML به صورت زير است :
#VRML V 1.0 ascii
كه فايل را براي خوانده شدن و اجرا به مرورگر معرفي مي كند. اجزاء يا اشياي پايه اي VRML را گره ((node)) مي نامند. سه نوع گره وجود دارد :
(( shape nodes )) كه هندسه اشياء را مشخص مي كند. (( property nodes )) كه چگونگي ترسيم شدن يك شي ء را مشخص مي كند و
(( Grouping nodes )) كه به كمك آنها مي توانيم گروهي از اشياء را به عنوان يك شي ء جديد تعريف كنيم. گره هاي مختلف پس از مرتب شدن در كنار هم يك گراف صحنه (( Scene graph )) را تشكيل مي دهند كه آنها نيز يك VRML world يا همان صحنه را مي سازند.
Shape nodes
* VRML 1 چهار نوع شكل از پيش تعيين شده را پشتيباني مي كند : مكعب ، مخروط ، استوانه و كره .
property nodes
يكي از مهمترين آنها ، Material node است كه رنگ و ظاهر يك شي ء را مشخص مي كند. رنگها بر طبق استاندارد RGB تعريف مي شوند.
Grouping node
مهمترين نوع از اين گره ها ، گره Separator است كه موجب مي شود مجموعه اي از گره ها را بتوان به صورت يك گره واحد در نظر گرفت.
با استفاده از اين اجزاء مي توان برنامه ساده زير را نوشت :
#VRML V 1.0 ascii
Sep arator {
Separator{
Material {
EmissiveColor 100
}
Sphere{ }
}
}
VRML حداقل 36 گره مختلف را شامل مي شود كه هر كدام از آنها نيز بحثها و مثالهاي مخصوص به خود را دارند.
به نظر من مهم اين است كه ابتدا قابليتهاي VRML را ببينيم و اگر واقعاً آن را توانا يافتيم ، به دنبال يادگيري آن برويم. براي آشنايي با قابليتهاي VRML ، مراجعه به سايت دوستانه خودمان يعني 3Dpersia.com را پيشنهاد مي كنم.