Files
godot-docs-l10n/classes/ru/class_projection.rst

750 lines
55 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_Projection:
Projection
==========
Матрица 4×4 для трехмерных проективных преобразований.
.. rst-class:: classref-introduction-group
Описание
----------------
Матрица 4×4, используемая для 3D-проективных преобразований. Она может представлять такие преобразования, как перемещение, вращение, масштабирование, сдвиг и перспективное деление. Она состоит из четырех столбцов :ref:`Vector4<class_Vector4>`.
Для чисто линейных преобразований (перемещение, вращение и масштабирование) рекомендуется использовать :ref:`Transform3D<class_Transform3D>`, так как она более производительна и требует меньше памяти.
Используется внутренне как матрица проекции :ref:`Camera3D<class_Camera3D>`.
.. note::
Существуют заметные различия при использовании данного API с C#. Подробнее см. :ref:`doc_c_sharp_differences`.
.. rst-class:: classref-reftable-group
Свойства
----------------
.. table::
:widths: auto
+-------------------------------+---------------------------------------+-------------------------+
| :ref:`Vector4<class_Vector4>` | :ref:`w<class_Projection_property_w>` | ``Vector4(0, 0, 0, 1)`` |
+-------------------------------+---------------------------------------+-------------------------+
| :ref:`Vector4<class_Vector4>` | :ref:`x<class_Projection_property_x>` | ``Vector4(1, 0, 0, 0)`` |
+-------------------------------+---------------------------------------+-------------------------+
| :ref:`Vector4<class_Vector4>` | :ref:`y<class_Projection_property_y>` | ``Vector4(0, 1, 0, 0)`` |
+-------------------------------+---------------------------------------+-------------------------+
| :ref:`Vector4<class_Vector4>` | :ref:`z<class_Projection_property_z>` | ``Vector4(0, 0, 1, 0)`` |
+-------------------------------+---------------------------------------+-------------------------+
.. rst-class:: classref-reftable-group
Конструкторы
------------------------
.. table::
:widths: auto
+-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`Projection<class_Projection_constructor_Projection>`\ (\ ) |
+-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`Projection<class_Projection_constructor_Projection>`\ (\ from\: :ref:`Projection<class_Projection>`\ ) |
+-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`Projection<class_Projection_constructor_Projection>`\ (\ from\: :ref:`Transform3D<class_Transform3D>`\ ) |
+-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`Projection<class_Projection_constructor_Projection>`\ (\ x_axis\: :ref:`Vector4<class_Vector4>`, y_axis\: :ref:`Vector4<class_Vector4>`, z_axis\: :ref:`Vector4<class_Vector4>`, w_axis\: :ref:`Vector4<class_Vector4>`\ ) |
+-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-reftable-group
Методы
------------
.. table::
:widths: auto
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`create_depth_correction<class_Projection_method_create_depth_correction>`\ (\ flip_y\: :ref:`bool<class_bool>`\ ) |static| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`create_fit_aabb<class_Projection_method_create_fit_aabb>`\ (\ aabb\: :ref:`AABB<class_AABB>`\ ) |static| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`create_for_hmd<class_Projection_method_create_for_hmd>`\ (\ eye\: :ref:`int<class_int>`, aspect\: :ref:`float<class_float>`, intraocular_dist\: :ref:`float<class_float>`, display_width\: :ref:`float<class_float>`, display_to_lens\: :ref:`float<class_float>`, oversample\: :ref:`float<class_float>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`\ ) |static| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`create_frustum<class_Projection_method_create_frustum>`\ (\ left\: :ref:`float<class_float>`, right\: :ref:`float<class_float>`, bottom\: :ref:`float<class_float>`, top\: :ref:`float<class_float>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`\ ) |static| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`create_frustum_aspect<class_Projection_method_create_frustum_aspect>`\ (\ size\: :ref:`float<class_float>`, aspect\: :ref:`float<class_float>`, offset\: :ref:`Vector2<class_Vector2>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`, flip_fov\: :ref:`bool<class_bool>` = false\ ) |static| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`create_light_atlas_rect<class_Projection_method_create_light_atlas_rect>`\ (\ rect\: :ref:`Rect2<class_Rect2>`\ ) |static| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`create_orthogonal<class_Projection_method_create_orthogonal>`\ (\ left\: :ref:`float<class_float>`, right\: :ref:`float<class_float>`, bottom\: :ref:`float<class_float>`, top\: :ref:`float<class_float>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`\ ) |static| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`create_orthogonal_aspect<class_Projection_method_create_orthogonal_aspect>`\ (\ size\: :ref:`float<class_float>`, aspect\: :ref:`float<class_float>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`, flip_fov\: :ref:`bool<class_bool>` = false\ ) |static| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`create_perspective<class_Projection_method_create_perspective>`\ (\ fovy\: :ref:`float<class_float>`, aspect\: :ref:`float<class_float>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`, flip_fov\: :ref:`bool<class_bool>` = false\ ) |static| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`create_perspective_hmd<class_Projection_method_create_perspective_hmd>`\ (\ fovy\: :ref:`float<class_float>`, aspect\: :ref:`float<class_float>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`, flip_fov\: :ref:`bool<class_bool>`, eye\: :ref:`int<class_int>`, intraocular_dist\: :ref:`float<class_float>`, convergence_dist\: :ref:`float<class_float>`\ ) |static| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`determinant<class_Projection_method_determinant>`\ (\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`flipped_y<class_Projection_method_flipped_y>`\ (\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_aspect<class_Projection_method_get_aspect>`\ (\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2<class_Vector2>` | :ref:`get_far_plane_half_extents<class_Projection_method_get_far_plane_half_extents>`\ (\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_fov<class_Projection_method_get_fov>`\ (\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_fovy<class_Projection_method_get_fovy>`\ (\ fovx\: :ref:`float<class_float>`, aspect\: :ref:`float<class_float>`\ ) |static| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_lod_multiplier<class_Projection_method_get_lod_multiplier>`\ (\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_pixels_per_meter<class_Projection_method_get_pixels_per_meter>`\ (\ for_pixel_width\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Plane<class_Plane>` | :ref:`get_projection_plane<class_Projection_method_get_projection_plane>`\ (\ plane\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2<class_Vector2>` | :ref:`get_viewport_half_extents<class_Projection_method_get_viewport_half_extents>`\ (\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_z_far<class_Projection_method_get_z_far>`\ (\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_z_near<class_Projection_method_get_z_near>`\ (\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`inverse<class_Projection_method_inverse>`\ (\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_orthogonal<class_Projection_method_is_orthogonal>`\ (\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`jitter_offseted<class_Projection_method_jitter_offseted>`\ (\ offset\: :ref:`Vector2<class_Vector2>`\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`perspective_znear_adjusted<class_Projection_method_perspective_znear_adjusted>`\ (\ new_znear\: :ref:`float<class_float>`\ ) |const| |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-reftable-group
Операторы
------------------
.. table::
:widths: auto
+-------------------------------------+-----------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator !=<class_Projection_operator_neq_Projection>`\ (\ right\: :ref:`Projection<class_Projection>`\ ) |
+-------------------------------------+-----------------------------------------------------------------------------------------------------------------+
| :ref:`Projection<class_Projection>` | :ref:`operator *<class_Projection_operator_mul_Projection>`\ (\ right\: :ref:`Projection<class_Projection>`\ ) |
+-------------------------------------+-----------------------------------------------------------------------------------------------------------------+
| :ref:`Vector4<class_Vector4>` | :ref:`operator *<class_Projection_operator_mul_Vector4>`\ (\ right\: :ref:`Vector4<class_Vector4>`\ ) |
+-------------------------------------+-----------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator ==<class_Projection_operator_eq_Projection>`\ (\ right\: :ref:`Projection<class_Projection>`\ ) |
+-------------------------------------+-----------------------------------------------------------------------------------------------------------------+
| :ref:`Vector4<class_Vector4>` | :ref:`operator []<class_Projection_operator_idx_int>`\ (\ index\: :ref:`int<class_int>`\ ) |
+-------------------------------------+-----------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Перечисления
------------------------
.. _enum_Projection_Planes:
.. rst-class:: classref-enumeration
enum **Planes**: :ref:`🔗<enum_Projection_Planes>`
.. _class_Projection_constant_PLANE_NEAR:
.. rst-class:: classref-enumeration-constant
:ref:`Planes<enum_Projection_Planes>` **PLANE_NEAR** = ``0``
Значение индекса ближней плоскости отсечения проекции.
.. _class_Projection_constant_PLANE_FAR:
.. rst-class:: classref-enumeration-constant
:ref:`Planes<enum_Projection_Planes>` **PLANE_FAR** = ``1``
Значение индекса дальней плоскости отсечения проекции.
.. _class_Projection_constant_PLANE_LEFT:
.. rst-class:: classref-enumeration-constant
:ref:`Planes<enum_Projection_Planes>` **PLANE_LEFT** = ``2``
Значение индекса левой плоскости отсечения проекции.
.. _class_Projection_constant_PLANE_TOP:
.. rst-class:: classref-enumeration-constant
:ref:`Planes<enum_Projection_Planes>` **PLANE_TOP** = ``3``
Значение индекса левой плоскости отсечения проекции.
.. _class_Projection_constant_PLANE_RIGHT:
.. rst-class:: classref-enumeration-constant
:ref:`Planes<enum_Projection_Planes>` **PLANE_RIGHT** = ``4``
Значение индекса правой плоскости отсечения проекции.
.. _class_Projection_constant_PLANE_BOTTOM:
.. rst-class:: classref-enumeration-constant
:ref:`Planes<enum_Projection_Planes>` **PLANE_BOTTOM** = ``5``
Значение индекса нижней плоскости отсечения проекции.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Константы
------------------
.. _class_Projection_constant_IDENTITY:
.. rst-class:: classref-constant
**IDENTITY** = ``Projection(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)`` :ref:`🔗<class_Projection_constant_IDENTITY>`
**Projection** без определенного преобразования. При применении к другим структурам данных преобразование не выполняется.
.. _class_Projection_constant_ZERO:
.. rst-class:: classref-constant
**ZERO** = ``Projection(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)`` :ref:`🔗<class_Projection_constant_ZERO>`
**Projection** со всеми значениями, инициализированными до 0. При применении к другим структурам данных они будут обнулены.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания свойств
--------------------------------
.. _class_Projection_property_w:
.. rst-class:: classref-property
:ref:`Vector4<class_Vector4>` **w** = ``Vector4(0, 0, 0, 1)`` :ref:`🔗<class_Projection_property_w>`
Вектор W матрицы проекции (столбец 3). Эквивалентно индексу массива ``3``.
.. rst-class:: classref-item-separator
----
.. _class_Projection_property_x:
.. rst-class:: classref-property
:ref:`Vector4<class_Vector4>` **x** = ``Vector4(1, 0, 0, 0)`` :ref:`🔗<class_Projection_property_x>`
Вектор X матрицы проекции (столбец 0). Эквивалентно индексу массива ``0``.
.. rst-class:: classref-item-separator
----
.. _class_Projection_property_y:
.. rst-class:: classref-property
:ref:`Vector4<class_Vector4>` **y** = ``Vector4(0, 1, 0, 0)`` :ref:`🔗<class_Projection_property_y>`
Вектор Y матрицы проекции (столбец 1). Эквивалентно индексу массива ``1``.
.. rst-class:: classref-item-separator
----
.. _class_Projection_property_z:
.. rst-class:: classref-property
:ref:`Vector4<class_Vector4>` **z** = ``Vector4(0, 0, 1, 0)`` :ref:`🔗<class_Projection_property_z>`
Вектор Z матрицы проекции (столбец 2). Эквивалентно индексу массива ``2``.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания конструктора
------------------------------------------
.. _class_Projection_constructor_Projection:
.. rst-class:: classref-constructor
:ref:`Projection<class_Projection>` **Projection**\ (\ ) :ref:`🔗<class_Projection_constructor_Projection>`
Создает инициализированную по умолчанию **Projection**, идентичную :ref:`IDENTITY<class_Projection_constant_IDENTITY>`.
\ **Примечание:** В C# это создает **Projection**, идентичную :ref:`ZERO<class_Projection_constant_ZERO>`.
.. rst-class:: classref-item-separator
----
.. rst-class:: classref-constructor
:ref:`Projection<class_Projection>` **Projection**\ (\ from\: :ref:`Projection<class_Projection>`\ )
Создает **Projection** как копию заданной **Projection**.
.. rst-class:: classref-item-separator
----
.. rst-class:: classref-constructor
:ref:`Projection<class_Projection>` **Projection**\ (\ from\: :ref:`Transform3D<class_Transform3D>`\ )
Создает проекцию как копию заданного :ref:`Transform3D<class_Transform3D>`.
.. rst-class:: classref-item-separator
----
.. rst-class:: classref-constructor
:ref:`Projection<class_Projection>` **Projection**\ (\ x_axis\: :ref:`Vector4<class_Vector4>`, y_axis\: :ref:`Vector4<class_Vector4>`, z_axis\: :ref:`Vector4<class_Vector4>`, w_axis\: :ref:`Vector4<class_Vector4>`\ )
Создает проекцию из четырех значений :ref:`Vector4<class_Vector4>` (столбцов матрицы).
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания метода
------------------------------
.. _class_Projection_method_create_depth_correction:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **create_depth_correction**\ (\ flip_y\: :ref:`bool<class_bool>`\ ) |static| :ref:`🔗<class_Projection_method_create_depth_correction>`
Создает новую **Projection**, которая проецирует позиции из диапазона глубины от ``-1`` до ``1`` в диапазон от ``0`` до ``1``, и переворачивает спроецированные позиции вертикально в соответствии с ``flip_y``.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_create_fit_aabb:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **create_fit_aabb**\ (\ aabb\: :ref:`AABB<class_AABB>`\ ) |static| :ref:`🔗<class_Projection_method_create_fit_aabb>`
Создает новую **Projection**, которая масштабирует заданную проекцию так, чтобы она соответствовала заданному :ref:`AABB<class_AABB>` в пространстве проекции.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_create_for_hmd:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **create_for_hmd**\ (\ eye\: :ref:`int<class_int>`, aspect\: :ref:`float<class_float>`, intraocular_dist\: :ref:`float<class_float>`, display_width\: :ref:`float<class_float>`, display_to_lens\: :ref:`float<class_float>`, oversample\: :ref:`float<class_float>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`\ ) |static| :ref:`🔗<class_Projection_method_create_for_hmd>`
Создает новую **Projection** для проецирования позиций на шлем виртуальной реальности с заданным соотношением сторон X:Y, расстоянием между глазами, шириной дисплея, расстоянием до линзы, коэффициентом передискретизации и плоскостями отсечения глубины.
\ ``eye`` создает проекцию для левого глаза, если установлено значение 1, или для правого глаза, если установлено значение 2.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_create_frustum:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **create_frustum**\ (\ left\: :ref:`float<class_float>`, right\: :ref:`float<class_float>`, bottom\: :ref:`float<class_float>`, top\: :ref:`float<class_float>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`\ ) |static| :ref:`🔗<class_Projection_method_create_frustum>`
Создает новую **Projection**, которая проецирует положения в усеченной пирамиде с заданными плоскостями отсечения.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_create_frustum_aspect:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **create_frustum_aspect**\ (\ size\: :ref:`float<class_float>`, aspect\: :ref:`float<class_float>`, offset\: :ref:`Vector2<class_Vector2>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`, flip_fov\: :ref:`bool<class_bool>` = false\ ) |static| :ref:`🔗<class_Projection_method_create_frustum_aspect>`
Создает новую **Projection**, которая проецирует позиции в усеченном пространстве с заданным размером, соотношением сторон X:Y, смещением и плоскостями отсечения.
\ ``flip_fov`` определяет, переворачивается ли поле зрения проекции по диагонали.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_create_light_atlas_rect:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **create_light_atlas_rect**\ (\ rect\: :ref:`Rect2<class_Rect2>`\ ) |static| :ref:`🔗<class_Projection_method_create_light_atlas_rect>`
Создает новую **Projection**, которая проецирует позиции в заданный :ref:`Rect2<class_Rect2>`.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_create_orthogonal:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **create_orthogonal**\ (\ left\: :ref:`float<class_float>`, right\: :ref:`float<class_float>`, bottom\: :ref:`float<class_float>`, top\: :ref:`float<class_float>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`\ ) |static| :ref:`🔗<class_Projection_method_create_orthogonal>`
Создает новую **Projection**, которая проецирует положения с использованием ортогональной проекции с заданными плоскостями отсечения.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_create_orthogonal_aspect:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **create_orthogonal_aspect**\ (\ size\: :ref:`float<class_float>`, aspect\: :ref:`float<class_float>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`, flip_fov\: :ref:`bool<class_bool>` = false\ ) |static| :ref:`🔗<class_Projection_method_create_orthogonal_aspect>`
Создает новую **Projection**, которая проецирует позиции с использованием ортогональной проекции с заданным размером, соотношением сторон X:Y и плоскостями отсечения.
\ ``flip_fov`` определяет, перевернуто ли поле зрения проекции по диагонали.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_create_perspective:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **create_perspective**\ (\ fovy\: :ref:`float<class_float>`, aspect\: :ref:`float<class_float>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`, flip_fov\: :ref:`bool<class_bool>` = false\ ) |static| :ref:`🔗<class_Projection_method_create_perspective>`
Создает новую **Projection**, которая проецирует позиции с использованием перспективной проекции с заданным полем зрения оси Y (в градусах), соотношением сторон X:Y и плоскостями отсечения.
\ ``flip_fov`` определяет, перевернуто ли поле зрения проекции по диагонали.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_create_perspective_hmd:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **create_perspective_hmd**\ (\ fovy\: :ref:`float<class_float>`, aspect\: :ref:`float<class_float>`, z_near\: :ref:`float<class_float>`, z_far\: :ref:`float<class_float>`, flip_fov\: :ref:`bool<class_bool>`, eye\: :ref:`int<class_int>`, intraocular_dist\: :ref:`float<class_float>`, convergence_dist\: :ref:`float<class_float>`\ ) |static| :ref:`🔗<class_Projection_method_create_perspective_hmd>`
Создает новую **Projection**, которая проецирует положения с использованием перспективной проекции с заданным полем зрения оси Y (в градусах), соотношением сторон X:Y и расстояниями отсечения. Проекция настраивается для головного дисплея с заданным расстоянием между глазами и расстоянием до точки, на которой можно сфокусироваться.
\ ``eye`` создает проекцию для левого глаза, если установлено значение 1, или для правого глаза, если установлено значение 2.
\ ``flip_fov`` определяет, переворачивается ли поле зрения проекции по диагонали.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_determinant:
.. rst-class:: classref-method
:ref:`float<class_float>` **determinant**\ (\ ) |const| :ref:`🔗<class_Projection_method_determinant>`
Возвращает скалярное значение, которое является знаковым множителем, на который масштабируются площади этой матрицей. Если знак отрицательный, матрица меняет ориентацию площади.
Определитель можно использовать для вычисления обратимости матрицы или решения линейных систем уравнений, включающих матрицу, среди других приложений.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_flipped_y:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **flipped_y**\ (\ ) |const| :ref:`🔗<class_Projection_method_flipped_y>`
Возвращает копию этой **Projection** с перевернутыми знаками значений столбца Y.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_get_aspect:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_aspect**\ (\ ) |const| :ref:`🔗<class_Projection_method_get_aspect>`
Возвращает соотношение сторон X:Y области просмотра **Projection**.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_get_far_plane_half_extents:
.. rst-class:: classref-method
:ref:`Vector2<class_Vector2>` **get_far_plane_half_extents**\ (\ ) |const| :ref:`🔗<class_Projection_method_get_far_plane_half_extents>`
Возвращает размеры дальней плоскости отсечения проекции, деленные на два.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_get_fov:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_fov**\ (\ ) |const| :ref:`🔗<class_Projection_method_get_fov>`
Возвращает горизонтальное поле зрения проекции (в градусах).
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_get_fovy:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_fovy**\ (\ fovx\: :ref:`float<class_float>`, aspect\: :ref:`float<class_float>`\ ) |static| :ref:`🔗<class_Projection_method_get_fovy>`
Возвращает вертикальное поле зрения проекции (в градусах), связанное с заданным горизонтальным полем зрения (в градусах) и соотношением сторон.
\ **Примечание:** В отличие от большинства методов **Projection**, ``aspects`` ожидается равным 1, деленной на соотношение сторон X:Y.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_get_lod_multiplier:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_lod_multiplier**\ (\ ) |const| :ref:`🔗<class_Projection_method_get_lod_multiplier>`
Возвращает коэффициент, на который масштабируется видимый уровень детализации этой **Projection**.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_get_pixels_per_meter:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_pixels_per_meter**\ (\ for_pixel_width\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Projection_method_get_pixels_per_meter>`
Возвращает ``for_pixel_width``, деленный на ширину области просмотра, измеренную в метрах на ближней плоскости, после применения этой **Projection**.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_get_projection_plane:
.. rst-class:: classref-method
:ref:`Plane<class_Plane>` **get_projection_plane**\ (\ plane\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Projection_method_get_projection_plane>`
Возвращает плоскость отсечения этой **Projection**, индекс которой задан ``plane``.
\ ``plane`` должен быть равен одному из :ref:`PLANE_NEAR<class_Projection_constant_PLANE_NEAR>`, :ref:`PLANE_FAR<class_Projection_constant_PLANE_FAR>`, :ref:`PLANE_LEFT<class_Projection_constant_PLANE_LEFT>`, :ref:`PLANE_TOP<class_Projection_constant_PLANE_TOP>`, :ref:`PLANE_RIGHT<class_Projection_constant_PLANE_RIGHT>` или :ref:`PLANE_BOTTOM<class_Projection_constant_PLANE_BOTTOM>`.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_get_viewport_half_extents:
.. rst-class:: classref-method
:ref:`Vector2<class_Vector2>` **get_viewport_half_extents**\ (\ ) |const| :ref:`🔗<class_Projection_method_get_viewport_half_extents>`
Возвращает размеры плоскости области просмотра, на которую проецируются позиции этой **Projection**, деленные на два.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_get_z_far:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_z_far**\ (\ ) |const| :ref:`🔗<class_Projection_method_get_z_far>`
Возвращает расстояние для данной **Projection**, за пределами которого позиции обрезаются.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_get_z_near:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_z_near**\ (\ ) |const| :ref:`🔗<class_Projection_method_get_z_near>`
Возвращает расстояние для данной **Projection**, перед которым позиции обрезаются.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_inverse:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **inverse**\ (\ ) |const| :ref:`🔗<class_Projection_method_inverse>`
Возвращает **Projection**, которая выполняет обратное проективное преобразование данной **Projection**.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_is_orthogonal:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_orthogonal**\ (\ ) |const| :ref:`🔗<class_Projection_method_is_orthogonal>`
Возвращает ``true``, если эта **Projection** выполняет ортогональную проекцию.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_jitter_offseted:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **jitter_offseted**\ (\ offset\: :ref:`Vector2<class_Vector2>`\ ) |const| :ref:`🔗<class_Projection_method_jitter_offseted>`
Возвращает **Projection** со значениями X и Y из заданного :ref:`Vector2<class_Vector2>`, добавленными к первому и второму значениям конечного столбца соответственно.
.. rst-class:: classref-item-separator
----
.. _class_Projection_method_perspective_znear_adjusted:
.. rst-class:: classref-method
:ref:`Projection<class_Projection>` **perspective_znear_adjusted**\ (\ new_znear\: :ref:`float<class_float>`\ ) |const| :ref:`🔗<class_Projection_method_perspective_znear_adjusted>`
Возвращает **Projection** с ближним расстоянием отсечения, настроенным на ``new_znear``.
\ **Примечание:** Исходная **Projection** должна быть перспективной проекцией.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания оператора
------------------------------------
.. _class_Projection_operator_neq_Projection:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator !=**\ (\ right\: :ref:`Projection<class_Projection>`\ ) :ref:`🔗<class_Projection_operator_neq_Projection>`
Возвращает ``true``, если проекции не равны.
\ **Примечание:** Из-за ошибок точности с плавающей точкой это может вернуть ``true``, даже если проекции фактически равны. Метод ``is_equal_approx`` может быть добавлен в будущей версии Godot.
.. rst-class:: classref-item-separator
----
.. _class_Projection_operator_mul_Projection:
.. rst-class:: classref-operator
:ref:`Projection<class_Projection>` **operator ***\ (\ right\: :ref:`Projection<class_Projection>`\ ) :ref:`🔗<class_Projection_operator_mul_Projection>`
Возвращает **Projection**, которая применяет комбинированные преобразования этой **Projection** и ``right``.
.. rst-class:: classref-item-separator
----
.. _class_Projection_operator_mul_Vector4:
.. rst-class:: classref-operator
:ref:`Vector4<class_Vector4>` **operator ***\ (\ right\: :ref:`Vector4<class_Vector4>`\ ) :ref:`🔗<class_Projection_operator_mul_Vector4>`
Проецирует (умножает) заданный :ref:`Vector4<class_Vector4>` на данную матрицу **Projection**.
.. rst-class:: classref-item-separator
----
.. _class_Projection_operator_eq_Projection:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator ==**\ (\ right\: :ref:`Projection<class_Projection>`\ ) :ref:`🔗<class_Projection_operator_eq_Projection>`
Возвращает ``true``, если проекции равны.
\ **Примечание:** Из-за ошибок точности с плавающей точкой это может вернуть ``false``, даже если проекции фактически равны. Метод ``is_equal_approx`` может быть добавлен в будущей версии Godot.
.. rst-class:: classref-item-separator
----
.. _class_Projection_operator_idx_int:
.. rst-class:: classref-operator
:ref:`Vector4<class_Vector4>` **operator []**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_Projection_operator_idx_int>`
Возвращает столбец **Projection** с заданным индексом.
Индексы имеют следующий порядок: x, y, z, w.
.. |virtual| replace:: :abbr:`virtual (Этот метод обычно должен быть переопределен пользователем, чтобы иметь какой-либо эффект.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Этот метод не имеет побочных эффектов. Он не изменяет ни одну из переменных-членов экземпляра.)`
.. |vararg| replace:: :abbr:`vararg (Этот метод принимает любое количество аргументов после описанных здесь.)`
.. |constructor| replace:: :abbr:`constructor (Этот метод используется для создания типа.)`
.. |static| replace:: :abbr:`static (Этот метод не нуждается в вызове экземпляра, поэтому его можно вызвать напрямую, используя имя класса.)`
.. |operator| replace:: :abbr:`operator (Этот метод описывает допустимый оператор для использования с этим типом в качестве левого операнда.)`
.. |bitfield| replace:: :abbr:`BitField (Это значение является целым числом, составленным как битовая маска следующих флагов.)`
.. |void| replace:: :abbr:`void (Нет возвращаемого значения.)`