🔹 خلاصه (Summary)
📌 توجه:
این اپراتور فقط در سیستمعامل Microsoft Windows پشتیبانی میشود.
NVIDIA Flex Solver COMP یک حلگر فیزیک (Solver COMP) است که مشابه Bullet Solver COMP عمل میکند.
در یک شبیهسازی Flex، این کامپوننت نقش جهان/محیط شبیهسازی را دارد که در آن بازیگران/اجسام (Actor COMPs) فعالیت میکنند.
این حلگر میتواند شامل هر تعداد Actor (کامپوننت Actor) یا میدان نیرو (Force COMP) باشد و همانطور که از نامش پیداست از API ذرات NVIDIA FleX استفاده میکند.
NVIDIA Flex Solver COMP بر اساس پارامترهای شبیهسازی (مانند شعاع ذره و چسبندگی) یک شبیهسازی را اجرا میکند و ترنسفورم Actorهای درون خود را در طول اجرای شبیهسازی بهروزرسانی میکند.
Actorهایی که توسط این Solver ارجاع داده میشوند لازم نیست داخل شبکهی آن باشند؛ آنها میتوانند در هر جایی از پروژه قرار داشته باشند، به شرطی که همزمان در Solver دیگری (چه Bullet چه Flex) قرار نگرفته باشند.
⚠️ نکته مهم:
نسخههای جدید درایور انویدیا بعضی قابلیتها را مختل کردهاند (مثلاً پشتیبانی از چندین کلايدر).
پیشنهاد میشود از نسخهی 546.xx درایور استفاده کنید.
در نتیجه، روی کارتهای جدیدتر مثل سری RTX 50 که حداقل نیاز به درایور 570.xx دارند، Flex با مشکل مواجه خواهد شد.
👀 مرتبطها:
Flex
Nvidia Flex TOP
Actor COMP
Force COMP
پارامترها (Parameters)
🔹 Solver Page (حلگر)
Actors (actors) → Actorهایی که در شبیهسازی شرکت میکنند (نمیتوانند همزمان در Solver دیگری باشند).
Global Forces (forces) → نیروهای سراسری (فقط میدانهای نیرو در Flex پشتیبانی میشوند).
Gravitational Acceleration (gravity) → گرانش (m/s²) که روی همهی Actorها اعمال میشود (بدون توجه به جرم).
gravityx, gravityy, gravityz → تعیین مقدار گرانش در هر محور.
Initialize Sim (init) → ریست کردن همه اجسام به حالت اولیه (موقعیت، جهت، سرعت). فقط مقداردهی اولیه است، شبیهسازی را شروع نمیکند.
Start Sim (start) → مقداردهی اولیه + شروع شبیهسازی.
Play (play) → پخش شبیهسازی (با خاموش شدن متوقف میشود).
Sample Rate (rate) → نرخ نمونهبرداری شبیهسازی (گام زمانی = ۱ / rate).
Pre-Roll (preroll) → فعالسازی پیشاجرا (شبیهسازی قبل از شروع واقعی برای رسیدن به حالت اولیه دلخواه).
Pre-Roll Simulation Time (prerolltime) → مدتزمان پیشاجرا (ثانیه).
Pre-Roll Steps per Frame (prerollstep) → تعداد گامها در هر فریم تا تکمیل پیشاجرا.
Show Pre-Roll (showpreroll) → نمایش نتایج پیشاجرا روی Actorها یا حفظ حالت اولیه تا پایان پیشاجرا.
Number of Substeps (substeps) → تعداد زیرگامها در هر گام شبیهسازی.
Number of Iterations (iterations) → تعداد تکرار در هر زیرگام.
Always Simulate (alwayssim) → اجرای مداوم شبیهسازی حتی در توقف.
Enable Boundaries (bounds) → فعالسازی مرزهای شبیهسازی (جعبه یا صفحات).
Boundary Mode (boundmode) → حالت مرزها:
Bounding Box → از SOP برای محاسبه جعبه مرزی استفاده میشود.
Planes → استفاده از صفحات جداگانه (حداکثر ۶ صفحه).
Bounding Box SOP (bbox) → SOP مورد استفاده برای محاسبه جعبه مرزی.
Plane (plane) → مجموعهای از صفحات تعریفشده برای مرز.
Plane Rotation (plane0r / rx, ry, rz) → چرخش صفحهی پیشفرض (+Z XY plane).
Plane Translation (plane0t / tx, ty, tz) → جابهجایی صفحهی پیشفرض.
🔹 Properties Page (ویژگیها)
Particle Radius (radius) → شعاع ذرات شبیهسازی.
Dynamic Friction (dfriction) → اصطکاک بین ذره متحرک و شکل ایستا.
Static Friction (sfriction) → اصطکاک بین ذره ایستا و شکل ایستا.
Particle Friction (pfriction) → اصطکاک دینامیک بین ذرات.
Restitution (rest) → ضریب بازگشت (弹性 برخورد).
Adhesion (adhesion) → میزان چسبندگی ذرات به سطوح.
Sleep Threshold (sleepthresh) → سرعت کمتر از این مقدار = غیرمتحرک.
Clamp Speed (clampspeed) → فعالسازی محدودیت سرعت.
Max Speed (maxspeed) → بیشینه سرعت ذرات.
Clamp Acceleration (clampaccel) → محدودیت شتاب.
Max Acceleration (maxaccel) → بیشینه شتاب.
Dissipation (diss) → کاهش سرعت ذره بر اساس تعداد برخوردها.
Damping (damping) → مقاومت چسبناک (drag).
Cohesion (cohesion) → قدرت چسبندگی ذرات به یکدیگر.
Surface Tension (surftension) → تمایل ذرات به کوچک کردن سطح.
Viscosity (viscosity) → هموارسازی سرعت ذرات (ویسکوزیته XSPH).
Buoyancy (buoyancy) → مقیاس گرانش برای ذرات سیال.
Collision Distance (colldist) → فاصلهی نگهداری در برخورد ذرات با شکلها.
Shape Collision Margin (scollmargin) → افزایش شعاع ذره در تماس با شکلها.
Smoothing (smoothing) → قدرت هموارسازی (Laplacian smoothing).
Vorticity Confinement (vortconf) → افزایش چرخش با اعمال نیروهای دورانی.
Anisotropy Scale / Min / Max (anisoscale, anisomin, anisomax) → کنترل ناهمسانگردی ذرات برای رندر.
Enable Diffuse Particles (diffuse) → فعالسازی ذرات پراکنده (Diffuse).
Max Diffuse Particles (maxdiffuse) → بیشینه تعداد ذرات پراکنده همزمان.
Diffuse Threshold (diffthresh) → آستانه انرژی برای ایجاد ذرات پراکنده جدید.
Diffuse Buoyancy (diffbuoy) → مقیاس گرانش برای ذرات پراکنده.
Diffuse Drag (diffdrag) → نیروی مقاومتی روی ذرات پراکنده.
Diffuse Ballistic (diffball) → تعداد همسایههای کمتر = ذره پراکنده بالستیک.
Diffuse Lifetime (difflife) → عمر ذره پراکنده (ثانیه).
🔹 Xform Page (ترنسفورم)
کنترل موقعیت و چرخش Actorها در فضای جهانی:
Transform Order (xord) → ترتیب اعمال ترنسفورم (SRT, STR, RST …).
Rotate Order (rord) → ترتیب چرخشها (Rx, Ry, Rz و ترکیبهای دیگر).
Translate (tx, ty, tz) → جابهجایی.
Rotate (rx, ry, rz) → چرخش.
Scale (sx, sy, sz) → مقیاس غیر یکنواخت.
(ادامهی Xform مثل Bullet Solver است: Pivot، Uniform Scale، Parent Transform، Look At و Path SOP).
Pivot (محور/مرکز چرخش و مقیاس)
Pivot p → فیلدهای محور اجازه میدهند نقطهای را مشخص کنید که کامپوننت حول آن مقیاسدهی و چرخش میشود. تغییر نقطه Pivot نتایج متفاوتی بر اساس نوع ترنسفورم ایجاد میکند.
مثال: اگر Pivot روی (-1, -1, 0) باشد و بخواهید مقیاس را 0.5 کنید (50٪ کاهش اندازه)، کامپوننت به سمت Pivot مقیاس داده شده و به سمت پایین و چپ حرکت میکند.
X px, Y py, Z pz → مختصات محور Pivot
Uniform Scale (مقیاس یکنواخت)
Uniform Scale scale → اندازه کامپوننت را بهطور یکنواخت در سه محور تغییر میدهد.
⚠️ معمولاً مقیاس دادن کانالهای دوربین توصیه نمیشود، اما در صورت استفاده، خروجی رندر تا حد امکان با Viewport مطابقت خواهد داشت.
Parent Transform Source (منبع ترنسفورم والد)
parentxformsrc → جایگزین پارامتر قبلی “Constrain To” شده. مشخص میکند که موقعیت اولیه کامپوننت از کجا گرفته شود:
“Parent (Hierarchy)”
“Specify Parent Object”
“World Origin”
Parent Object (parentobject) → محدود کردن موقعیت کامپوننت به هر شیء دیگر با مسیر مشخص.
Look At (نگاه به/هدف گیری)
lookat → مشخص میکند کامپوننت به کدام Object نگاه کند. حتی اگر Object حرکت کند، جهت نگاه حفظ میشود.
💡 نکته: برای هدفی که در صحنه ظاهر نمیشود، یک Null Component بسازید، نمایش آن را خاموش کنید، دوربین را به آن Parent کنید و از Look At استفاده کنید.Forward Direction (forwarddir) → محور و جهت پیشفرض جلو را مشخص میکند.
+X posx / -X negx
+Y posy / -Y negy
+Z posz / -Z negz
Look At Up Vector (lookup) → امکان تعیین Up Vector هنگام استفاده از Look At.
Don’t Use Up Vector → اگر کامپوننت هدف از محور Y عبور نکند.
Use Up Vector → تعریف دقیق چرخش کامپوننت.
Use Quaternions → استفاده از کواترنیون برای چرخش بهینه.
Use Roll → چرخش اضافی حول محور جلو.
Path SOP (مسیر حرکت)
pathsop → نام SOPی که مسیر حرکت کامپوننت را تعریف میکند.
Roll (roll) → زاویه چرخش هنگام حرکت روی مسیر.
Position (pos) → موقعیت کامپوننت روی مسیر (0 = شروع، 1 = پایان).
Orient along Path (pathorient) → اگر فعال باشد، کامپوننت در راستای مسیر جهت میگیرد (+Z به سمت جلو).
Orient Up Vector (up) → جهت Y مثبت را مشخص میکند.
Auto-Bank Factor (bank) → چرخش خودکار کامپوننت بر اساس انحنای مسیر.
Pre-Xform Page (پیش ترنسفورم)
اعمال ترنسفورم همانند اضافه کردن یک Parent به این Node است.
Apply Pre-Transform (pxform) → فعالسازی ترنسفورم پیش.
Transform Order (pxord) → ترتیب اعمال ترنسفورم (SRT، STR، …).
Rotate Order (prord) → ترتیب چرخشها.
Translate (ptx, pty, ptz)
Rotate (prx, pry, prz)
Scale (psx, psy, psz)
Pivot (ppx, ppy, ppz)
Uniform Scale (pscale)
Reset Transform (preset) → ریست کردن تمام ترنسفورمها.
Commit to Main Transform (pcommit) → انتقال ترنسفورم پیش به Xform اصلی.
Xform Matrix/CHOP/DAT (xformmatrixop) → امکان اعمال مستقیم ترنسفورم با ماتریس ۴x۴.
Render Page (رندر/متریال)
Material (material) → انتخاب MAT برای هندسه.
Render (render) → قابل مشاهده بودن هندسه در Render TOP.
Draw Priority (drawpriority) → ترتیب رسم اجزا (مقادیر کوچکتر بعد از مقادیر بزرگتر رسم میشوند).
Pick Priority (pickpriority) → اولویت انتخاب هنگام استفاده از Render Pick CHOP/DAT.
Wireframe Color (wcolor) → رنگ نمایش در حالت وایرفریم (R/G/B).
Light Mask (lightmask) → تعیین نورهایی که هندسه را تحت تأثیر قرار میدهند.
Extensions Page (افزونهها)
Extension (ext) → ایجاد افزونه برای کامپوننت.
Object (ext0object) → نمونههای کلاس متصل به کامپوننت.
Name (ext0name) → نام اختیاری برای جستجو.
Promote (ext0promote) → کنترل نحوه دسترسی به افزونهها.
Re-Init Extensions (reinitextensions) → کامپایل مجدد همه افزونهها.
Common Page (عمومی)
Parent Shortcut (parentshortcut) → نام میانبر برای مسیر داخلی کامپوننت.
Global OP Shortcut (opshortcut) → نام میانبر برای مسیر عمومی.
Internal OP (iop) → لیست اپراتورهای داخلی.
Node View (nodeview) → نمایش در Node Viewer (Default / Operator Viewer).
Enable Cloning (enablecloning) → فعال/غیرفعال کردن کلونینگ.
Clone Master (clone) → مسیر کامپوننت اصلی کلون.
Load on Demand (loadondemand) → بارگذاری تنها در صورت نیاز.
Enable External .tox (enableexternaltox) → بارگذاری خودکار از فایل .tox خارجی.
External .tox Path (externaltox) → مسیر فایل .tox خارجی.
Reload Custom Parameters (reloadcustom) → بارگذاری مجدد پارامترهای سفارشی.
Reload Built-In Parameters (reloadbuiltin) → بارگذاری مجدد پارامترهای پیشفرض.
Save Backup of External (savebackup) → ذخیره نسخه پشتیبان در .toe.
Sub-Component to Load (subcompname) → بارگذاری یک کامپوننت خاص از .tox.
Relative File Path Behavior (relpath) → تعیین مسیرهای نسبی برای فایلهای داخلی (.toe یا .tox).
Info CHOP Channels (کانالهای اطلاعاتی)
دسترسی به اطلاعات اضافی Flex Solver از طریق Info CHOP.
Specific Nvidia Flex Solver COMP Info Channels:
num_active_diffuse_particles
initializing
ready
running
done
timer_fraction
timer_seconds
timer_index
playing_seconds
running_seconds
length_seconds
sample_rate
index
num_bodies
num_active_bodies
Common COMP Info Channels:
num_children → تعداد فرزندان در این کامپوننت
Common Operator Info Channels:
total_cooks → تعداد دفعات اجرای اپراتور
cook_time → مدت زمان آخرین cook (میلیثانیه)
cook_frame → فریم آخرین cook
cook_abs_frame → فریم مطلق آخرین cook
cook_start_time → زمان شروع cook
cook_end_time → زمان پایان cook
cooked_this_frame → 1 اگر در این فریم cook شده باشد
warnings → تعداد هشدارها
errors → تعداد خطاها
