Skip navigation

Perspektív és párhuzamos vetítés

Általános kamera attribútumok

A kamerák, mint minden térbeli elhelyezkedéssel bíró objektum, rendelkeznek a pozíciójukkal és orientációjukkal kapcsolatos attribútumokkal és függvényekkel.

  • A kamera objektum is rendelkezik positionrotation és scale attribútumokkal is.
  • lookAt() függvénnyel szabályozhatjuk, melyik pontba nézzen. Ez a forgási szögeket állítja.

A kamerát alapból nem kell a színtérhez adnunk. A rendereléskor adjuk meg, hogy melyik színteret melyik kamerával szeretnénk megjeleníteni.

renderer.render( scene, camera );

Ha a kamerát más objektumhoz képest szeretnénk mozgatni, vagy hozzá más objektumot kapcsolnánk (például fényforrást), hozzáadhatjuk a színtérhez.

Perspektív vetítés

Az emberi látást modellező perspektív vetítést a PerspectiveCamera objektummal érhetjük el. A térben párhuzamosan futó egyenesek látszólag egy pontban (a távlatpontban) metszik egymást, az objektum egyre távolabb kerülve a kamerától egyre kisebb méretű lesz.

Vetítés specifikus attribútumok

Az attribútumokkal a látómező méretét és a látószöget adhatjuk meg. A látómezők kívüli tárgyak nem kerülnek modellezésre!

fov Vízszintes irányú látótér tartomány (szögben).
Javasolt érték: emberi látás modellezésekor 50-90 között.
aspect Vízszintes és függőleges látótér tartomány aránya.
Javasolt érték (teljes ablakos modellezésnél): window.innerWidth / window.innerHeight.
near Közeli vágósík távolsága a kamerához.
Javasolt érték: 0.1.
far Távoli vágósík távolsága a kamerához.
Javasolt érték: 1000.
zoom Nagyítás léptéke.
Javasolt érték: 1.

Használati példa

// Böngésző ablakméret lekérése és méretarány számítása
HEIGHT = window.innerHeight;
WIDTH = window.innerWidth;
aspectRatio = WIDTH / HEIGHT;
// Kamera létrehozása és vetítési paramétereinek beállítása
camera = new THREE.PerspectiveCamera( 75, aspectRatio, 0.1, 1000 );
camera.position.z = 15;

Párhuzamos vetítés

A párhuzamos vetítést elsősorban mérnöki, tervezési feladatoknál használják. Az OrthographicCamera objektummal használhatjuk.

Vetítés specifikus attribútumok

left Bal oldali vágósík helye.
right Jobb oldali vágósík helye.
top Felső vágósík helye.
bottom Alsó vágósík helye.
near Közeli vágósík helye.
far Távoli vágósík helye.
zoom Nagyítás mértéke.

Használati példa

camera = new THREE.OrthographicCamera(
window.innerWidth / - 2,
window.innerWidth / 2,
window.innerHeight / 2,
window.innerHeight / - 2,
-500, 1000 );

camera.position.x = 200;
camera.position.y = 200;
camera.position.z = 200;
camera.lookAt( scene.position );

Vetítési paraméter változások érvényesítése

Ne felejtsük el, hogy a kamera vetítési paramétereinek módosulásakor meg kell hívni a kamera updateProjectionMatrix() függvényét!

A kamera vetítési paraméterei rendszerint megváltoznak, ha teljes ablakos modellezést végzünk és változik az ablak mérete. A bevezető példaprogramunk ismertetésekor ennek kezelésére is kitértünk.