heros studio(فرصتي براي دوستداران انيميشن) | |||
|
رندرینگ (گرافیک رایانهای)ارائهٔ ماشینی تصاویر یا رندرینگ (Rendering) فرایند تولید ماشینی تصاویر بر پایهٔ مدلهای محاسباتی، و سپس، ارائهٔ رایانهای آنها بر روی صفحهٔ نمایش را شامل میگردد. در تعریف کلی : رندرینگ به فرایند نمایش تصاویر اجسام سه بعدی( 3D ) برروی صفحهٔ نمایشگر دوبعدی گفته میشود.
انیمیشن رایانهایپویانمایی رایانهای هنر ساخت تصاویر پویا با استفاده از رایانهاست که یکی از زیرمجموعههای گرافیک رایانهای و پویانمایی است. ارائه یا رندرینگ از مراحل مهم در ساختن پویانمایی رایانهای است. گاهی هدف پویانمایی خود رایانهاست ولی گاهی هم هدف رسانه دیگری مانند فیلم است. در بسیاری از فیلمها از آن به عنوان CGI (تصاویر ساخت رایانه) یاد میشود. در پویانماییهای ۳بعدی، همهٔ فریمها باید پس از اینکه مدلسازی پایان یافت تفسیر شوند. در پویانماییهای ۲بعدی برداری، فرآیند رندرینگ فریم کلیدی فرآیند تصویرسازی است، درحالیکه فریمهای میانی چنانکه لازم باشند تفسیر میشوند. برای نمایشهای از پیش ضبط شده، فریمهای ارائه شده، به یک فرمت یا رسانهٔ دیگر مانند فیلم یا تصویر دیجیتال (ارقامی) منتقل میشوند. همچنین ممکن است فریمها به صورت بیدرنگ درحالیکه به کاربر نهایی نمایش داده میشود رندر شوند. رندرینگ بیدرنگ در موتورهای بازی و شبیهسازها استفادهٔ گستردهای دارد. مقدمهدنیای مجازی و ساختگی میتواند هر چیزی باشد، یک فیلم پویانمایی یا یک بازی ویدیویی ولی نکتهٔ مهم در تمام آنها این است که قوانین فیزیکی موجود در دنیای واقعی باید تا حدودی بر روی آن اعمال شود تا دنیای مجازی را به دنیای واقعی ما نزدیک کند؛ در پویانماییهای رایانهای این عمل توسط فرآیندی بهنام “رندرینگ ” صورت میپذیرد. فرآیند رندرینگ مهمترین قسمت از ساخت دنیای مجازی است و مهمترین عامل تمایز و تفاوت میان آنهاست. از آنجا که این مرحله تا این حد حائز اهمیت است، در این سند سعی شده مفاهیم کلی و بنیادی و نکات نسبتاً مهم در این زمینه تا حدودی بیان شود. تاریخچهدر سالهای ۱۹۷۰ و ۱۹۸۰ با کمک رایانه تحول عمیقی در پویانمایی آغاز شد. در سالهای ۱۹۹۰ تأثیرات رایانه بر پویانماییها به اوج خود رسید تا بالاخره در سال ۱۹۹۵ اولین فیلم پویانماییی که به طور کامل با رایانه ساختهشده بود به پردهٔ سینماها رفت. تولید پویانمایی داستان اسباببازی توجه تمام کسانی را که در ساخت پویانمایی فعالیت میکردند را جلب کرد و شرایط ایجاد انقلابی در زمینهٔ تکنیکهای تولید پویانمایی را به خوبی ایجاد کرد. لغات کلیدیاشکال اولیههر ارائهٔ سطح بالا از تصاویر و اشکال نیازمند اجزایی با دامنههای متفاوت از پیکسلها میباشد، به این اجزا اشکال اولیه یا اشکال ابتدایی میگوییم. مدلتوصیفی از اجسام سه بعدی به زبانی کاملاً تعریف شده و ساختیافته برای سیستم را مدل گویند. هر مدل از دستهای از اشکال ابتدایی تشکیل شده و این اشکال به طوری در کنار هم قرار گرفتهاند تا بتوانند حالت موجود مورد نظر را در ذهن بیننده القا کنند. هر چه تعداد چندوجهیهای به کار رفته در یک مدل بیشتر باشد، جزئیات بیشتری را میتوان به شکل مدل اضافه کرد که در اجسام پیچیده باعث میشود مدل به نمونهٔ واقعی بسیار شبیه شود. مدل ساز باید بداند باچچه برنامه ای کارکند و از مدلی که میخواهد بسازد آگاه باشد مثلا باید بلو پرینت و چند عکس و مدل داشته باشد. سهند نوری' صحنههر صحنه متشکل از تعدادی مدل است که طرز قرارگرفتن آنها نسبت به یکدیگر و چگونهٔ طرحبندی فضا را مشخص میکند و رابطهٔ فضایی بین اشیا شامل مکان و اندازه را تعریف میکند. غیراز مدل ها دوربین ها منابع نور، جلوه های ویژه و اشیاء کمکی را نیز می توان در یک صحنه قرار داد. تفسیربه فرآیند تصویر برداری از یک صحنهٔ سه بعدی، تفسیر میگویند؛ در این فرآیند با اضافه کردن جزئیات فضای سه بعدی مثل سایهها و تفاوت در تاریکی و روشنایی رنگها، به تصویر حالت واقع-گرایانهای را القا میکنیم. مفسروظیفهٔ تفسیر در گرافیک رایانهای بر عهدهٔ نرمافزار رایانهایست که به آن “مفسر” میگویند. پویانمایی رایانهایهنر تولید تصاویر پویانمایی به وسیلهٔ رایانه را پویانمایی رایانهای گویند. البته گاهی از پویانمایی رایانه برای بازسازی تصاویر در رسانهٔ دیگری مثلاً فیلم استفاده میشود. پویانماییهای رایانهای را میتوان به سه دستهٔ کلی تقسیم کرد: پویانماییهای دوبعدیپویانماییهای دوبعدی دستهای از تصاویر ساخته شده به وسیلهٔ رایانه هستند که شامل مدلهای دوبعدی مثل اشکال هندسی دوبعدی، نوشتهها و متون، و تصاویر دیجیتالی میباشند. این نوع پویانماییها معمولاً در برنامههای کاربردیای که بر مبنای فناوریهای سنتی پویانماییسازی تولیدشدهاند، به صورت دیجیتالی و روی رایانه ایجاد میشوند. مراحل ایجاد یک پویانمایی دوبعدی را میتوان به سه بخش عمده تقسیم کرد: مرحلهٔ ساخت و تصحیح اشکال، مرحلهٔ حرکت و ساخت فریمهای کلیدی و مرحلهٔ مرفینگ یا تویینینگ میباشند. ساخت اشکالدر این مرحله ما اشکال، اجسام و موجودات مورد نیاز در پویانمایی را به وسیلهٔ برنامهٔ کاربردی مثل ماکرومدیا فلش یا پاورپوینت طراحی میکنیم. در صورت نیاز میتوانیم برای موجودات طراحی شده اسکلت و اهرمهای مجازی تعریف کنیم تا حرکت دادن آنها در مرحلهٔ بعد سادهتر شود ولی به طور کلی اسکلتبندی در طراحی مدلهای دوبعدی بر خلاف مدلهای سهبعدی ضرورتی ندارد. در طراحی مدلهای دوبعدی میتوان از گرافیک بیتمپ یا برداری استفاده کرد. ساخت فریمهای کلیدیبرای ایجاد حرکتهای مورد نظر در پویانمایی از لایهها استفاده میکنیم و در فریمهای کلیدی تغیرات حرکتی را اعمال می-کنیم که شامل حرکاتی مثل حرکات اعضای بدن، چشم، لباس و ... میباشند. مورفینگهمان رندرینگ در پویانمایی سه بعدی است با این تفاوت که کاری که رایانه باید انجام بدهد تا حدودی متفاوت است. در این مرحله رایانه باید به ازای هر لایه فریمهای موجود بین فریمهای کلیدی را محاسبه کند و سپس تمام لایهها را با هم دیگر ادغام کند تا پویانمایی نهایی به دست آید. در ضمن باید عمل رندریگ را برای فریمهای کلیدی به طور جداگانه انجام دهد ولی به فریمهای میانی کاری ندارد. به فرآیند تولید فریمهای میانی در اصطلاح مورفینگ یا تویینینگ میگویند. فریمهای پویانمایی تفسیر شده را میتوانیم به فرمت فیلم یا ویدئو ذخیره کنیم و در هنگام نیاز نمایش دهیم ولی یکی از برتریهای پویانمایی دوبعدی پهنای باند کم و زمان کوتاه رندرینگ میباشد که به ما اجازه میدهد که فرآیند رندرینگ را به صورت بیدرنگ در زمان اجرای پویانمایی انجام دهیم. این خاصیت باعث شده که در اینترنت به جای فرآیندهایی مثل به رشته درآوردن و از پیش بار کردن پویانماییهای طولانی را در رایانه مقصد تفسیرکنند. پویانمایی سهبعدیانواعامروزه بیشتر پویانماییهای ساخته شده به کمک رایانه از این دستهاند. این دسته از پویانماییها میتوانند با تقریب مناسبی بسیار واقعی و طبیعی به نظر برسند. پویانماییهای سهبعدی را میتوان به دو دستهٔ واقعگرایانه و خیالی تقسیم کرد. پویانماییهای واقعگرایانه سعی دارند که مدلهای موجود در جهان را در دنیای مجازی شبیهسازی کنند. پویانماییهای واقعگرایانه خود به دو دسته تقسیم میشوند؛ یک دسته شامل پویانماییهایی است که سعی شده در آنها مثل فیلمهای واقعی شخصیتهای انسانی مجازی بازی کنند، در واقع در این پویانماییها شخصیتهای اصلی انسانها هستند و زندگی آنها به تصویر کشیده شدهاست. در مقابل دستهٔ دیگر مربوط به پویانماییسازی دنیای اطراف انسانهاست که میتواند شامل حیوانات و اشیا باشد. پویانماییهای خیالی دنیایی را تولید میکنند که در ذهن نویسنده بوده و مثال خارجی ندارد. این پویانماییها مملو از شخصیتهای خیالی مثل هیولاها، پری، ارواح و ... میباشند. کارخانهٔ هیولاها ساخت مشترک والتدیزنی و پیکسار نمونهٔ خوبی برای این دستهاند. مراحل ساخت پویانماییهای سه بعدی بسیار به پویانمایی دوبعدی نزدیک است. در بسیاری از فیلمهای پویانمایی بعد از پرورش شخصیتها و تهیهٔ صفحات داستانی ابتدا تمام اجزای اصلی را به صورت دوبعدی طراحی میکنند و پس از اتمام طراحی شخصیت دوبعدی به کمک آن مدل سهبعدی را به وجود میآورند. ایجاد مدل سه بعدیفرآیند ایجاد مدلی برای ارائهٔ هر شیء سه بعدی (زنده یا غیرزنده) به وسیلهٔ صفتهای هندسی و فرمولهای ریاضی و تهیهٔ قالبی قابل تحویل برای رایانه را مدلسازی سه بعدی گویند که به وسیلهٔ نرمافزارهای خاص سهبعدیسازی صورت میگیرد مثلاً مایا یا تریدیمکس . خروجی فرآیند مدلینگ چیزی شبیه به یک مجسمهٔ دیجیتالی است که از دستهای از چند وجهیها و اشکال ابتدایی به وجودآمدهاست. در این مرحله باید اسکلتبندیهای لازم را برای مدل ایجاد کنیم و مفصلها و اهرمها، نقاط وزین و سنگین، بازههای حرکتی و محورهای دوران را مشخص کنیم. به اسکلتبندی و سایر کارهایی که جهت کنترل حرکت شخصیتها در ساخت پویانمایی سه بعدی انجام میشود در اصطلاح طنابکشی میگویند. به متغیرهایی که برای کنترل اجزای مختلف هر کاراکتر استفاده میشوند و مکان آنها را نشان میدهند آوار میگویند. شخصیت “وودی ” در پویانمایی داستان اسباببازی به تنهایی ۷۰۰ متغیر داشت که ۱۰۰ تای آنها مربوط به عضلات صورت بودند. دو روش برای ایجاد مدل اولیه وجود دارد. در روش دستی یا سنتی انیماتور مدل را روی رایانه ایجاد میکند که بسیار شبیه هنر مجسمه سازی است. روش خودکار با استفاده از دستگاههای ورودی سهبعدی مثل اسکن فیزیکی سه بعدی انجام میشود. بعد از تهیهٔ فرمت هندسی و فیزیکی باید سطوح را مشخص کنیم و برای آنها رنگ، جنس و بافت مناسب را انتخاب کنیم. اعمال بافت و جنس بر روی مدل در مرحلهٔ رندرینگ انجام میشود که از مراحل مهم در جهت واقعی سازی تصاویر پویانمایی میباشد. حرکت و نحوهٔ نمایشپس از مشخص شدن طرح کلی اجزای پویانمایی باید به طراحی حرکات و وقایع پویانمایی و اجزای آن بپردازیم. ابتدا باید نحوه-ی قرار گرفتن اجزا نسبت به یکدیگر را مشخص کنیم و صحنهها را طراحی کنیم. طراحی صحنهها شامل محل قرارگرفتن دوربین و منبع نور هم میباشد که هر دو در مرحلهٔ بعد، رندرینگ بسیار تأثیر گذارند. در مرحلهٔ بعد باید حرکات مربوط به اجزا شامل ایست و حرکت، چرخش، تغییر جهت، تغییر ویژگیهای فیزیکی مثل اندازه و رنگ را طراحی کنیم. بسیاری از نکات حرکتی که در این مرحله باید اجرا شوند با مراجعه به صفحات داستان قابل استخراج هستند. این مرحله هم مثل مرحلهٔ قبل دو نحوهٔ پیادهسازی دستی و خودکار دارد. روش دستی بسیار به کاری که در پویانمایی دوبعدی انجام می-دادیم شبیهاست با این تفاوت که ما اینجا ابتدا با استفاده از اسکلت-بندیها و اجزای کنترلی شخصیتها حرکات آنها را در فریمهای کلیدی پیادهسازی میکنیم و رایانه فریمهای میانی را محاسبه میکند و تمام فریمها برای مرحلهٔ رندرینگ آماده میشوند. به طور کلی در پویانمایی سه بعدی کنترل بر روی نحوه و چگونگی حرکت اجزا بسیار راحتتر و بیشتر است. در روش خودکار حسگرها و علامتهایی را به روی بدن یک انسان واقعی متصل میکنیم و او مثل یک بازیگر حرکت میکند و حرکات او را به وسیلهٔ رایانه از حسگرها استخراج و ثبت میکنیم. به این روش در اصطلاح استخراج حرکت میگویند. استفاده از این روش تحت شرایطی مناسب است که حرکات انسانی مورد نظر ما باشد و انجام آن حرکتها برای انسان امکانپذیر باشد که معمولاً این شرایط به وجود نمیآید. مثلاً در داستان اسباببازی که شخصیتها اسباب بازی بودند، حرکات معقول انسانی خیلی به کار نمیآمد بنابراین حرکات به صورت دستی پیادهسازی شدند. رندرینگ سهبعدیبه طور کلی به فرآیند تولید تصویر از یک صحنهٔ مجازی به منظور نمایش بر روی صفحهٔ نمایشگر، رندرینگ میگویند که توسط نرمافزار رندرینگ (موتور رندرینگ) انجام میشود و آخرین مرحله در تولید پویانمایی رایانهای است. در واقع این مرحله شامل تبدیل صحنه سه بعدی برداری به یک تصویر پیکسلی قابل مشاهده می باشد.برخی از مباحثی که در رندرینگ تصاویر و فریمها باید به آنها بپردازیم شامل:
یکی از روشهای القای سهبعدی بودن تصاویر است که محاسبه میکند با تغییر میزان نور رنگها و روشنایی سطوح چگونه باید تغییر کنند. فرض کنید میخواهیم به بیننده القا کنیم که شکل زیر یک مکعب مستطیل سهبعدی است. همانطور که میبینید این شکل که شامل سطوح یکرنگ است به هیچ وجه نمیتواند تداعیگر یک جسم سه بعدی باشد.
شامل اضافه کردن جزئیات به سطوح که القا کنندهٔ جنس سطوح میباشد. در واقع بافت یک تصویر است که به سطح مدل نسبت داده می شود. این تصویر می تواند عینا دیده شود یا تاثیرات آن قابل مشاهده باشد.مثلا باعث ایجاد برجستگی روی سطح گردد یا ایجاد حس انعکاس و یا شفافیت موضعی.تصویری که به عنوان بافت استفاده می شود می تواند پیکسلی باشد و یا برداری. این مرحله بسیار مهم است زیرا استفادهٔ درست از بافتها باعث کاهش قابل ملاحظهای در تعداد اشکال ابتدایی برای نشان دادن اجزای دنیای واقعی با تقریبی مناسب، میشود. از آنجایی که زمان رندرینگ عموماً متناسب با تعداد چندوجهیهایی است که باید ترسیم شوند، بنابراین کاهش تعداد این چندوجهیها به افزایش کیفیت پویانمایی از طریق درجهفریم بالاتر کمک میکند. برای مثال ترسیم یک دیوار آجری را در نظر بگیرید، ما میتوانیم هر آجر را به عنوان یک مستطیل در نظر بگیریم و هر کدام را به طور جداگانه رسم کنیم ولی از آنجایی که ممکن است هزاران آجر در دیوار باشد، فرآیند رندرینگ ما به طور قابلتوجهی کند خواهد شد؛ راه دیگر این است که کل دیوار را به صورت یک مستطیل بزرگ نمایش دهیم و بر روی آن مستطیل بافت آجر بزنیم که این عمل فرآیند رندرینگ را بسیار سریع خواهد کرد.
روشی برای اضافه کردن برجستگیهای جزئی سطوح که مربوط به القای جنس اجسام میشود. برای مثال فرض کنید ما میخواهیم یک پرتقال را مدل کنیم. در ابتدا ما یک شکل کروی با سطح صاف خواهیم داشت که تنها شباهتی که با پرتقال دارد همان شکل کروی و رنگ نارنجی آن است ولی جزئیات در پویانمایی سه بعدی بسیار اهمیت دارد.
frame|right|نمایش سهبعدی پرتقال بدون نگاشت برجستگی. طرح برجستگیها بر روی پرتقال. نمایش سهبعدی پرتقال بعد از نگاشت برجستگی]] در اشکال بالا مشاهده کردید که اضافه کردن جزئیات مربوط به برجستگی تا چه حد به واقعی جلوه دادن مدل سه بعدی کمک میکند.
روشی است برای مشخص کردن بهتر مفهوم فاصله، به طوری که هرچه فاصلهٔ اجسام از دوربین بیشتر باشد به خاطر وجود رسانهٔ میانی مثل هوا و مه و دود و... اجسام محوتر به نظر می-رسند. محاسبهٔ میزان این محو شدگی با توجه به فاصله و واسط میانی از کارهایی است که در مرحلهٔ رندرینگ باید انجام شود.
روشن سازی غیرمستقیم نام دستهای از الگوریتمهاست که با محاسبهٔ نورهایی که به طور غیرمستقیم از منبع نور یعنی از بازتاب آن بر اجسام دیگر صحنه به یکدیگر میرسد، باعث میشود که نورهای صحنه بسیار واقعیتر به نظر برسند. گاهی به این روش روشن سازی عمومی هم میگویند. در تئوری بازتابها، تجزیه و شکست نور و سایهها و به خصوص نیمسایهها مسایلی هستند که در روشنسازی عمومی محاسبه میشوند. تصاویری که با روشنسازی عمومی محاسبه میشوند بسیار واقعی به نظر میرسند. در این روش تغییر نور و روشنایی هر جسم و شیء روی محاسبهٔ نور و روشنایی اجسام مجاورش تأثیر میگذارد. از نکات منفی این روش باید به محاسبات حجیم و زمانبر و پرهزینهٔ آن اشاره کرد. رادیوسیتی از الگوریتمهایی است که روشن سازی عمومی را محاسبه میکند. دیگر مواردی که در رندرینگ به آنها میپردازیم:
موتورهای بازیموتورهای بازی در حقیقت مؤلفهٔ نرمافزاری و اصلی هر بازی رایانهای و ویدئویی و هر برنامهٔ تعاملی است که محتوای گرافیکی بیدرنگ تولید کند. موتوربازی یک سری از تکنولوژیهای اساسی را مهیا میسازد و همچنین فرایند توسعه را تسهیل میکند و در بعضی مواقع بازی را قادر میسازد تا به گونهای ساخته شود که به صورت چندزیرساختاری (مستقل از زیرساختها مثل سیستمعامل) و بر روی کنسولهای بازی و رایانههای رومیزی اجرا شود. تواناییها و قابلیتهای اساسی که توسط موتوربازی در اختیار قرار میگیرد شامل یک تفسیرکننده برای گرافیکهای دو بعدی و سه بعدی و موتور فیزیک و کاشف برخورد و صدا و پردازشگر اسکریپت و پویانمایی و هوش مصنوعی و قابلیتهای شبکهای و یک نمودار صحنه میباشد. موتورهای بازی را بعضی اوقات با نام میان افزار بازی نیز میشناسند. بعضی از موتورهای بازی به جای کلیه قابلیتهایی که مورد نیاز یک بازی رایانهای است تنها قابلیت رندرینگ بیدرنگ سه بعدی را مهیا میسازند. این موتورها به توسعهدهندهٔ بازی اجازه می-دهند که بقیه تواناییها و قابلیتهای مورد نیاز را فراهم نموده و مجموعه را تکمیل نماید که میتوان آنها را از بین اجزای میانافزار بازیهای دیگر انتخاب نمود. این نوع از موتورها اغلب با نامهای دیگری مانند موتور گرافیکی یا موتور رندرسازی و یا موتور سه بعدی نیز شناخته میشوند. امروزه بسیار بر روی موتورهای بازی و اجزای سازندهٔ آنها کار میشود و این امر باعث شده تا بین قسمتهایی مانند کارهای هنری و طراحی مراحل و رندرینگ و اسکریپنویسی شکاف عمیقی ایجاد شود. به زبان ساده این امر باعث شده تا کارها تخصصیتر شود. امروزه در تیمهای بزرگ توسعه بازیهای رایانهای و ویدئویی نسبت هنرمندان به برنامهنویسان ۴ به ۱ میباشد و این یک امر عادی بهشمار میآیند. امروزه موتورهای بازی در زمره پیچیدهترین برنامههای رایانهای هستند که تابه حال ایجاد شدهاست. توسعه موتورهای بازی امروزه یکی از محبوبترین پروژهها در میان علوم رایانهای میباشد و افراد بسیاری از دانشجویان و علاقمندان و توسعهدهندگان بازیهای رایانهای به این موضوع می-پردازند. از ملزومات توسعه موتورهای بازی داشتن دانش بسیار در طیف وسیعی از علوم مانند هندسه و تئوری رنگها و محاسبات میباشد. بسیاری از افراد بطور مشتاقانه و غیرحرفهای به این رشته میپردازند و از این کار لذت میبرند ضمن اینکه محصول خود را به صورت منبعباز در اختیار بقیه میگذارند. “فضای کریستالی ” یک موتوربازی رایگان است که به صورت منبعباز و چندزیرساختاری عرضه میشود و از محبوبیت خوبی نیز برخوردار است. گرافیک رایانهای به طور کلی و رندرینگ و پویانمایی به طور خاص، نیاز به پیش زمینهٔ قوی در ریاضیات و الگوریتمهای رایانهای دارد. الگوریتمهای رندرینگ نیاز به دانش در زمینهٔ هندسهٔ نسبی و انعکاسی و جبرخطی و انواع مدلهای نور و رنگ دارد. پویانمایی نیازمند درک خوبی از ریاضیات پیوسته دارد. پویانماییهای خوب نیاز به گونههایی از مدلهای فیزیکی برای نمایش تاثیر نیروی جاذبه و نیروی تعاملی اشیا نیز دارد. نتیجهگیریزمینههای پیشرفته در گرافیک رایانهای الگوریتمهای بسیاری برای رندرینگ اشیاء سه بعدی به تصاویر دو بعدی تولید کردهاند. پیچیدگیهای بسیاری در این فرآیند وجود دارد که شامل مواردی مثل رسم چند ضلعیها، پرکردن چند ضلعیها، سایهزدن، سایهها، نشان دادن طرح و نقشها، عوض کردن خطوط و نوع قلم، بریدن تصاویر و همین طور انتخاب سطوحی که دیده میشوند و... هستند، که البته به این موارد ختم نمیشوند. جستارهای وابستهمنابع
نظرات شما عزیزان: موضوعات مرتبط: برچسبها: [ جمعه 21 بهمن 1390برچسب:رندرینگ (گرافیک رایانهای), ] [ 17:2 ] [ حسن تنگسيري ]
|
|
|
[ قالب وبلاگ : ایران اسکین ] [ Weblog Themes By : iran skin] |