PDA

View Full Version : گفتگو: ساخت فوتوشاپ با OpenGL



amin1softco
چهارشنبه 09 تیر 1389, 17:31 عصر
سلام به همه ی دوستای گل خودم:قلب:
آقا ما قراره برای پروژه یا همون پایان نامه خودمون یک چیزی درست کنیم حالا من به نظرم اومد که یک فوتوشاپ کوچولو در حد باز و بسته کردن عکس و افکت گذاری روی اون و ابزار ویرایش تصویر درست کنم. حالا :
1- به نظر شما اصلا این پروژه خوبی هست یا نه ؟
2- نمونه آماده یا چیزی که بشه ازش الهام گرفت سراغ ندارید؟
3- آیا این پروژه قابل پیاده سازی توسط یک نفر هست یا نه؟ (ولی طرف خیلی پایست ها)
4- در این پروژه نباید از کتابخانه های خارجی استفاده بشه آیا این کار رو خیلی سخت می کنه؟

در ضمن من می خوام مراحل انجام این پروژه را همین جا انجام بدم و از راهنمایی دوستان بهره ببرم.امید وارم که منو یاری کنید:تشویق:

pswin.pooya
چهارشنبه 09 تیر 1389, 17:47 عصر
4- در این پروژه نباید از کتابخانه های خارجی استفاده بشه آیا این کار رو خیلی سخت می کنه؟

این کارت رو بیشتر از اون چه که فکر میکنه سخت میکنه. به نظر من برای اینکار حداقل نیاز به devil و کتابخانه های دیگه مثل mfc، gtk و ... داری.

میتونی خیلی راحت عکسها رو داخل تکسچر لود کنی و با شیدرهای GLSL اونها رو تغییر بدی. اینکار برای افکتهای تمام صفحه فوقالعاده آسونه.

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


3- آیا این پروژه قابل پیاده سازی توسط یک نفر هست یا نه؟ (ولی طرف خیلی پایست ها)

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

khorzu
چهارشنبه 09 تیر 1389, 20:31 عصر
به نظرم واسه پروژه پایانی تون یک موضوعی رو انتخاب کنید که بشه بعد از فارغ التحصیلی ازش پول درآورد ...

amin1softco
چهارشنبه 09 تیر 1389, 20:55 عصر
به نظرم واسه پروژه پایانی تون یک موضوعی رو انتخاب کنید که بشه بعد از فارغ التحصیلی ازش پول درآورد ...
مثلا چی ؟ من خیلی به این پروژه علاقه دارم ؟

smile17
چهارشنبه 09 تیر 1389, 22:35 عصر
مثلا چی ؟ من خیلی به این پروژه علاقه دارم ؟

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

amin1softco
پنج شنبه 10 تیر 1389, 00:26 صبح
این قضیه هم میتونه پول ساز باشه ولی به این شرط که شرکت های نرم افزاری رو پیدا کنی که به این قضیه علاقه مند هستن یا مثلا حاضرن که کار تحقیقاتی/پیاده سازی شما رو بخرن
در غیر این صورت بهتره که پروژه رو عوض کنی و بعد ها نیز بتونی ادامه بدی
منظورم اینه که پروژه ای رو انتخاب نکن که دوست داری فقط حس کنجکاویت رو ارضا کنه.بهتره چیزی باشه که واقعا خدمت سودمندی ارایه کنه
موضوعاتی که تو ذهن من است فکر نمی کنم برای شما مناسب باشه و ارتباطی هم به بحث طراحی و ساخت بازیهای کامپیوتری نداره.پس پیشنهادی ندارم
من راستش فقط از روی علاقه می خوام این کارو انجام بدم می دونم سخته ...
ولی خوب رفتم تو فکرش چند روز دیگه کد هاشو می زارم تا دوستان راهنمایی کنند مخصوصا آقا پویا:قلب:

khorzu
پنج شنبه 10 تیر 1389, 10:37 صبح
این جور که مشخصه انتخابتون رو کردید ... ولی اگه من یکم وقت اضاف داشتم روی یک نمونه متن باز از http://www.scaleform.com/ کار می کردم که مطمئنم می گیره و جمعیت گیم پروگرمرز مستقل هم کلی دعام می کردن .
توضیح اینکه خود این scaleform هم بر پایه یک پروژه متن باز (http://tulrich.com/geekstuff/gameswf.html) پیاده شده .

amin1softco
دوشنبه 15 شهریور 1389, 13:57 عصر
آقا من یک سورس خیلی خوب برای شروع پیدا کردم می زارم اینجا بقیه هم استفاده کنند با SDL و OpenGL نوشته شده و زبان سی ++ خیلی خوبه
http://sourceforge.net/projects/lodepaint/
البته ما دانشجو ها وقتشو نداریم که یک برنامه بنویسیم شاید همینو دادم به استاد:چشمک:

مصطفی ساتکی
دوشنبه 15 شهریور 1389, 22:11 عصر
بستگی به تجربه شما در این دست از برنامه ها هم داره.چقدر Design Pattern تون در این زمینه خاص خوب باشه. مخصوصاً از Pattern های موجود که وجود داره بعضی هاشون واقعاً معماریشون استادانه بوده و هم مواردی تکنیکی توشون رعایت شده و هم کد ها با این پیچیدگی بسیار خوانا نوشته شده که تو کار گروهی بسیار تاثیر داره. استفاده تمام عیار از Template واقعاً اون Template Oriented کرده.
به نظر من نرم افزار Edit تصویر آنچنان اهمیت چندانی نداره برای پیاده سازیش از DirectX یا OpenGL استفاده کنی چون اگر تاکیدتون رو فیلتر،اصولاً فیلتر که تو حافظه اعمال میشه و نرخ Render تون هم آنچنان بالا نیست.
اگر بتونید Base خوب و متفاوتی به طوری که اکثر موارد تکنیکی موجود توش پیاده شده باشه نه هم جزئیات و قابلیت های منحصر بفردی بهش اضافه کنید که تو نرم افزار های حال حاضر تاپ دنیا نباشه میشه بهش امیدوار بود.
ولی اگر فقط بخاید صرفاً تاکیدتون رو این باشه که مثلاً از openGl استفاده کنید این هیچ سودی به حالتون نداره که هیچ باعث درجا زدن هم میشه .تو این دوره زمانه و با این همه ابر قدرت های نرم افزار ایده جالب و پیاده سازی استادانه می تونه سری از تو سرا در بیاره.
موفق باشید.

amin1softco
سه شنبه 16 شهریور 1389, 12:54 عصر
به نظر من نرم افزار Edit تصویر آنچنان اهمیت چندانی نداره برای پیاده سازیش از DirectX یا OpenGL استفاده کنی چون اگر تاکیدتون رو فیلتر،اصولاً فیلتر که تو حافظه اعمال میشه و نرخ Render تون هم آنچنان بالا نیست.
نکتش اینجاست که دقت دایکرس و اپن جی ال بالاست.



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

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

esi_ostokhooni
چهارشنبه 24 شهریور 1389, 13:39 عصر
من قبلنا توی فکر یه طرح تلفیقی از سه بعدی و دو بعدی بودم که در عین حال زبان برنامه نویسی خودشو داشته باشه و بتونه کد های داخل یک فایل رو اجرا کنه و توسط اونها تصاویر رو بسازه و همینطور بتونه با برنامه های دیگه که میتونه در اکثر زبان ها از جمله C++‎ نوشته بشه ارتباط بر قرار کنه و خود هسته اصلی کار رندر و ذخیره متغیر ها و انجام کد های داخل یک فایل به ترتیب رو داشته باشه ولی بتونیم تا هر حدی که میخوایم بهش پلاگین اضاف کنیم . من این برنامه رو تا حدود خیلی کمی نوشتم ولی چه کنم که همش پاک شد . یه شرح کامل تر از نرم افزار مینویسم شاید به دردت بخوره .:
با کد بشه بهش دستور داد در فلان مختصات بتونه یک فیس بسازه و با یک کد دیگه با open gl ازش رندر بگیره و هر ورتکس یک شماره مشخصی داشته باشه که بتونی وقتی که شماره ورتکس رو به برنامه بدی در سریع ترین حالت ممکن مختصات سه بعدی اون ورتکس رو به خروجی برگردونه . یه سری توابع هم برای کار کردن با مختصات دوربین و یک سری هم برای کار کردن با مختصات نور . در قسمت دو بعدی نرم افزار هم بشه با یک سری توابع مختصات سه بعدی هر پیکسل و مختصات دو بعدی هر نقطه رو به دست بیاری . و همینطور یه سری توابع برای پیدا کردن رنگ در قسمت سه بعدی که حد اکثر 255,255,255,255 رنگ هست و برای پیدا کردن رنگ در قسمت دو بعدی که حد اکثر 255,255,255 رنگ هست باشه یک سری توابع هم برای کار با متغیر ها که 3 نوع هستند باشه (نوع اول string . نوع دوم به صورت اعشاری و نوع سوم هم به صورت عدد صحیح و 2byte) . و یک قابلیت بزرگ این نرم افزار هم این باشه که با یک تابع بشه فیلد نوشتن کد رو بلا فاصله محو کرد و با یک تابع دیگه هم بشه کد هایی که در 1 فایل در کنار نرم افزار گزاشتی و یا از یک قسمت رم اجرا کنه . این نرم افزار در حقیقت کارش ساده کردن برنامه نویسی با اوپن جی ال و ساده کردن اضافه کردن افکت های دو بعدی هست . و آبجکتی در کار نداره و فقط فیس میسازه و قابلیت اصلی این نرم افزار اینه که به راحتی میتونه با پلاگین هاش ارتباط بر قرار کنه . پلاگین ها هم همه با زبان برنامه نویسی خود برنامه باهاش ارتباط بر قرار کنند . و به راحتی بشه برای تمامی کار هایی که میخوای پلاگین بنویسی . برای مثال بشه پلاگینی ساخت که کنترل آبجکت ها رو به دست داشته باشه و محاسبه کنه (این پلاگین برنامه رو از حالت فیس ساختن و رندر خالی در میاره) که کدوم آبجکت ها در قسمت دید دوربین قرار دارن و باید برای رندر به برنامه فرستاده بشن و بالعکس و هر فیسی که باید رندر بشه رو مختصات دهی کنه و به برنامه بفرسته و همینطور اطلاعات آبجکت رو به پلاگین ها که با دو فرمت "نوشتاری ansi" و exe هستند بفرسته . و برای مثال به یک فایل که با physx ارتباط برقرار میکنه بفرسته و جواب رو بگیره و مختصات فیسهای هر آبجکتی که در دوربین هست رو به هسته اصلی بفرسته و هسته اصلی هم رندر بگیره . و پلاگین های دیگه ای هم بشه ساخت که حتی بتونه در قسمت دو بعدی نرم افزار افکت هایی رو اجرا کنه که دیگه نیازی به antialiance نداشته باشه . برای مثال تمام ورتکس هایی که فاصلشون در قسمت دو بعدی از 10 پیکسل بیشره و به هم متصل هستند رو پیدا کنه و خطی که این ها رو به هم متصل میکنه رو پیدا کنه و از هر ورتکس با توجه به رنگش یک تاثیری زیاد و یا کم بنا به خواسته پلاگین نویس روی ورتکس های offset اون خط بزاره و جلوه antialiance رو به وجود بیاره .
این در واقع طرحی بود که من در گذشته قصد انجامش رو داشتم ولی اون موقع در C++‎ بسیار بسیار مبتدی بودم . ولی با این حال تا حدودی انجام داده بودمش ولی هیچ بکاپی ازش نگرفته بودم و وقت ریختن ویندوز اشتباهی درایو برنامه هامو پاک کردم . و دیگه هم هیچ وقت حسش نیومد که بشینم اون همه تلاش کنم . ولی شاید در آینده انجامش بدم .

amin1softco
شنبه 27 شهریور 1389, 20:07 عصر
طرح جالبیه اما حیف که فقط دارم درس می خونم :اشتباه: بازم معدلم پایینه:گریه: شایدم کدشو زدم:بوس: