VRML چیست؟
VRMLكلمه ای اختصاری برای Virtual Reality Modeling Language است .همان طور كه حدس می زنید، VRML چیزی شبیه HTML یا همان است .
HTMLبرای طراحی یك صفحه دو بعدی و VRML برای ساخت صحنه های سه بعدی كه اصطلاحا به آنها Virtual World گفته می شود، به كار می رود .دقت كنید كه نتیجه اجرای فایل های HTML یك محیط دو بعدی است كه اصطلاح صفحه را برای آن به كار بردیم ، ولی اجرای فایل های VRML توسط مرورگر، یك فضای سه بعدی را می سازد كه اصطلاح صحنه را برایش به كار گرفتیم .
VRMLبه نحوی توسعه داده شده كه به HTML وابسته نباشد، با این حال در VRML نیز از همان پروتكل ها برای انتقال فایل از طریق اینترنت استفاده شده است .بنابراین هر چیز كه در مورد اینترنت و وب آموخته اید، در VRML هم كاربرد خواهد داشت .شما می توانید فایل های ساخته شده توسط VRML را با مرورگرهای VRML یا مرورگرهای معمولی HTML مثل Internet Explorer 4 به بالا مشاهده كنید .آدرس (URL) فایل های VRML شبیه فایل های HTML به نظر می رسند، با این تفاوت كه پسوند فایل های HTML به صورت .html و .htm است، در حالی كه در فایل های (World files) VRML از پسوندهای.flr ، .wrz و .wrl استفاده می شود.فایل های VRML فقط محتوی متن هستند، با این حال پس از خوانده شدن توسط مرورگرها، یك محیط كاملا گرافیكی را می سازند.
مهمترین نقش VRML1 این است كه مشخص كند چگونه یك صحنه سه بعدی در دنیای مجازی ساخته شود. هدف این بود كه راه حلی آسان مثل HTML برای این كار ارائه شود كه قابلیت توسعه نیز داشته باشد .بر همین اساس ،VRML 1.0 فقط قابلیتها و دستورات پایه ای برای پیوند دادن اشیای دنیای مجازی به صحنه ها را شامل می شد .اگر بخواهیم تخصصی تر بگوییم ،VRML یك زبان صحنه پردازی است .
تفاوت VRML با HTML در این است كه می تواند به مرورگر دستوراتی را در مورد محل قرار گیری اشیاء سه بعدی و رنگ آنها بدهد و به طور اساسی این امكان را فراهم می كند تا مرورگر نقطه ها را به هم متصل كند.در حالی كه HTML فقط گونه های ساده متن و تصاویر از پیش ساخته شده را برای ساخت یك صفحه دو بعدی در كنار هم قرار می دهد .
VRMLچه نوع زبانی است
VRML نه یك زبان برنامه نویسی همه منظوره مثل C++ و نه زبان اسكریپت مثل جاوا اسكریپت و نه یك زبان تعریف صفحه مثل HTML است .همان طور كه قبلا نیز اشاره كردم ، VRML یك زبان صحنه پردازی است كه هندسه و رفتار یك صحنه سه بعدی كه اصطلاحا به آن گفته می شود را معین می كند .
چه تفاوتهایی بینVRML1 ، VRML2 است ‚ به طور خلاصه صحنه های ساخته شده توسطVRML1 ، ایستا هستند كه اصطلاحا به آنها گفته می شود، در حالی كه در VRML2 قابلیت حركت و نیز ارتباط با كاربر گنجانده شده است. ویژگیها و خصوصیات هر یك از این نسخه ها، به شرح زیر است :
خصوصیاتVRML 1.0
اشیای استاندارد مكعب ، كره ، مخروط، استوانه ، متن
اشیای اختیاری سطوح ، مجموعه خطوط، نشانگرها
قابلیتهایfly through ،walk through ،examine scenes
نورپردازی
دوربین ها دید از زوایای مختلف
قرار دادن بافت (texture) روی اشیاء
كلیك روی پیوندها
تعریف و استفاده مجدد از اشیاء
VRML 2.0علاوه بر خصوصیات VRML 1.0 ویژگیهای زیر را نیز داراست :
اشیای متحرك
سویچ ها
سنسورها
اسكریپت ها جاوا یا جاوا اسكریپت
درج شونده ها رنگ ، مكان ، جهت و...
رنگ و بافت زمینه
صوت فایل های WAV وMIDI
بافت های متحرك
Event routing
تعریف و استفاده مجدد از اشیاء و رفتارها (behaviors) و تاثیرپذیری و اضافه كردن گره های جدید به زبان ، با استفاده از PROTO وEXTERNPROTO
مهمترین تفاوت بین این دو نسخه این است كه VRML 2.0 تعریف دقیق و پذیرفته شده برای كل دنیا دارد كه توسط موسسه جهانی استاندارد به تصویب رسیده است ، (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 1.0 را نیز خوانده و رندر كنند ولی هیچ كدام از مرورگرهای مخصوص VRML 1.0 نمی توانند فایل های VRML 2.0 را بخوانند .
اجزاء اساسی یك فایل VRML
همه فایل های VRML با یك هدر شروع می شوند كه برای VRML 1.0 به صورت زیر است :
#VRML V 1.0 ascii
كه فایل را برای خوانده شدن و اجرا به مرورگر معرفی می كند .اجزاء یا اشیای پایه ای VRML را گره می نامند .سه نوع گره وجود دارد :كه هندسه اشیاء را مشخص می كند، كه چگونگی ترسیم شدن یك شی ء را مشخص می كند و كه به كمك آنها می توانیم گروهی از اشیاء را به عنوان یك شی ء جدید تعریف كنیم .گره های مختلف پس از مرتب شدن در كنار هم یك گراف صحنه را تشكیل می دهند كه آنها نیز یك VRML World یا همان صحنه را می سازند.
shape nodes
VRML 1 چهار نوع شكل از پیش تعریف شده را پشتیبانی می كند :مكعب ، مخروط ، استوانه و كره .
Property nodes
یكی از مهمترین آنها، Material node است كه رنگ و ظاهر یك شی ء را مشخص می كند .رنگها بر طبق استاندارد RGB تعریف می شوند .
Grouping nodes
مهمترین نوع از این گره ها، گره Separator است كه موجب می شود مجموعه ای از گره ها را بتوان به صورت یك گره واحد در نظر گرفت .
با استفاده از این اجزاء می توان برنامه ساده زیر را نوشت:
#VRML V 1.0 ascii
Separator{
Separator{
Material{
emissiveColor 100{
Sphere{}
{
{
VRMLحداقل 36 گره مختلف را شامل می شود كه هر كدام از آنها نیز بحثها و مثالهای مخصوص به خود را دارند .