خلاصه
Blend SOP امکان متامورفوس سهبعدی (تبدیل تدریجی) بین شکلهایی با توپولوژی یکسان را فراهم میکند. این عملگر میتواند بین شانزده ورودی SOP با استفاده از وزن میانگین هر کانال ورودی ترکیب انجام دهد. همچنین، رنگ نقاط و/یا مختصات بافت (Texture Coordinates) را بین شکلها میانیابی میکند.
برای بهترین نتیجه، باید تعداد نقاط / CVها (و وجوه) در هندسه هر SOP یکسان باشد. ترتیب نقاط نیز باید مشابه باشد؛ اگر نقطه 17 در یک منبع در سمت چپ و در منبع دیگر در سمت راست قرار داشته باشد، هنگام ترکیب از میان جسم حرکت خواهد کرد که ممکن است باعث ایجاد شکلهای پیچخورده یا اعوجاجی شود. برای جلوگیری از این مشکل، میتوانید همه شکلهای مورد نظر برای ترکیب را با ویرایش موقعیت نقاط یک شکل پایه مشترک ایجاد کنید. هرکدام از شکلهایی که قرار است مورف شوند باید در SOP جداگانهای باشند.
برای مثال، هنگام ویرایش شکلها در Model Editor، میتوانید هر هندسه خاصی را ذخیره کرده و سپس وارد کنید، یا مستقیم Model SOP را به Blend SOP متصل کنید. در این حالت، هندسه مدل پایه در ورودی اول Blend SOP قرار میگیرد و سپس تا 15 Model SOP دیگر که از SOP حاوی مدل پایه تغذیه میشوند، به آن متصل میگردند. توجه داشته باشید که Model SOPها قابل باز کردن نیستند و بنابراین روشی امن برای ذخیره دادهها بدون نیاز به File In SOP محسوب میشوند.
نسخه جدید Blend SOP فقط ورودیهایی را پردازش میکند که وزن غیر صفر دارند.
همچنین ببینید: Sequence Blend SOP
پارامترها – صفحه Blend
Group group – گروهی از نقاط یا پریمیتیوها را در ورودی اول مشخص میکند.
اگر مثلاً گروهی شامل نقطه اول و سوم مشخص شود، آنگاه نقطه اول و سوم در هر ورودی ترکیب خواهند شد، در حالی که نقاط دوم، چهارم، پنجم و غیره مطابق با منبع ورودی اول تنظیم میشوند. از الگوها (Patterns) پشتیبانی میکند (بخش Pattern Matching).Differencing diff – ترکیبهای اغراقشده بین اشیاء ایجاد میکند؛ مقادیر بالاتر از 1 یا کمتر از 0 باعث ایجاد ترکیبهای بیش از حد مقیاس میشوند.
وقتی این گزینه فعال باشد، مقادیر کانالها جمع و نرمالسازی نمیشوند. ورودی اول بهعنوان مرجع در نظر گرفته میشود؛ Blend اختلاف بین ورودی اول و سایر ورودیها را برای هر نقطه محاسبه میکند. مقادیر بالاتر از 1 یا کمتر از 0 باعث اغراق در شکلهای ورودی 2 و بالاتر میشوند. ورودی اول قابل اغراق نیست و همواره بهعنوان «پایه» عمل میکند.Blend Position dopos – اگر فعال باشد، موقعیت نقاط بین ورودیها بر اساس وزن کانالهای ترکیب میانگینگیری میشوند. اگر فعال نباشد، فقط رنگ، نرمال و بافت در صورت انتخاب ترکیب خواهند شد.
Blend Colors doclr – اگر فعال باشد، رنگ نقاط هندسه ورودیها بر اساس وزن کانالهای ترکیب، میانگینگیری میشوند.
Blend Normals donml – اگر فعال باشد، نرمالهای نقاط بین ورودیها ترکیب میشوند.
Blend Texture douvw – اگر فعال باشد، مختصات بافت بین ورودیها ترکیب میشوند.
Blend Up doup – اگر فعال باشد، بردار Up هندسه بین ورودیها ترکیب میشود.
پارامترها – صفحه Weights
کانالهایی که میزان مشارکت هندسه ورودیها را در هندسه خروجی کنترل میکنند.
Input input – توالی وزن ورودیها.
Weight input0weight – وزن یا سهم این ورودی. عدد 0 یعنی بدون مشارکت، عدد 1 یعنی مشارکت کامل.
کاربردها
از این SOP میتوان برای نوعی تغییر شکل هندسه استفاده کرد.
بهعنوان مثال: مدلسازی هندسهای مثل دهان روی سر یک شخصیت؛ این مدل بهعنوان ورودی اول قرار میگیرد.
مثال
ورودی اول را به اولین SOP از مجموعه شکلهایی که باید ترکیب شوند اختصاص دهید.
اگر پنج شکل برای ترکیب دارید، سادهترین روش این است:
چهار Model SOP ایجاد کنید و هندسه پایه را وارد کنید.
در هر Model SOP هندسه را ویرایش کنید.
یک Blend SOP به SOP حاوی هندسه پایه اضافه کنید و چهار Model SOP را به آن متصل کنید.
میزان مشارکت هر ورودی در شکل نهایی با کانال ترکیب آن ورودی کنترل میشود. تغییر مقادیر کانالهای ترکیب باعث تغییر نسبت مشارکت ورودیها در شکل خروجی خواهد شد.
مثال:
اگر مقدار کانال
/blend3
برابر با 1 و بقیه کانالها 0 باشند، شکل خروجی همان هندسه ورودی سوم خواهد بود.اگر مقدار
/blend5
را هم 1 کنید، شکل خروجی ترکیب 50/50 ورودی سوم و پنجم خواهد بود.همین نتیجه را میتوانید با تنظیم هر دو مقدار روی 0.3 یا هر عدد مساوی دیگر بگیرید؛ در این حالت مشارکت برابر خواهد بود.
ورودیهای عملگر
Input 0: –
کانالهای Info CHOP
اطلاعات اضافی برای Blend SOP از طریق یک Info CHOP قابل دسترسی است.
کانالهای Info عمومی SOP
num_points – تعداد نقاط در این SOP.
num_prims – تعداد پریمیتیوها در این SOP.
num_particles – تعداد ذرات در این SOP.
last_vbo_update_time – مدت زمان صرفشده در یک ترد دیگر برای بهروزرسانی دادههای هندسی روی GPU از دادههای CPU این SOP (بخشی از زمان معمول فریم محسوب نمیشود).
last_meta_vbo_update_time – مدت زمان صرفشده در یک ترد دیگر برای بهروزرسانی دادههای هندسی سطح متا (مثل متابال یا نربز) روی GPU.
کانالهای Info عمومی Operator
total_cooks – تعداد دفعات پردازش عملگر از شروع فرآیند.
cook_time – مدت زمان آخرین پردازش بر حسب میلیثانیه.
cook_frame – شماره فریمی که عملگر آخرین بار نسبت به تایملاین کامپوننت پردازش شد.
cook_abs_frame – شماره فریمی که عملگر آخرین بار نسبت به زمان مطلق پردازش شد.
cook_start_time – زمان شروع پردازش (میلیثانیه) در فریم مربوطه.
cook_end_time – زمان پایان پردازش (میلیثانیه) در همان فریم.
cooked_this_frame – اگر 1 باشد یعنی عملگر در این فریم پردازش شده است.
warnings – تعداد هشدارهای این عملگر (در صورت وجود).
errors – تعداد خطاهای این عملگر (در صورت وجود).