!DOCTYPE html>
كاميرا تستخدم تصوير منظوري [link:https://en.wikipedia.org/wiki/Perspective_(graphical) Perspective Projection]. تم تصميم هذا الوضع لمحاكاة الطريقة التي يرى بها العين البشرية. وهو أكثر أنماط التصوير استخدامًا لإظهار مشهد ثلاثي الأبعاد.
const camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );
scene.add( camera );
[example:webgl_animation_skinning_blending animation / skinning / blending]
[example:webgl_animation_skinning_morph animation / skinning / morph ]
[example:webgl_effects_stereo effects / stereo ]
[example:webgl_interactive_cubes interactive / cubes ]
[example:webgl_loader_collada_skinning loader / collada / skinning ]
fov — زاوية مجال الرؤية الرأسية للكاميرا.
aspect — نسبة العرض إلى الارتفاع للكاميرا.
near — سطح الهرم الأمامي للكاميرا.
far — سطح الهرم الخلفي للكاميرا.
معًا، يحدد هذه العناصر هرم الرؤية للكاميرا.
[link:https://en.wikipedia.org/wiki/Viewing_frustum هرم الرؤية]
يرجى الرجوع إلى صفحة [page:Camera] الأساسية للحصول على الخصائص الشائعة.
يرجى ملاحظة أنه بعد إجراء تغييرات على معظم هذه الخصائص، ستحتاج
إلى استدعاء [page:PerspectiveCamera.updateProjectionMatrix .updateProjectionMatrix] لجعل التغييرات سارية المفعول.
نسبة العرض إلى الارتفاع لسطح الهرم الرؤية (frustum) للكاميرا، وعادةً ما يكون العرض الخاص باللوحة السينمائية / الشاشة مقسومًا على ارتفاعها. العدد الافتراضي هو `1` (لوحة سينمائية مربعة).
سطح الهرم الخلفي لسطح الرؤية (frustum) للكاميرا. العدد الافتراضي هو `2000`.
يجب أن يكون أكبر من القيمة الحالية لسطح الهرم الأمامي [page:.near near].
حجم الفيلم المستخدم للمحور الأكبر. العدد الافتراضي هو 35 (ملم). لا يؤثر هذا المعلم على مصفوفة الإسقاط إلا إذا تم تعيين .filmOffset إلى قيمة غير صفر.
الإزاحة الأفقية غير المركزة في نفس وحدة `.filmGauge`. العدد الافتراضي هو `0`.
مسافة الكائن المستخدمة لتحقيق تأثيرات الإسقاط المتزامن والعمق الحقيقي. هذا المعلم لا يؤثر على مصفوفة الإسقاط إلا إذا تم استخدام [page:StereoCamera]. العدد الافتراضي هو `10`.
زاوية مجال الرؤية الرأسية لسطح الهرم الرؤية (frustum) للكاميرا، من أسفل الرؤية إلى أعلى الرؤية، بالدرجات. العدد الافتراضي هو `50`.
علامة تحقق للتحقق مما إذا كان الكائن المعطى من نوع [name]. هذه العلامة لا يمكن تعديلها.
سطح الهرم الأمامي لسطح الرؤية (frustum) للكاميرا.
العدد الافتراضي هو `0.1`.
النطاق الصحيح هو أكبر من `0` وأقل من القيمة الحالية لسطح الهرم الخلفي [page:.far far].
يرجى ملاحظة أنه، على عكس الكاميرا المسطحة
[page:OrthographicCamera]، القيمة `0` ليست قيمة صالحة لسطح الهرم الأمامي لكاميرا من نوع PerspectiveCamera.
مواصفات نافذة هرم الرؤية (frustum) أو `null`. يتم تعيين هذا باستخدام طريقة [page:PerspectiveCamera.setViewOffset .setViewOffset] ويتم مسحها باستخدام [page:PerspectiveCamera.clearViewOffset .clearViewOffset].
يتم الحصول على قيمة عامل التكبير أو تعيينها للكاميرا. العدد الافتراضي هو `1`.
يرجى الرجوع إلى صفحة [page:Camera] الأساسية للحصول على الأساليب الشائعة.
تزيل أي إزاحة تم تعيينها باستخدام طريقة [page:PerspectiveCamera.setViewOffset .setViewOffset].
تُرجع زاوية مجال الرؤية الرأسية الحالية بالدرجات باعتبار .zoom.
تُرجع ارتفاع الصورة على الفيلم. إذا كان .aspect أقل من الواحد (تنسيق صورة عمودي)، فإن النتيجة تساوي .filmGauge.
تُرجع عرض الصورة على الفيلم. إذا كان .aspect أكبر من أو يساوي الواحد (تنسيق صورة أفقي)، فإن النتيجة تساوي .filmGauge.
تُرجع البعد البؤري للـ .fov الحالي بالنسبة لـ .filmGauge.
يتم تعيين الـ FOV بواسطة البعد البؤري بالنسبة لـ
.filmGauge الحالي لـ[page:PerspectiveCamera].
بشكل افتراضي، يتم تحديد البعد البؤري للكاميرا بحجم 35 مم (إطار كامل).
fullWidth — العرض الكامل لإعداد العرض المتعدد
fullHeight — الارتفاع الكامل لإعداد العرض المتعدد
x — الإزاحة الأفقية للكاميرا الفرعية
y — الإزاحة الرأسية للكاميرا الفرعية
width — عرض الكاميرا الفرعية
height — ارتفاع الكاميرا الفرعية
يضبط الإزاحة في هرم الرؤية الأكبر. هذا مفيد لإعدادات النوافذ المتعددة أو إعدادات متعددة الشاشات/الأجهزة.
على سبيل المثال، إذا كان لديك 3x2 شاشة
وكانت كل شاشة 1920x1080 وكانت الشاشات في شبكة مثل هذه:
+---+---+---+ | A | B | C | +---+---+---+ | D | E | F | +---+---+---+فمن أجل كل شاشة، ستقوم بالاستدعاء بهذا الشكل:
const w = 1920;
const h = 1080;
const fullWidth = w * 3;
const fullHeight = h * 2;
// A
camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );
// B
camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );
// C
camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );
// D
camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );
// E
camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );
// F
camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );
يرجى ملاحظة أنه لا يوجد سبب لأن تكون الشاشات بحجم متساوٍ أو متوضعة على شكل شبكة. يمكن توزيعها بأي شكل يناسب الاحتياجات المحددة.
يقوم بتحديث مصفوفة الإسقاط الخاصة بالكاميرا، ويجب استدعاءها بعد أي تغيير في المعاملات.
meta -- كائن يحتوي على بيانات وصفية مثل القوام أو الصور في الكائنات
الفرعية.
يمكن تحويل الكاميرا إلى تنسيق three.js
[link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]