یک صحنه ساده با Three.js بسازید که یک مکعب رنگی را با نور پایه نمایش دهد، مکعب به‌طور پیوسته بچرخد و هنگام تغییر اندازه پنجره پاسخگو باشد.

2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:01

0.0

برای حل این مسئله از Three.js (با CDN یا نصب از npm) استفاده کنید: یک Scene، یک PerspectiveCamera و یک WebGLRenderer ایجاد کنید و renderer را به DOM اضافه کنید؛ سپس یک BoxGeometry و یک MeshStandardMaterial یا MeshPhongMaterial بسازید و آن‌ها را به صورت یک Mesh به صحنه اضافه کنید. نور محیطی (AmbientLight) و یک نور جهت‌دار (DirectionalLight) اضافه کنید تا سایه‌روشن‌ها مشخص شوند؛ با استفاده از requestAnimationFrame حلقه انیمیشن بسازید و در هر فریم مختصات چرخش (rotation) مکعب را تغییر دهید. برای پاسخگویی به تغییر اندازه پنجره، event listener برای window.resize تنظیم کرده و camera.aspect و renderer.setSize را بروزرسانی کنید؛ استفاده از renderer.setPixelRatio(window.devicePixelRatio) و فعال کردن antialias در Renderer و در صورت تمایل اضافه کردن OrbitControls برای تعامل کاربر از نکات مفید است.

توسط پژوهشگر در 220 روز قبل ساعت 02:01
دسته بندی ها: JavaScript JavaScript for beginner
nima در 220 روز قبل ساعت 11:13

برای پاسخگو بودن صحنه، هنگام تغییر اندازه پنجره camera.aspect را با نسبت جدید تنظیم کنید و renderer.setSize را با اندازه جدید بروزرسانی کنید. همچنین از renderer.setPixelRatio(window.devicePixelRatio) استفاده کنید تا کیفیت تصویر روی دستگاه‌های با تراکم پیکسل بهتر باشد و antialias فعال باشد. اگر می‌خواهید با کاربر تعامل کند، OrbitControls را اضافه کنید تا بتوانید با ماوس صحنه را بچرخانید یا زوم کنید. در حلقه انیمیشن، rotation مکعب را با هر فریم افزایش دهید تا مکعب آرام بچرخد و از requestAnimationFrame به درستی استفاده شود.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری