آشنایی با تکنولوژی WebGL در طراحی

WebGL به زبان ساده، تکنولوژی برای کشیدن، به نمایش در آرودن و تعامل سطح بالا و پیشرفته با گرافیک سه بعدی کامپیوتری از طریق مرورگرهای وب است. پیش از این، گرافیک سه بعدی تنها محدود به کامپیوترهای سطح بالا و قوی یا کنسول های بازی بود و نیاز به برنامه نویسی پیچیده ای داشت. اما امروزه با پیشرفته تر شدن کامپیوترهای شخصی و web browser ها، نمایش گرافیک سه بعدی از طریق تکنولوژی های مدرن و شناخته شده ی وب، امکان پذیر شده است.

 


WebGL هنگامی که با HTML5 و javaScript ترکیب می شود، گرافیک سه بعدی را از طریق web browser به کاربر نمایش می دهد. این تکنولوژی بدون شک نقش بسیار مهمی را user interface های نسل بعدی وب بازی خواهد کرد و طی سال های آینده می توان انتظار داشت که بیشتر از این تکنولوژی در وسایل الکترونیکی از جمله تلفن های هوشمند، تبلت ها و کامپیوترها (و در کل وسایلی که از web browser استفاده می کنند) به منظور به کار بردن گرافیک سه بعدی و بازی سازی استفاده شود.

HTML5 که آخرین نسخه از HTML است، با ویژگی هایی مثل ۲D graphics، networking و local storage access موجب گسترش و پیشرفته تر شدن HTML سنتی شده و با ظهور HTML5 مرورگرها به سرعت در حال تحول هستند و دیگر به جای این که تنها یک صفحه ی ساده ی نمایش اطلاعات باشند، به پلتفرم های پیشرفته ای تبدیل شده اند. این تکامل به interface و قابلیت های گرافیکی فراتر از دو بعد نیازمند است و WebGL نیز برای همین منظور طراحی شده تا ساخت application های سه بعدی تحت وب را فراهم کند.

به دلیل این که WebGL به صورت پیش فرض یک تکنولوژی built-in در مرورگرهای مدرن است، شما می توانید مستقیماً و بدون نیاز به هیچ plugin یا library از WebGL استفاده کنید و نتایج آن را در مرورگر خود ببینید. جالب ترین نکته ی WebGL این جاست که این تکنولوژی، تحت وب است و بر روی مرورگر اجرا می شود. این بدان معناست که تنها به یک چیز برای اجرای برنامه های WebGL نیاز دارید و آن نیز یک مرورگر است. دیگر مهم نیست که این مرورگر روی تبلت، تلفن هوشمند، کامپیوتر شخصی یا کنسول بازی شما باشد. از طرف دیگر شما به هیچگونه کامپایلری برای تولید گرافیک سه بعدی نیاز ندارید و تنها ابزار شما برای کدنویسی WebGL می تواند یک text editor ساده مثل notepad باشد. پیش از این، گرافیک های سه بعدی از طریق زبان های برنامه نویسی مثل C یا ++C نوشته شده و سپس به باینری های قابل اجرا مخصوص یک پلتفرم، کامپایل می شدند. یعنی نسخه ی Macintosh یک برنامه سه بعدی بر روی Windows یا Linux قابل اجرا نبود. به علاوه اینکه، کاربرها علاوه بر نصب خود برنامه، نیاز داشتند که library های استفاده شده در برنامه را نصب کنند تا برنامه در نهایت اجرا شود. این*کار باعث می شود تا به سختی بتوانید برنامه ها و بازی های خود را با دیگران به اشتراک بگذارید. اما اکنون به دلیل این که WebGL تشکیل شده از فایل های HTML و javaScript است، شما به راحتی می توانید برنامه های خود را با دیگران به اشتراک بگذارید و برای این کار تنها کافی است فایلهای برنامه را به روی یک host و domain آپلود کنید و فقط آدرس را به دیگران بدهید تا بازی یا برنامه شما را ببینند. برای مثال، می توانید از این آدرس چند برنامه WebGL که توسط گوگل انتشار یافته است را مشاهده کنید.

مشخصات WebGL بر اساس OpenGL است که سال هاست به طور گسترده در گرافیک، بازی های کامپیوتری و CAD applications استفاده می شود. در یک جمله می توان گفت که ” WebGL همان OpenGL تحت وب است” و از آن جا که OpenGL حدود بیست سال در تولید برنامه های مختلف استفاده شده، می توانید منابع و کتاب های بسیاری را در این مورد پیدا کنید که به درک بهتر WebGL کمک می*کند.

دو مورد از پر استفاده ترین تکنولوژی های نمایش گرافیک سه بعدی در کامپیوترهای شخصی، OpenGL و Direct3D هستند. Direct3D که بخشی از تکنولوژی DirectX مایکروسافت است، عمدتاً در پلتفرم ویندوز استفاده می شود و یک API اختصاصی است که تحت کنترل مایکروسافت است. از طرف دیگر، OpenGL به دلیل داشتن ماهیت royalty-free در پلتفرم های مختلفی مثل Windows، Macintosh، Linux و device های مختلفی چون smart phones و tablet و کنسول های بازی، مورد استفاده قرار می گیرد.

OpenGL در ابتدا توسط Silicon Graphics توسعه یافت و در سال ۱۹۹۲ به صورت open standard منتشر شد. OpenGL تاکنون پیوسته در حال تکامل و پیشرفت بوده و حتی در تولید فیلم نیز از آن استفاده شده است. اکنون آخرین نسخه از OpenGL نسخه*ی ۴٫۳ برای desktop PC است. WebGL در واقعه از نسخه ی OpenGL ES 2.0 که برای embedded computers بهینه سازی شده بود، مشتق شده است.

تصویر زیر ارتباط بین OpenGL و OpenGL ES و WebGL را نشان می‌دهد:

همان‌طور که در تصویر بالا می‌بینید، با انتشار OpenGL 2.0 یک قابلیت جدید و مهم به نام programmable shader functions معرفی شد. این قابلیت به OpenGL ES 2.0 انتقال یافت و اکنون جزو بخش هسته‌ای WebGL 1.0 است.

shader functions یا shader برنامه‌های کامپیوتری هستند که امکان ساختن برنامه‌هایی با جلوه‌های بصری پیشرفته توسط یک زبان برنامه‌نویسی خاص (متشابه با زبان C)، را فراهم می‌سازند. زبان برنامه‌نویسی که برای ساخت shaders  مورد استفاده قرار می‌گیرد، shading language نامیده می‌شود. shading language مورد استفاده در OpenGL ES 2.0 بر اساس (OpenGL shading language (GLSL است که (OpenGL ES shading language (GLSL ES نیز نامیده می‌شود. به‌دلیل این‌که WebGL بر اساس OpenGL ES 2.0 است، از این‌رو برای ساخت shaders از GLSL ES استفاده می‌کند.

اکنون گروه Khronos مسئول تکامل بخشیدن و استاندارد کردن OpenGL است. این گروه در سال ۲۰۰۹ گروه کاری WebGL را راه انداخت و شروع به استاندارد کردن و توسعه دادن WebGL براساس OpenGL ES 2.0 کرد و اولین نسخه‌ی WebGL را در سال ۲۰۰۹ انتشار داد.

در HTML، صفحه‌های dynamic بر اساس ترکیب javaScript و HTML (صرف نظر از کد server-side) ساخته می‌شوند. با معرفی WebGL، می‌بایست GLSL ES نیز به آن دو اضافه شود. این بدین معناست، صفحاتی که شامل WebGL هستند از سه زبان HTML5، javaScript و GLSL ES استفاده می‌کنند.

در تصویر زیر، معماری نرم‌افزار web page های قدیمی و web page هایی که اکنون از WebGL استفاده می‌کنند را می‌بینید:

از آن‌جا که GLSL ES عموماً در خود javaScript نوشته می‌شود، برای تولید اپلیکیشن‌های WebGL فقط به فایل‌های HTML و javaScript نیاز است.بدین خاطر مهم ترین مزایای Web GL در ادامه تشریح شده اند :

به اجرا در آوردن Task ها

ایجاد و ساخت وب سایت و به اجرا درآوردن task ها در Web GL به طریقی می باشد که در بعضی از فناوری های  دیگر  قابلیت انجام ندارد ، و یا  در بعضی از آنها به اجرا درآوردن اینچنین task هایی  خیلی مشکل و طاقت فرسا و وقت گیر می باشد،

مثل نورپردازی  و ویرایش ها و تاثیرات در SVG.

- مقایسه کاراییWebGL

بطور غیر قابل باوری سرعت بالایی دارد و به طور صحیح از توانایی سخت افزاری رایانه مخاطب استفاده خواهد کرد. همین خصیصه WebGL موجب شده است که برای سخت و ایجاد وب سایت ها و  گیم ها و افکت های دیداری بسیار مناسب باشد. ایجاد و ساخت WebGL  برای برخوردار بودن از کارایی بالا ساخته شده است و در خیلی از مورد ها گارایی آن از تکنولوژی های دیگر فراتر است.

- Shader

برنامه های کاربردی WebGL این امکان را دارند که  از برنامه ها و اپلیکیشن های ریزی که به نام Shaders به کار می روند (برنامه های ریزی که برای ساخت  و طراحی افکت های بخصوص به کار می روند) برای ساخت افکت های مشکل به کار می روند.با یک shader خیلی راحت ممکن است

که این امکان را داشته باشیم که یک جلوه ویژه  رنگی sepia  را ساخت ولی در اجرای یک ساخت وب سایت مشکل می توان افکت هایی مثل آب یاآتش را مشابه سازی کرد. این امکان وجود دارد که برنامه نویسان با سابقه به این نکته یادآور شوند که تا زمان حاضر کوشش های فراوانی برای وارد شدن فناوری های ۳ بعدی به مرورگرهای اینترنت انجام گرفته شده و  همه آنها نیز در حال حاضر فراموش شده اند.

 

 چرا WebGL بیان شده است تا بماند :

۱.  نکته اول اینکه WebGL  بر پایه ی OpenGL می باشد که  OpenGL به عنوان یک فریم ورک برای  ساخت برنامه های کاربردی ۳ بعدی به دنیا شناسانده شده است که تا امروز آزمون خودشان را به طور علی ای پس داده اند.

۲.  هنگام تولید WebGL در همان زمان با  ترقی هایی در کارایی مرورگرهای اینترنت، بالارفتن سرعت رایانه ها و آشکارشدن انقلابی javascript

۳.  اختلاط پذیری : WebGl این امکان را دارد با دیگر فناوری هایزیر نظر طراحی  و ساخت وب سایت  مخلوط شود.

۴ . Web GL این توانایی را دارد که بر روی خیلی از پلتفرم های متمایز (لینوکس،ویندوز،مکینتاش و . . . ) و انواع مختلف مرور گرهای اینترنت اجرا شود.