تبليغاتX
OpenGL & Computer graphics

Chapter3

طراحي در فضا : اشكال اوليه هندسي و بافرها

 

آنچه در اين فصل خواهيد آموخت:

 

 

كاري كه تابع انجام ميدهد

 

 

تابع

كشيدن نقاط و خطوط و اشكال

 

GlBegin/glEnd/glVertex

اشكال را به صورت سيمي

 wire frameيا جامد

 solidدر مي آورد

 

GlPolygonMode

اندازه نقاط را براي طراحي معين ميكند

 

GlPointSize

پهناي خط كشيده شده را مشخص ميكند

 

GlLineWidth

سطوح مخفي را پاك ميكند

 

GlCullFace/glClear

الگويي را براي خطوط شكسته معين ميكند

 

GlLineStipple

الگوي پر كردن چند ضلعي ها

polygon را معين ميكند

 

GlPolygonStipple

استفاده از جعبه تقسيم

scissor در openGL

 

GlScissor

استفاده از بافر براي الگو برداري

 

GlStencilFunc/glStencilMask/glStencilOp

 

همانطور كه ميدانيد تمام اشكال موجود در دنيا از كتاب و ساختمان گرفته تا همين كامپيوتر را ميتوان به كمك مثلثهايي طراحي كرد . در كار با نرم افزار هاي سه بعدي هم شما تمام اشيا را بوسيله ي چند ضلعي هاي پايه كه به اصطلاح به آنها primitive ميگويند ميسازيد . در كار با openGL هم از اين قاعده استفاده ميكنيم.

تمام چند ضلعي ها يك بعدي (مانند خطوط) يا دو بعدي هستند (مثل اشكال پايه).در اين بخش ياد ميگيريد كه چطور از اين اشياي دو بعدي صحنه هاي سه بعدي درست كنيد.

 

برای مطالعه کل مطلب بر روی ادامه مطلب کلیک نمایید.

 

 


ادامه مطلب
+ نوشته شده توسط ( ساسان و محمد ) در چهارشنبه بیست و پنجم مرداد 1385 و ساعت |

با سلام خدمت دوستان و همراهان وبلاگ اوپن جی ال و گرافیک کامپیوتری

 

مطلبی را که امروز در وبلاگ قرار دادم به همت دوست عزیزمان آقای محمد عباسی تهیه و تنظیم شده است. ضمن تشکر فراوان از این دوست عزیز مقاله ایشان را با هم میخوانیم

 

 

Open GL را بهتر بشناسيم

اين مقاله رو قبلا تو مجله عصر شبكه خونده بودم.

در اين مقاله تصميم دارم شما را با يكي از مهمترين ابزارهايي كه در اختيار برنامه نويسان بازيهاي كامپيوتري قرار دارد آشنا كنم.اين ابزار openGL نام دارد .ابزاري پيچيده و در عين حال انعطاف پذير كه به برنامه نويسان اجازه ميدهد فضاهاي سه بعدي را به كمك برنامه نويسي و سخت افزار مناسب به تصوير بكشند.

 

مقايسه open gl و direct x توسط سرپرست تيم برنامه نويسي بازيهاي دوم و quake:

دو نوع كتابخانه استاندارد 3d تحت win32 وجود دارد .

1)  direct 32 immediate mode

2) Open GL

 

برای مطالعه کل مطلب بر روی ادامه مطلب کلیک نمایید.

 

 


ادامه مطلب
+ نوشته شده توسط ( ساسان و محمد ) در دوشنبه شانزدهم مرداد 1385 و ساعت |

با عرض سلام خدمت دوستان و همراهان وبلاگ OpenGL و گرافیک کامپیوتری :

 

این هم از دومین و آخرین قسمت از مقاله شناسایی انواع نور در گرافیک کامپیوتری و سه بعدی که امروز به شما دوستان تقدیم میکنم. امیدوارم مفید بوده باشد. با نظرات خود در هر چه بهتر شدن مطالب وبلاگ بکوشید.

 

نورهای جهت دار یا هدایت شونده "Directional Lights" :

 

یک نور جهت دار "directional light" بطور خاص برای شبیه سازی نور مستقیم خورشید مفید است. این نور همچنین با نامهای فاصله "distant" یا مستقیم "direct" یا نامحدود "infinite" و یا نور خورشید "sun light" در برنامه های مختلف نیز شناخته میشود. آیکون های مختلف این نوع از نور را در برنامه های مختلف در تصویر 8 ببینید.

 

تصویر شماره 8

 

برای مطالعه کل مطلب بر روی ادامه مطلب کلیک نمایید.


ادامه مطلب
+ نوشته شده توسط ( ساسان و محمد ) در جمعه سیزدهم مرداد 1385 و ساعت |

با سلام خدمت دوستان و خوانندگان وبلاگ اوپن جی ال و گرافیک کامپیوتری:

 

به علت اینکه مدتی است که کلیه مطالب و مقالاتمان به موضوعاتی چون اوپن جی ال و یا محیط های برنامه نویسی میپردازد تصمیم گرفتم که این بار مطلبی در مورد انواع نور در گرافیک کامپیوتری برای شما دوستان مهیا کنم تا هم تنوعی باشد و هم راه و رسم وبلاگ را بطور کامل بجا آورده باشم. چون این وبلاگ به اوپن جی ال و گرافیک کامپیوتری (هر دوی این مقولات) تعلق دارد. مطلبی که در پیش دارید در دو قسمت تنظیم شده که امروز قسمت اول آن را تقدیم شما دوستان میکنم. امیدوارم که من را از نظرات خود محروم نکنید.

 

شناسایی انواع نور در گرافیک کامپیوتری و سه بعدی قسمت اول

 

انواع نور:

 

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

 

نورهای نقطه ای :

 

اولین نوع از نورهایی که در اینجا بررسی میکنیم نور نقطه ای "Point Lights" میباشد که با نامهای "omni or omni directional " نیز شناخته میشود. این نوع از نور ساده ترین نوع نوری است که میتوان از آن در صحنه های سه بعدی استفاده کرد همانطور که در تصویر 1معلوم است یک منبع نور نقطه ای نور را بطور یکنواخت و در تمام جهت ها از خود ساطع میکند.

تصویر شماره 1 – یک نور نقطه ای نور را بطور یکسان و در تمام

جهت ها منتشر میسازد.

 

 

بهترین نمونه برای یک نور نقطه ای در گرافیک سه بعدی یک چراغ روشن است که درمیان اتاقی آویزان شده باشد. همانطور که در تصویر 2 نشان داده شده است اکثر برنامه های گرافیکی منبع نور نقطه ای را با آیکون یک لامپ روشن نمایش میدهند. با این حال بر خلاف یک لامپ روشن یک نور نقطه ای بسیار کوچک است. بنابر این تمام نورهای منتشر شده از آن بطور یکسان در تمام فضا پراکنده میشوند.

 

تصویر شماره 2 – آیکون معرف نور نقطه ای در نرم افزار لایت ویو تری دی یک نور

شعاعی میباشد. همچنین یک نور نقطه ای در نرم افزار مایا و سافت ایمیج قابلیتهای

مشابهی را ارائه میدهد.

 

 

هنگامی که نورهای نقطه ای به منظور ایجاد سایه برپا میشوند و شما یک ثابت کننده در اطراف نور نقطه ای قرار میدهید ( حتما همه شما چراغ مطالعه را دیده اید. در اینجا نیز منظور حفاظی است که دور لامپ را میپوشاند ) نور محدود خواهد شد و به شکلی در خواهد آمد که میتواند بتابد همانطور که در تصویر 3 نشان داده شده است.

هر چند بیشتر هنرمندان نورپردازی ترجیح میدهند برای اینگونه افکت ها از نورهای موضعی

 "spot Lights " استفاده کنند. زیرا نورهای موضعی کنترل بیشتری را بر روی نشانه روی نور ارائه میکنند.

تصویر شماره 3 – وقتی یک نور نقطه ای در یک محفظه ثابت کننده

نور به منظور سایه پردازی قرار بگیرد در اینصورت میتواند شبیه یک نور

موضعی ظاهر شود.

 

نور های موضعی :

 

نور های موضعی "Spot Lights" که با نام "Spots " نیز شناخته میشوند محبوب ترین نوع نور در امر نورپردازی گرافیک کامپیوتری محسوب میشوند. زیرا آنها میتوانند بطور کامل تنظیم و کنترل شوند. درست مانند یک نور نقطه ای یک نور موضعی نیز تابش نور را از یک نقطه بی نهایت کوچک شبیه سازی میکند. هر چند در عوض نشانه روی نور در تمام جهت ها این نور بصورت یک مخروط مشخص شده محدود میشود و یا بشکل پرتوهای نور در یک مسیر معین محدود میشود همانطور که در شکل 4 نشان داده شده است.

چرخش نورهای موضعی همچنین میتواند تعیین کند که پرتوهای نور بر کجا نشانه روی و متمرکز شوند. یا اینکه یک هدف به نور لینک شود بطوری که نور همیشه بطرف هدف نشانه روی و متمرکز شده باشد.

تصویر شماره 4 - روشن سازی یک نور موضعی بصورت یک مخروط نشانه روی شده

در یک جهت مشخص محدود میشود.

 

 

شما میتوانید تقریبا تمام نورپردازی هایتان را با نورهای موضعی انجام دهید. حتی وقتی که نیاز دارید تا نور در مسیرهای مختلفی نشانه روی شود میتوانید از چندین نور موضعی همانطور که در تصویر 5 نشان داده شده است استفاده کنید.

 

 

تصویر شماره 5 – چندین عدد نور موضعی میتوانند در جهت های مختلف نشانه روی گرفته شوند.

 

 

نورهای موضعی کنترل دستی دارند. شما میتوانید آنها را بگونه ای تنظیم کنید که دقیقا به چه شکلی و به کجا بتابند. زاویه مخروط میزان پهنای پرتو نور موضعی را معین میکند حال آنکه زاویه سایه روشن "penumbra angle" که با نامهای falloff یا زاویه گسترش "spread angle" نیز شناخته میشود میزان نرمی لبه ها در اطراف پرتو نور موضعی را مشخص میکند. در سایه روشن صفر پرتوها لبه هایی کاملا تخت خواهند داشت همانطور که در سمت چپ تصویر 6 نشان داده شده است.

هر چه شما میزان سایه را افزایش دهید همانطور که در وسط تصویر 6 نشان داده شده است پرتوهای نور موضعی لبه هایش نرم تو میشود. با پرتوهای بسیار نرم شما دیگر اصلا تخت بودن و سختی را در پرتوهای نور موضعی مشاهده نمیکنید همانطور که در سمت راست تصویر 6 نشان داده شده است.

نور های موضعی میتوانند یک روشن سازی و نورپردازی ماهرانه را به صحنه اضافه کنند. با هر نور در جایی که آن نشانه روی شده است بتدریج محیط روشن تر میشود. اما تمام نورهای موضعی بنرمی با یکدیگر درمی آمیزند.

 

 

تصویر شماره 6 – با نورهای لبه سخت "Hard Edged" سمت چپ شما میتوانید هر مخروط

نور موضعی را بطور جداگانه مشاهده کنید.همچنان که زاویه سایه بیشتر میشود (وسط) نورها

شروع به ترکیب شدن میکنند. وقتی که نورها به اندازه کافی نرم شدند (راست) آنها کاملا با

یکدیگر ترکیب میشوند بطوری که شما نمیتوانید منابع جداگانه نور را تشخیص دهید.

 

 

نورهای موضعی همچنین خصوصیت دیگری نیز دارند که با نام "barn doors" از آن یاد میشود. در زندگی واقعی "barn doors" صفحات فلزی هستند که در جلوی نور موضعی استوار شده اند همانطور که در تصویر 7 نشان داده شده است. که میتوانند در جلوی منبع نور خم بشوند تا آن را بصورت افقی یا عمودی تغییر بدهند.

"barn doors" در گرافیک سه بعدی چنین نوعی از کنترل را در اختیار شما قرار میدهد و شما را قادر میسازد تا نور را بصورت مربع و یا مستطیل در بیاورید.

 

 

تصویر شماره 7 – گذشته از داشتن کنترل بر روی نشانه روی یک نور

"Barn doors" سینماتوگرافر را قادر میسازد که زاویه طبیعی مخروط نور

را به کمتر از میزان طبیعی اش تقلیل دهد.

 

نور های موضعی بسیار در گرافیک کامپیوتری محبوب هستند چون بطور موثری با بعضی از انواع سایه کار میکنند.  (( پایان قسمت اول - قسمت بعدی و آخری را در پست بعدی بخوانید ))

 

 

منبع مورد استفاده در تهیه این مطلب :

 

 

 

 

+ نوشته شده توسط ( ساسان و محمد ) در پنجشنبه دوازدهم مرداد 1385 و ساعت |

با عرض سلام خدمت دوستان و همراهان وبلاگ OpenGL و گرافیک کامپیوتری :

 

قبل از همه نکته ای را به اطلاع دوستان برسانم. یک وبلاگ فارسی دیگر در مورد اوپن جی ال چند وقتی است در روی سرور Blogsky استارت خورده است ضمن آرزوی موفقیت برای نویسنده آن وبلاگ خواندن آن را به دوستان مشتاق توصیه میکنم.

 

www.opengl.blogsky.com

 

از بابت اینکه وقفه ای طولانی مدت در جریان کار پیش آمد از دوستان معذرت میخواهم. اما مطلبی که امروز برای شما در نظر گرفته ام "شناخت نرم افزار بلندر " نام دارد. و در راستای آشنایی خوانندگان با نرم افزارهای باکیفیت اوپن سورس نوشته شده است.

 

لازم است قبل از شرع مطلب چند سئوال را با دوستان مطرح کنم. شما خواننده گرامی اگر با طراحی سه بعدی در ارتباط هستی از چه نرم افزاری استفاده میکنی ؟ برای شما کدام ویژگی در نرم افزار مورد استفاده ات بالاترین اولویت را دارد ؟  (معروف بودن – تجاری بودن – راحت بودن – داشتن خصوصیات و قابلیتهای فراوان – تعریف و تمجید عامه کاربران – سرعت عمل یا ... ). اگر روزی قانون کپی رایت در ایران لازم الاجرا شود چه فکری اندیشیده ای ؟ هنگامی که دیگر توان استفاده از نرم افزار های چند هزار دلاری تجاری را نداری چه میکنی ؟ آیا کارکرد و قابلیتهای نرم افزار های اوپن سورس را بررسی کرده ای و یا حتی فرصتی را برای مطالعه نقد و بررسی های که دیگران در مورد آنها نوشته اند صرف کرده ای ؟ پول و بهای چند درصد از نرم افزارهایی که بر روی کامپیوترت نصب شده را پرداخته ای؟

 

Blender 3D چیست:

 

اگر تا کنون با نرم افزار هایی چون تری دی مکس و مایا و لایت ویو و ... که همگی جزو نرم افزار های باکیفیت و تجاری هستند کار کرده اید احتمالا حاضر نیستید از استفاده از آنها دست بردارید و یا حتی در مورد یک نرم افزار اوپن سورس فکرکنید. البته همه کاربران بخوبی به این نکته واقف هستند که دیر یا زود بالاخره ایران نیز بالاجبار باید قانون کپی رایت را بپذیرد و نتیجه اش هم فکر کنم برای همگان مشخص باشد. نزدیک به 99 درصد از کاربران ایرانی باید با نرم افزار هایی همچون ویندوز و مکس و مایا و فتوشاپ و آفیس و هزاران نرم افزاری که هر روزه از آنها استفاده میکنیم خداحافظی کنند. ( دلار کجا و ریال کجا ). پس بیربط نمیگویم اگر دوستان را به آینده نگری تشویق کنم.

 

حالا حساب عده ای که از اقشار مایه دار  این مملکت محسوب میشوند جداست کسانی که بی هیچ غصه ای و تنها با اتکا به جیب های قلنبه آق بابا همچنان میتوانند از نرم افزار های تجاری استفاده کنند هر چند ایران هنوز در تحریم امریکا و بسیاری از دیگر کشور ها بسر میبرد و این خود مشکل جداگانه ایست. البته در میان ما ایرانیان و اقشار متوسط و یا حتی ضعیف نیز کم نیستند آنها که به سبب استفاده رایگان از نرم افزار های دیگران چنان شیفته و دلباخته و عاشق سینه چاک کمپانی هایی نظیر مایکروسافت شده اند که حتی در خواب هم امکان ندارد ببینند که بطور مثال کامپیوترشان در حال کار کردن با کمک سیستم عامل لینوکس است. ( لطفا با عباراتی نظیر "آنها مغزهای ما را میدزدند ما هم با اینکار حقمان را پس میگیریم " یا عبارات خنده دار دیگر سعی در گول زدن خودتان و یا توجیه افکار عامه نداشته باشید).

 

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

 

Blender نرم افزاریست برای طراحی مدل و انیمیشن و رندر و طراحی برنامه های اینتراکتیو و بالاخره بلندر یک گیم انجین قدرتمند و تواناست. از زبان اسکریپت نویسی پایتون استفاده میکند ( زبانی که به رقم داشتن قابلیتها و قدرتهای فراوان در ایران ناشناخته مانده و به نوعی ستم دیده است ).

علاوه بر داشتن یک موتور رندر داخلی که بسیار سریع و تواناست قابلیت اجتماع با چند موتور رندرگر جداگانه را مانند yafRay را نیز دارد.

 

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

 

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

اگر مایلید تا به لیست کامل قابلیتها و تواناییهای آن نظری بیندازید این صفحه را فراموش نکنید :

 

 

http://www.blender3d.org/cms/Features.155.0.html

حقیقتا وصف توانایی ها و قابلیت های این نرم افزار کار آسانی نیست و شاید نیاز به نوشتن کتابی برای آن بسیار لازم باشد.

 

در خود سایت سازنده این نرم افزار و همچنین سایتهای معروفی که آموزش هایی برای نرم افزار های سه بعدی ارائه میدهند آموزشهای بسیاری برای آن تهیه و تنظیم شده است.

 

یکی از نکاتی که لازم به تذکر آن است توانایی بگارگیری این نرم افزار برای طراحی بازیهای کامپیوتری است که اخیرا تب آن در میان بسیاری از دوستان از جمله خودم بالا گرفته است. این نرم افزار حتی بسیاری از قابلیتهای یک فیزیک انجین را نیز در خود دارد که از ملزومات هر کیت بازیسازی پیشرفته ای میباشد. به دوستانی که از نرم افزار هایی همچون گیم استدویو و گیم میکر و ویرتولز و کوئست تری دی و  ... استفاده میکنند توصیه میکنم این برنامه را نیز امتحان کنند. آموزشهایی که در سایت رسمی این نرم افزار موجود میباشد بسیار زیاد و خوب است و مشکلی از بابت آن نخواهید داشت.شاید تنها زحمت اینکار یادگیری زبان پایتون باشد که برای کسانی که با سی کار کرده اند یادگیری آن کاری ندارد.

(( یک نکته داخل پرانتزی : حقیقتا سی مادر زبانهای برنامه نویسی است چون با با یک نگاه به راحتی میتوان فهمید که در ایجاد اکثر زبان های برنامه نویسی به نوعی از آن الهام گرفته شده است از جمله زبانهای جاوا و سی شارپ و پایتون و سی++ که این آخری در اصل همان سی میباشد با یک مقدار امکانات اضافه همچون برنامه نویسی شی گرا و غیره ))

 

لازم به ذکر است که برای دوستانی که دستی در برنامه نویسی دارند سورس برنامه مهیاست تا آن را مورد تحقیق و پژوهش و دستکاری قرار دهند. این نرم افزار تحت لیسانس GPL قرار دارد. و این هم آخرین نکته مهمی که برای بسیاری قابل تامل است. این نرم افزار تحت تمام سیستم های عامل رایج وجود دارد. مانند ویندوز و لینوکس و مکینتاش و سولاریس و ...

 

همچنین برای آن دسته از دوستانی که هنوز قانع نشده اند و هنوز باور نکرده اند در این صفحه به گالری تصاویر ساخته شده با این نرم افزار یک نگاه بیندازید در این صفحه نمونه انیمیشن هایی که با این نرم افزار ساخته شده نیز برای دانلود عموم در دسترس است که شدیدا به دوستانی که اینترنت پرسرعت دارند توصیه میکنم چند عدد از آنها را دانلود و تماشا کنند :

 

http://www.blender3d.org/cms/Gallery.55.0.html

http://www.blender3d.org/cms/Movies.160.0.html

 

 

 

در پایان چند تا از نمونه کارهای این نرم افزار را برای دوستان در انتهای همین مطلب قرار داده ام. برای آشنایی بیشتر و دانلود این نرم افزار میتوانید به سایت رسمی آن در این آدرس مراجعه کنید :

 

www.blender3d.org

 

 

 

 

 

 

 

 

+ نوشته شده توسط ( ساسان و محمد ) در سه شنبه سوم مرداد 1385 و ساعت |
Image and video hosting by TinyPic