sabalangraphic
کار بر متخصص افتر افکتز
با سلام خدمت دوستان گرامی،چند جا دیدم بعضی از دوستان در رابطه با Open Gl و نحوه کار و وظیفش داخل افتر افکت مشکلات و ابهاماتی داشتند،گفتم شاید مطلب زیر به دردتون بخوره،امیدوارم خوشتون بیاد
Open Glچیست؟
در اوایل پیدایش OpenGL، از این API در کارهای صنعتی، طراحی وسایل داخلی، مکانیکی و نیز در آنالیزهای علمی و آماری استفاده میشد.
در سال 1996، نویسندگان و توسعهدهندگان بازیهای کامپیوتری از نسخه ویندوزی OpenGL برای ساخت بازیهای کامپیوتری استفاده کردند. OpenGL برای پشتیبانی از گستره وسیعی از تکنیکهای رندرکردن گرافیکی پیشرفته طراحی شده است که میتوان پارهای از آنها را به اینصورت نام برد:
نورپردازی: قابلیت تحلیل میزان رنگ هنگام تابش مدلهای متفاوت نور به یک سطح از یک یا چند منبع نور مختلف.
سایهسازی نرم: قابلیت تحلیل افکتهای سایه هنگام تابش نور به یک زاویه و ایجاد اختلاف نور خفیف در مقابل آن سطح (مانند نور کمی که هنگام تابش آفتاب به یک صخره یخی در اطراف آن ایجاد میشود).
حرکت محو ومدلسازی: توانایی تغییر مکان و اندازه پرسپکتیو یک شی در فضای سه بعدی.
مجموعه امکانات OpenGL شبیه Direct 3D است. ولی API سطح پایینتر آن (نزدیکتر به سطح سختافزار) باعث میشود کنترل خوبی روی عناصر اصلی ایجاد صحنههای سه بعدی مانند اطلاعات سهضلعیها که سلولهای تشکیلدهنده یک مدل سه بعدی هستند داشته باشد.
دو سطح پشتیبانی از شتابدهندگی سختافزاری برای OpenGL وجود دارد: Installing Client Driver) ICDs) که به نوردهی ایجاد تغییر و رسترکردن (تبدیل یک فریم سه بعدی چند ضلعی ذخیره شده درFrame Buffer به یک تصویر کامل با بافتها و نشانههای عمق و نور) شتاب میدهد و mini client server) MCs) که از رسترکردن پشتیبانی میکند.
OpenGL 1.4 و OpenGL 1.5 بهترتیب در تابستان 2002 و 2003 معرفی شدند که هر یک امکانات و کاربردهای بیشتری از نسخههای پیش از خود داشتند. بزرگترین آنها OpenGL Shading Language بود؛ زبانی ویژه برنامهنویسی Vertex Shader و Pixel Shader که در صورت نیاز به OpenGL الصاق میشد.
OpenGL Shading Language زبانی شد که به سرعت در سطح گستردهای مورد پشتیبانی یونیکس، ویندوز، لینوکس و دیگر سیستمعاملها برای توسعهدهنده گرافیکهای تعاملی و برنامههای کاربردی ترسیمی قرار گرفت.
OpenGL 2.0
OpenGL 2.0 آخرین نسخه عرضه شده تا اوایل سال 2006 میلادی است. OpenGL Shader Language همراه با این نسخه عرضه شده و بر پایه استاندارد ANSYC طراحی شده است. برخی قابلیتهای تازه این نسخه عبارتند از:
- سایهزنی قابل برنامهریزی بهوسیله OpenGL Shader Language و APIهای آن. قدرت ایجاد Shader و برنامهنویسی اشیا، بخش دیگری از تغییرات ایجاد شده در این نسخه است.
- رندر چندگانه که به shader های قابل برنامهنویسی امکان میدهد در بافرهای خروجی چندگانه در یک گذر مقادیر مختلفی بنویسند.
- بافتهای دو طرفه، با قابلیت تعریف کاربرد آن بافت برای سطح جلو و پشت یک مدل اولیه که کیفیت حجم سایه و کارایی الگویمهای رندر هندسی اشیای سخت را ارتقا میدهد.
- Sprite های نقطه که مختصات بافت یک نقطه را با مختصات بافت قرار داده شده در مقابل آن نقطه جابهجا میکنند و رسم نقاط را در بافتهای طراحی شده در کامپیوترهای معمولی نیز ممکن میسازند.
- بافتهای Non-power-of-two که برای همه انواع بافت کاربرد دارد که در نتیجه از بافتهای چهارگوش پشتیبانی مینماید و درعمل حافظه کمتری اشغال میکند.
OpenAL
OpenAL، یک API دیگر است که برای ایجاد و مدیریت صداهای سه بعدی در بازیهای کامپیوتری و دیگر انواع نرمافزارها به صورت یک پروژه مشترک میان شرکت Loki Software و Creative ساخته شده است.
کتابخانه این API مجموعهای از صداهای قابل حرکت در فضای سهبعدی را مدلسازی میکند. عناصر اصلی OpenAL شامل یک شنونده، یک منبع و یک بافر است. ممکن است تعداد زیادی بافر وجود داشته باشد که شامل دادههای صوتی هستند. هر بافر میتواند به یک یا چند منبع ضمیمه شود. همیشه یک عنصر شنونده (برای محتوای صوتی) وجود دارد که موقعیت مکانی منبع صوتی که صدای آن شنیده میشود را نشان میدهد. OpenAL در موتورهای گرافیکی Epic Games Unreal نیز برای ساخت افکتهای صوتی به کار میرود.
OpenGL Performer
OpenGL Performer، رابط برنامهنویسی قدرتمند و کاملی است که توسعهدهندگان برای شبیهسازی بصری از آن استفاده میکنند. ابزارهای موجود در آن، توسعه برنامههای شبیهسازی بصری، طراحی بر اساس شبیهسازی، واقعیت مجازی، نرمافزارهای علمی، سرگرمیهای تعاملی، برنامههای ویدیویی و طراحی با کامپیوتر را آسان میکند. این رابط برنامهنویسی به برنامهنویسان امکان میدهد از قابلیتهای سیستم به صورت بهینه استفاده کنند. آخرین نسخه این نرمافزار OpenGL Performer 3.2 است.
OpenGL Volumizer
OpenGL Volumizer، یک API گرافیکی است که در بخشهای انرژی، تولید، داروسازی و تجارت کاربرد دارد. این API برای انجام کارهای تعاملی با کیفیت بالا و بصری نمودن و شبیهسازی یک محیط با استفاده از مجموعه بزرگی از دادههای حجمی (دادههایی که مختصات یک شی در فضای سه بعدی را نشان میدهند) طراحی شده است. برای نمونه در نرمافزارهای پزشکی برای شبیهسازی وضعیت بخش خاصی از بدن، از این نرمافزار استفاده میشود. OpenGL Volumizer آخرین نسخه این API تا اوایل سال 2006 میلادی است که بر پایه کتابخانه گرافیکی استاندارد OpenGL ساخته شده و شامل رابط کلاس ++C و قابلاستفاده در سیستمعاملهای ویندوز و لینوکس 32بیتی و 64بیتی است.
OpenGL Multipipe SDK
OpenGL Multipipe SDK یک لایه API است که مدیریت برنامههای گرافیکی را در زیر سیستمها و ساختارهای گرافیکی چندگانه آسان میکند. برنامههای کاربردی نوشته شده برپایه این API به نرمی و روانی، هم روی سیستمهای رومیزی تک پردازندهای و هم روی سیستمهای چند پردازندهای با سیستمهای گرافیکی قدرتمند اجرا میشوند.
همانگونه که بیان شد ارتباط بین برنامهها و سختافزاری که آنرا اجرا میکند برعهده API (رابط برنامه کاربردي) است. سازندگان بزرگ نرمافزار و سختافزار API خاصی را برای برنامههای مالتیمدیا آماده کردهاند که مطرح ترین آنها DirectX و OpenGL هستند.
Open Glچیست؟
در اوایل پیدایش OpenGL، از این API در کارهای صنعتی، طراحی وسایل داخلی، مکانیکی و نیز در آنالیزهای علمی و آماری استفاده میشد.
در سال 1996، نویسندگان و توسعهدهندگان بازیهای کامپیوتری از نسخه ویندوزی OpenGL برای ساخت بازیهای کامپیوتری استفاده کردند. OpenGL برای پشتیبانی از گستره وسیعی از تکنیکهای رندرکردن گرافیکی پیشرفته طراحی شده است که میتوان پارهای از آنها را به اینصورت نام برد:
نورپردازی: قابلیت تحلیل میزان رنگ هنگام تابش مدلهای متفاوت نور به یک سطح از یک یا چند منبع نور مختلف.
سایهسازی نرم: قابلیت تحلیل افکتهای سایه هنگام تابش نور به یک زاویه و ایجاد اختلاف نور خفیف در مقابل آن سطح (مانند نور کمی که هنگام تابش آفتاب به یک صخره یخی در اطراف آن ایجاد میشود).
حرکت محو ومدلسازی: توانایی تغییر مکان و اندازه پرسپکتیو یک شی در فضای سه بعدی.
مجموعه امکانات OpenGL شبیه Direct 3D است. ولی API سطح پایینتر آن (نزدیکتر به سطح سختافزار) باعث میشود کنترل خوبی روی عناصر اصلی ایجاد صحنههای سه بعدی مانند اطلاعات سهضلعیها که سلولهای تشکیلدهنده یک مدل سه بعدی هستند داشته باشد.
OpenGL 1.4 و OpenGL 1.5 بهترتیب در تابستان 2002 و 2003 معرفی شدند که هر یک امکانات و کاربردهای بیشتری از نسخههای پیش از خود داشتند. بزرگترین آنها OpenGL Shading Language بود؛ زبانی ویژه برنامهنویسی Vertex Shader و Pixel Shader که در صورت نیاز به OpenGL الصاق میشد.
OpenGL Shading Language زبانی شد که به سرعت در سطح گستردهای مورد پشتیبانی یونیکس، ویندوز، لینوکس و دیگر سیستمعاملها برای توسعهدهنده گرافیکهای تعاملی و برنامههای کاربردی ترسیمی قرار گرفت.
OpenGL 2.0
OpenGL 2.0 آخرین نسخه عرضه شده تا اوایل سال 2006 میلادی است. OpenGL Shader Language همراه با این نسخه عرضه شده و بر پایه استاندارد ANSYC طراحی شده است. برخی قابلیتهای تازه این نسخه عبارتند از:
- سایهزنی قابل برنامهریزی بهوسیله OpenGL Shader Language و APIهای آن. قدرت ایجاد Shader و برنامهنویسی اشیا، بخش دیگری از تغییرات ایجاد شده در این نسخه است.
- رندر چندگانه که به shader های قابل برنامهنویسی امکان میدهد در بافرهای خروجی چندگانه در یک گذر مقادیر مختلفی بنویسند.
- بافتهای دو طرفه، با قابلیت تعریف کاربرد آن بافت برای سطح جلو و پشت یک مدل اولیه که کیفیت حجم سایه و کارایی الگویمهای رندر هندسی اشیای سخت را ارتقا میدهد.
- Sprite های نقطه که مختصات بافت یک نقطه را با مختصات بافت قرار داده شده در مقابل آن نقطه جابهجا میکنند و رسم نقاط را در بافتهای طراحی شده در کامپیوترهای معمولی نیز ممکن میسازند.
- بافتهای Non-power-of-two که برای همه انواع بافت کاربرد دارد که در نتیجه از بافتهای چهارگوش پشتیبانی مینماید و درعمل حافظه کمتری اشغال میکند.
OpenAL
OpenAL، یک API دیگر است که برای ایجاد و مدیریت صداهای سه بعدی در بازیهای کامپیوتری و دیگر انواع نرمافزارها به صورت یک پروژه مشترک میان شرکت Loki Software و Creative ساخته شده است.
کتابخانه این API مجموعهای از صداهای قابل حرکت در فضای سهبعدی را مدلسازی میکند. عناصر اصلی OpenAL شامل یک شنونده، یک منبع و یک بافر است. ممکن است تعداد زیادی بافر وجود داشته باشد که شامل دادههای صوتی هستند. هر بافر میتواند به یک یا چند منبع ضمیمه شود. همیشه یک عنصر شنونده (برای محتوای صوتی) وجود دارد که موقعیت مکانی منبع صوتی که صدای آن شنیده میشود را نشان میدهد. OpenAL در موتورهای گرافیکی Epic Games Unreal نیز برای ساخت افکتهای صوتی به کار میرود.
OpenGL Performer
OpenGL Performer، رابط برنامهنویسی قدرتمند و کاملی است که توسعهدهندگان برای شبیهسازی بصری از آن استفاده میکنند. ابزارهای موجود در آن، توسعه برنامههای شبیهسازی بصری، طراحی بر اساس شبیهسازی، واقعیت مجازی، نرمافزارهای علمی، سرگرمیهای تعاملی، برنامههای ویدیویی و طراحی با کامپیوتر را آسان میکند. این رابط برنامهنویسی به برنامهنویسان امکان میدهد از قابلیتهای سیستم به صورت بهینه استفاده کنند. آخرین نسخه این نرمافزار OpenGL Performer 3.2 است.
OpenGL Volumizer
OpenGL Volumizer، یک API گرافیکی است که در بخشهای انرژی، تولید، داروسازی و تجارت کاربرد دارد. این API برای انجام کارهای تعاملی با کیفیت بالا و بصری نمودن و شبیهسازی یک محیط با استفاده از مجموعه بزرگی از دادههای حجمی (دادههایی که مختصات یک شی در فضای سه بعدی را نشان میدهند) طراحی شده است. برای نمونه در نرمافزارهای پزشکی برای شبیهسازی وضعیت بخش خاصی از بدن، از این نرمافزار استفاده میشود. OpenGL Volumizer آخرین نسخه این API تا اوایل سال 2006 میلادی است که بر پایه کتابخانه گرافیکی استاندارد OpenGL ساخته شده و شامل رابط کلاس ++C و قابلاستفاده در سیستمعاملهای ویندوز و لینوکس 32بیتی و 64بیتی است.
OpenGL Multipipe SDK
OpenGL Multipipe SDK یک لایه API است که مدیریت برنامههای گرافیکی را در زیر سیستمها و ساختارهای گرافیکی چندگانه آسان میکند. برنامههای کاربردی نوشته شده برپایه این API به نرمی و روانی، هم روی سیستمهای رومیزی تک پردازندهای و هم روی سیستمهای چند پردازندهای با سیستمهای گرافیکی قدرتمند اجرا میشوند.
همانگونه که بیان شد ارتباط بین برنامهها و سختافزاری که آنرا اجرا میکند برعهده API (رابط برنامه کاربردي) است. سازندگان بزرگ نرمافزار و سختافزار API خاصی را برای برنامههای مالتیمدیا آماده کردهاند که مطرح ترین آنها DirectX و OpenGL هستند.