خلاصه (Summary)
Ray SOP برای پروجکت کردن یک سطح روی سطح دیگر استفاده میشود. پرتوها از هر نقطهی هندسه ورودی در جهت نرمال آن تابیده میشوند. این روش میتواند برای آموزش TouchDesigner در پروژههای Nocturnix و Bobinyx استفاده شود، مثل پیچیدن لباس روی یک سطح یا Shrink-wrap کردن یک شی روی دیگری و افکتهای مشابه.
پارامترها (Parameters – Page)
Group group – اگر گروههای ورودی وجود داشته باشد، مشخص کردن نام گروه باعث میشود که SOP تنها روی همان گروه اعمال شود. از الگوها (Pattern Matching) نیز پشتیبانی میکند.
Method method – انتخاب روش پروجکشن برای Ray SOP.
Minimum Distance minimum – نقاط روی نزدیکترین نقطه از هندسه برخورد قرار میگیرند و نرمال نقاط استفاده نمیشود. برای Shrink-wrap کردن یا پروجکت کردن یک Primitive روی دیگری مناسب است.
Project Rays project – نقاط بر اساس نرمال خود تا برخورد با هندسه پروجکت میشوند.
Transform Points dotrans – اگر فعال شود، نقاط ورودی طبق تعریف زیر تغییر مکان داده میشوند. برای زمانی که فقط میخواهید Attributeهای نقاط را آپدیت کنید، خاموش بگذارید.
Intersect Farthest Surface lookfar – امکان انتخاب برخورد با نزدیکترین یا دورترین سطح برخورد.
Point Intersection Normal normal – اگر فعال شود، هر نقطه در هندسه منبع با نرمال سطح برخورد بهروزرسانی میشود. اگر نقطه برخورد نکند، نرمال (0,0,0) استفاده میشود.
Source Normal source / Collision Normal collision / Reflected Ray reflect – نرمالهای منبع، برخورد و بازتاب.
Bounces bounces – تعداد دفعاتی که پرتو قبل از ایجاد موقعیت خروجی از سطح برخورد بازتاب داده میشود.
Save Bounce Geometry bouncegeo – اگر فعال شود، هندسه پروجکت شده در هر بازتاب ذخیره میشود و چند نسخه از هندسه ورودی ایجاد میکند.
Point Intersection Distance putdist – فاصله هر نقطه برخورد شده تا سطح برخورد را آپدیت میکند. مقدار پیشفرض ۰ است و در Attribute$DIST ذخیره میشود.
Scale scale / Lift lift – مقیاس و جابجایی سطح در جهت نرمال.
Sample sample / Jitter Scale jitter / Seed seed – تعیین تعداد پرتوهای نمونه، مقدار جابجایی و Seed تصادفی برای نمونهگیری.
Create Point Group newgrp / Ray Hit Group hitgrp – ایجاد گروه نقاط و مشخص کردن نام گروه نقاط برخورد شده.
مثال (Example)
یک Grid SOP ایجاد کنید و آن را در محور Z به اندازه 2.5 جابجا کنید. Template Flag را روشن کنید.
یک Point SOP به Grid اضافه کرده و گزینه Create Point Normals را فعال کنید.
یک NURBS Sphere با Radius برابر 2,2,2 ایجاد کنید و در Z به -2.5 جابجا کنید.
نمایش نرمال نقاط را در Viewport فعال کنید.
یک Ray SOP به Point SOP اضافه کنید و Sphere را به ورودی راست وصل کنید. SOP نمایش داده شود.
گزینه Intersect Farthest Surface را روشن و خاموش کنید.
نتیجه: نقاط Grid در جهت نرمالهای خود حرکت میکنند و اولین سطح برخورد Source Collision محل قرارگیری آنها خواهد بود. برای قرار گرفتن روی سطح دورتر Sphere، گزینه Intersect Farthest Surface را فعال کنید.
این روش برای پروژههای آموزش TouchDesigner در Nocturnix و Bobinyx مناسب است.
ورودیهای Operator (Operator Inputs)
Input 0 – ورودی اصلی
Input 1 – هندسه برخورد
کانالهای Info CHOP (Info CHOP Channels)
اطلاعات اضافی Ray SOP از طریق Info CHOP قابل دسترسی است.
Common SOP Info Channels:
num_points – تعداد نقاط
num_prims – تعداد Primitiveها
num_particles – تعداد ذرات
last_vbo_update_time – زمان صرفشده برای بروزرسانی GPU
last_meta_vbo_update_time – زمان بروزرسانی Meta Surface
Common Operator Info Channels:
total_cooks – تعداد دفعات Cook شدن Operator
cook_time – زمان Cook آخر به میلیثانیه
cook_frame – فریم Cook آخر
cook_abs_frame – فریم مطلق Cook آخر
cook_start_time / cook_end_time – زمان شروع و پایان Cook
cooked_this_frame – 1 اگر این فریم Cook شده باشد
warnings – تعداد هشدارها
errors – تعداد خطاها