Textures: بارگذاری، نقشه UV، wrap, filter, mipmap و غیره
Texture تصویری است که روی متریال قرار میگیرد و ظاهر سطح شیء را تغییر میدهد.
۱️⃣ بارگذاری Texture
🔹 تعریف
برای استفاده از یک تصویر روی یک Mesh، ابتدا باید آن را بارگذاری کنیم:
📌 TextureLoader میتواند تصاویر JPG، PNG، یا سایر فرمتهای رایج را بارگذاری کند.
۲️⃣ نقشه UV (UV Mapping)
-
UV Mapping مشخص میکند که تصویر چگونه روی سطح شیء کشیده شود.
-
هر Geometry دارای UV coordinates است که Texture را به آن متصل میکند.
-
برای Geometries آماده، UV معمولاً از پیش تعریف شده است.
۳️⃣ Wrap Modes (نحوه تکرار Texture)
-
THREE.RepeatWrapping → Texture تکرار میشود
-
THREE.ClampToEdgeWrapping → لبهها کشیده میشوند
-
THREE.MirroredRepeatWrapping → تصویر معکوس شده تکرار میشود
۴️⃣ Filter Modes (فیلترها)
-
تعیین میکند که هنگام بزرگ یا کوچک شدن Texture چه اتفاقی بیفتد
Filter | توضیح |
---|---|
THREE.NearestFilter | پیکسلبهپیکسل، بدون نرم کردن |
THREE.LinearFilter | نرم کردن تصویر هنگام تغییر اندازه |
THREE.LinearMipMapLinearFilter | برای mipmapها، کیفیت بالاتر هنگام کوچک شدن |
۵️⃣ Mipmaps
-
مجموعهای از نسخههای کوچکتر Texture
-
باعث کاهش aliasing و افزایش سرعت رندر میشود
-
معمولاً به صورت خودکار ساخته میشوند، مگر اینکه explicitly غیر فعال شوند:
۶️⃣ دیگر ویژگیها
ویژگی | توضیح |
---|---|
rotation | چرخش Texture روی سطح |
offset | جابجایی تصویر روی سطح |
flipY | برعکس کردن عمودی Texture (برای برخی تصاویر لازم است) |
encoding | LinearEncoding, sRGBEncoding برای نور و رنگ واقعیتر |
🔹 مثال
۷️⃣ مثال کامل با Texture، Wrap و Filter
📌 این مثال نشان میدهد:
-
چگونه یک تصویر روی Mesh اعمال میشود
-
نحوه تکرار (RepeatWrapping) و فیلتر (LinearMipMapLinearFilter)
-
تاثیر mipmap و encoding برای کیفیت بهتر
۸️⃣ نکات مهم
-
همیشه برای رندر واقعیتر از
MeshStandardMaterial
یاMeshPhysicalMaterial
استفاده کن -
UV Mapping و Wrap مهم هستند تا تصویر به درستی روی Geometry نمایش داده شود
-
mipmap و filter کیفیت و سرعت رندر را بهبود میدهند