چرا برای هر پلاگینی که بکار میبریم ، یک نخ جدید ساخته نمیشه تا کارها و افکت های هر پلاگین در یک هسته ی جدید بصورت همزمان اجرا بشه و سرعت رندر بالا بره؟
دقیق نمیدونم ولی به احتمال بسیار زیاد ، همین دلیلی هست که در زیر میگم .
اول اینکه میدونید فیلم ها از تصویر ساخته شدند و تصاویر هم از پیکسل ها . در واقع وقتی چیزی رندر میشه ، چیزی نیست جز اینکه مشخص میشه که پیکسل ها ، چه رنگی داشته باشند . رنگ ها هم که عدد هستند . عددی بین 0 تا 16.7 میلیون . یعنی موتورهای رندر ، موقع رندر ، مشخص میکنن که برای فلان پیکسل ، چه عددی بین 0 تا 16.7 میلیون در نظر بگیرند .
دلیل این سئوال این میتونه باشه که زمان رندر ، باید به ترتیب ، افکت قبلی ، ابتدا کدش را اجرا کنه تا مشخص بشه مثلا پیکسل شماره ی 1 ، چه عددی بهش (به عنوان رنگ) تعلق گرفته میشه (مثلا اِعمالِ افکتِ اول ، باعث شد رنگ شماره ی 459 برای پیکسل شماره ی 1 در نظر گرفته بشه) . بعد افکتِ بعدی (افکت شماره 2) روی همون پیکسل (پیکسل شماره ی 1) اجرا بشه تا این بار ، این افکت ، روی خروجیِ رنگِ افکتِ قبلی که 459 بود ، اِعمال بشه (یعنی ورودیِ رنگِ برای افکت شماره ی 2 ، خروجیِ رنگی که افکت قبلی ساخته بود باید باشه که در اینجا خروجیِ رنگِ افکت شماره ی 1 که رنگ شماره ی 459 در پیکسل 1 هست را به عنوان ورودی برای افکتِ شماره ی 2 در نظر گرفته میشه) تا افکت شماره ی 2 ، خروجی جدیدی به عنوان رنگ (مثلا رنگی با شماره ی 75924) برای همون پیکسل شماره ی 1 اِعمال کنه .
این روند و این ترتیب ، همینطور برای تمام افکت ها ، اِعمال میشه .
دلیلِ اینکه وقتی ترتیبِ افکت ها تغییر پیدا کنه ، ممکنه تصویر (چه رنگ تصویر یا هر چیزِ دیگه مثل اِعمال ماسک و ...) تغییر پیدا کنه ، همین هست .
بنابراین چون رندر باید به ترتیبِ افکت و پلاگین ها انجام بشه (یعنی افکت اول باید کدش را اجرا کنه و بعد نوبت افکت دوم برسه و بعد نوبت افکت سوم برسه و ...) ، پس در یک لحظه ، فقط یک نخ و فقط یک هسته باید کارش را انجام بده .
بنابراین در این نوع نرم افزارها ، رندرِ مربوط به افکت ها (تا اونجایی که مربوط به اجرای کدهای افکت ها و پلاگین ها که مهمترین عضو از رندر هستند ، میشه) فقط در یک هسته از پردازنده میتونه اجرا بشه .






پاسخ با نقل قول
Bookmarks