خلاصه (Summary)
CHOP to SOP کانالهای CHOP را میگیرد و پلیگونهای سهبعدی (3D polygons) در یک SOP تولید میکند. این SOP نمونهها را از CHOP میخواند و آنها را به موقعیت نقاط (point positions) و ویژگیهای نقاط (point attributes) تبدیل میکند. بنابراین مکمل SOP to CHOP است. کانالهایی که توسط SOP to CHOP ایجاد میشوند میتوانند تغییر کنند و دوباره با CHOP to SOP وارد شبکه SOP شوند.
بهطور پیشفرض، SOP یک خط از (-1 0 0) تا (1 0 0) است که شامل یک نقطه برای هر نمونه در CHOP میباشد.
این SOP کانالهای ورودی را به Channel Scope (tx ty tz) متصل میکند. اگر کانالی مطابقت نداشته باشد، مقدار پیشفرض خط استفاده میشود و فقط یک Warning نمایش داده میشود.
سادهترین روش این است که یک کانال به نام ty ارسال کنید تا یک Curve سهبعدی ایجاد شود که شبیه منحنی CHOP باشد.
این SOP همان کاری را انجام میدهد که یک Point SOP با تابع op('wave1')['chan1'].eval(0)
میتواند انجام دهد، اما بسیار سریعتر است.
با استفاده از گروههای نقاط از SOP ورودی، کانالها فقط در نقاط آن گروه وارد میشوند.
CHOP to SOP همچنین از ویژگیهای سفارشی (Custom Attributes) پشتیبانی میکند. اگر کاربر کانالی را به ویژگیای که وجود ندارد متصل کند، آن ویژگی به نقاط اضافه میشود. در حال حاضر همه ویژگیهای سفارشی float و اندازه ۱ هستند.
در حالت پیشفرض، SOP تلاش میکند تا موقعیت نقاط P(0) P(1) P(2) را با کانالهای tx ty tz جایگزین کند.
کانالها و ویژگیها ابتدا به نامهای جداگانه گسترش مییابند و یک به یک مطابقت داده میشوند. مثلاً افزودن ویژگیهای سفارشی مانند Scale، Twist یا Roll به نقاط backbone با CHOP to SOP امکانپذیر است.
اگر SOP به ورودی متصل شود، از آن SOP بهعنوان هندسه شروع (Starting Geometry) بهجای خط پیشفرض استفاده میشود.
پارامترها (Parameters – Page)
Group group – فقط نقاط موجود در این گروه تغییر میکنند. اگر خالی باشد، همه نقاط تغییر میکنند.
CHOP chop – مشخص میکند کدام شبکه یا CHOP دادهها را فراهم میکند.
Start Position startpos – ⊞ – تنظیم محدوده برای موقعیتهایی که توسط کانال تعریف نشدهاند.
End Position endpos – ⊞ – تنظیم محدوده برای موقعیتهایی که توسط کانال تعریف نشدهاند.
Channel Scope chanscope – نام کانالهایی که برای تغییر ویژگیها استفاده میشوند.
Attribute Scope attscope – لیست ویژگیهایی که باید در SOP تغییر کنند (مثل P، Pw، Cd، N، uv).
Organize by Attribute organize – بهجای استفاده از اندیس نقاط، از مقدار این ویژگی برای دسترسی به CHOP استفاده میکند.
Mapping mapping – ⊞ – نحوه نگاشت نمونههای CHOP به نقاط هندسه.
One Sample to Each Point onetoone – نگاشت ۱ به ۱ نمونهها به نقاط.
Resample CHOP to Fit SOP scale – نمونهها بازنمونهگیری میشوند تا با تعداد نقاط هندسه تطبیق داشته باشند.
Compute Normals compnml – ایجاد Normalها روی هندسه.
Compute Tangents comptang – ایجاد Tangentها روی هندسه.
ورودیها (Operator Inputs)
Input 0: –
اطلاعات CHOP (Info CHOP Channels)
اطلاعات اضافی CHOP to SOP از طریق Info CHOP قابل دسترسی است:
num_points – تعداد نقاط در این SOP
num_prims – تعداد primitiveها
num_particles – تعداد ذرات
last_vbo_update_time – زمان بروزرسانی هندسه روی GPU در thread دیگر
last_meta_vbo_update_time – زمان بروزرسانی هندسه متا روی GPU
total_cooks – تعداد بار cook شدن operator
cook_time – زمان آخرین cook به میلیثانیه
cook_frame – شماره فریم آخرین cook نسبت به timeline
cook_abs_frame – شماره فریم آخرین cook نسبت به زمان مطلق
cook_start_time – زمان شروع cook در فریم
cook_end_time – زمان پایان cook در فریم
cooked_this_frame – ۱ اگر operator در این فریم cook شده باشد
warnings – تعداد warningها
errors – تعداد errorها