Post-processing اگر موجوده

🔹 تعریف

Post-processing فرآیندی است که بعد از رندر صحنه انجام می‌شود تا افکت‌های بصری اضافه شود.

  • مشابه فیلترهای Photoshop یا Instagram

  • می‌توان Glow، Blur، Color Correction، Bloom، Film Grain و غیره اضافه کرد

۱️⃣ مراحل کلی Post-processing

  1. Render Pass → رندر اولیه صحنه به Texture

  2. Effect Pass → افکت‌ها روی Render Pass اعمال می‌شوند

  3. Composer → ترکیب و مدیریت Passها

۲️⃣ ابزار اصلی

Three.js از EffectComposer برای مدیریت Post-processing استفاده می‌کند.

🔹 نصب (npm)

npm install three

Three.js همراه با examples/jsm/postprocessing/ شامل تمام Passهاست.

۳️⃣ ایجاد Composer

import * as THREE from 'three'; import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js'; import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js'; import { UnrealBloomPass } from 'three/examples/jsm/postprocessing/UnrealBloomPass.js'; const renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000); camera.position.z = 5; // Composer const composer = new EffectComposer(renderer); // Render Pass (صحنه اصلی) const renderPass = new RenderPass(scene, camera); composer.addPass(renderPass); // Bloom Pass (افکت نورانی) const bloomPass = new UnrealBloomPass( new THREE.Vector2(window.innerWidth, window.innerHeight), 1.5, // strength 0.4, // radius 0.85 // threshold ); composer.addPass(bloomPass);

۴️⃣ رندر با Composer

function animate() { requestAnimationFrame(animate); // cube.rotation.x += 0.01; // اگر اشیاء داشته باشیم composer.render(); // رندر با افکت‌ها } animate();

📌 توجه: بعد از فعال کردن Composer، دیگر نباید از renderer.render(scene, camera) استفاده کرد، بلکه باید ()composer.render صدا زده شود.

۵️⃣ Passهای رایج

Passکاربرد
RenderPassرندر اولیه صحنه
UnrealBloomPassنورهای درخشان / Bloom
FilmPassNoise و Scanlines شبیه فیلم
DotScreenPassافکت نقطه‌ای / halftone
SMAAPassAnti-aliasing پیشرفته
ShaderPassاعمال Shader دلخواه

۶️⃣ نکات مهم

  • Post-processing باعث افزایش مصرف GPU می‌شود

  • معمولا برای پروژه‌های واقع‌گرایانه، بازی و جلوه‌های سینمایی استفاده می‌شود

  • می‌توان چند Pass را با هم ترکیب کرد تا صحنه حرفه‌ای‌تر شود