BabylonJS - กล้องถ่ายรูป
BabylonJS มีกล้องมากมายที่สามารถใช้งานได้ ในแต่ละครั้งจะมีการใช้งานกล้องเพียงตัวเดียวสำหรับฉากหนึ่ง
ในบทนี้เราจะเรียนรู้เกี่ยวกับการใช้กล้องใน BabylonJS
FreeCamera
ตอนนี้ให้เราดูว่า FreeCamera ทำงานอย่างไร
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์สำหรับ FreeCamera -
var camera = new BABYLON.FreeCamera("FreeCamera", new BABYLON.Vector3(0, 1, -15), scene);
นี่คือตำแหน่งที่วางกล้อง - BABYLON ใหม่ Vector3 (0, 1, -15)
การเปลี่ยนทิศทางจะเปลี่ยนทิศทาง คุณสามารถเปลี่ยนค่าและดูว่ากล้องทำงานอย่างไรในฉากนั้น
ต่อไปนี้เป็นพารามิเตอร์ที่ FreeCamera ใช้ -
- Name
- Position
- Scene
ArcRotateCamera
กล้องนี้หมุนรอบจุดหมุนเป้าหมายที่กำหนด สามารถควบคุมได้ด้วยเคอร์เซอร์และเมาส์หรือด้วยเหตุการณ์การสัมผัส พารามิเตอร์คือชื่ออัลฟาเบต้ารัศมีและเป้าหมาย
ไวยากรณ์
var camera = new BABYLON.ArcRotateCamera("ArcRotateCamera", 1, 0.8, 10, new BABYLON.Vector3(0, 0, 0), scene);
ArcRotateCameraชี้ไปในทิศทาง + x ในการเปลี่ยนตำแหน่งของกล้องให้ใช้ปุ่มsetPosition ทรัพย์สิน.
camera.setPosition(new BABYLON.Vector3(0, 0, -100));
ArcRotateCamera เป็นกล้องที่ยอดเยี่ยมในการสร้างภาพเคลื่อนไหว คำสั่งต่อไปนี้จะช่วยให้คุณหมุนกล้องไปรอบ ๆ เป้าหมาย -
scene.activeCamera.alpha += .01;
TouchCamera
Touch เป็นประเภทหนึ่งของ 'คำแนะนำ' อาจเป็นบนแผ่นหรือหน้าจอโดยใช้นิ้วสไตลัสถุงมือเท้าหรือตัวชี้เลเซอร์ การเคลื่อนไหวใด ๆ ที่สามารถรับรู้ได้ ... ถือได้ว่าเป็นท่าทาง
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์สำหรับ TouchCamera -
var camera = new BABYLON.TouchCamera("TouchCamera", new BABYLON.Vector3(0, 1, -15), scene);
GamepadCamera
กล้องนี้ออกแบบมาเป็นพิเศษเพื่อใช้กับเกมแพด
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์สำหรับ Gamepad Camera -
var camera = new BABYLON.GamepadCamera("Camera", new BABYLON.Vector3(0, 15, -45), scene);
DeviceOrientationCamera
กล้องนี้ได้รับการออกแบบมาเป็นพิเศษเพื่อตอบสนองต่อเหตุการณ์การวางแนวอุปกรณ์เช่นเมื่อคุณเอียงอุปกรณ์ไปข้างหน้าหรือข้างหลังซ้ายหรือขวาเป็นต้น
ไวยากรณ์
var camera = new BABYLON.DeviceOrientationCamera("DevOr_camera", new BABYLON.Vector3(0, 1, -15), scene);
ติดตาม
FollowCamera ได้รับการออกแบบมาเพื่อติดตามรายการฉากใด ๆ ที่มีตำแหน่ง สามารถติดตามจากด้านหลังด้านหน้าหรือจากมุมใดก็ได้
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์สำหรับ FollowCamera -
var camera = new BABYLON.FollowCamera("FollowCam", new BABYLON.Vector3(0, 15, -45), scene);
VirtualJoysticksCamera
กล้องนี้ออกแบบมาเพื่อตอบสนองต่อเหตุการณ์จอยสติ๊กเสมือนจริง จอยสติ๊กเสมือนคือกราฟิก 2 มิติบนหน้าจอที่ใช้ในการควบคุมกล้องหรือรายการฉากอื่น ๆ
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์สำหรับ VirtualJoysticksCamera -
var camera = new BABYLON.VirtualJoysticksCamera("VJ_camera", new BABYLON.Vector3(0, 1, -15), scene);
Anaglyph กล้อง
AnaglyphCamera ใช้สำหรับแว่นตา 3 มิติสีแดงและสีฟ้า ใช้เทคนิคการกรองหลังการประมวลผล
AnaglyphArcRotateCamera
ต่อไปนี้เป็นไวยากรณ์สำหรับ AnaglyphArcRotateCamera -
var camera = new BABYLON.AnaglyphArcRotateCamera("aar_cam", -Math.PI/2, Math.PI/4, 20, new BABYLON.Vector3.Zero(), 0.033, scene);
AnaglyphFreeCamera
ต่อไปนี้เป็นไวยากรณ์สำหรับ AnaglyphFreeCamera -
var camera = new BABYLON.AnaglyphFreeCamera("af_cam", new BABYLON.Vector3(0, 1, -15), 0.033, scene);
VRDeviceOrientationFreeCamera
VRDeviceOrientationFreeCamera ใช้ FreeCamera เป็นพื้นฐานดังนั้นคุณสมบัติและวิธีการของ FreeCamera จึงอยู่ใน VRDeviceOrientationFreeCamera ของเราด้วย
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์สำหรับ VRDeviceOrientationFreeCamera -
var camera = new BABYLON.VRDeviceOrientationFreeCamera ("Camera", new BABYLON.Vector3 (-6.7, 1.2, -1.3), scene, 0);
WebVRFreeCamera
WebVRFreeCamera ใช้ FreeCamera เป็นพื้นฐานดังนั้นคุณสมบัติและวิธีการของ FreeCamera จึงอยู่ใน WebVRFreeCamera ของเราด้วย
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์สำหรับ WebVRFreeCamera -
var camera = new BABYLON.WebVRFreeCamera("WVR", new BABYLON.Vector3(0, 1, -15), scene);
ในการสาธิตส่วนใหญ่คุณจะเห็น attachControl ที่กล้องติดกับผ้าใบ
ตัวอย่าง
camera.attachControl(canvas, true);