reckfellENGINE

Projection

Матрица 4×4 для проективных преобразований с четырьмя столбцами Vector4.

На этой странице
struct ProjectionReckfellSharpНаследует ValueType

Структура C#, представляющая матрицу 4×4 с четырьмя столбцами Vector4: X, Y, Z и W. Используется для проективных преобразований и настройки проекции камеры. Присваивание копирует значение матрицы.

Projection.Identity — единичная матрица; default(Projection) имеет нулевые коэффициенты и не равен Identity. Ни одно из этих значений не является true или false в C#: преобразования Projection в bool нет. Явное сравнение с Identity проверяет коэффициенты, а не пригодность матрицы для конкретной камеры.

Выбирайте конструктор проекции по задаче и соблюдайте его ограничения для ближней и дальней границ, углов и размеров. Обычное преобразование положения, поворота и масштаба объекта описывается Transform3D, а не автоматически подставляется в любую камеру.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы3

Projection3 перегрузки
# Projection · 1/3
C#
public Projection(Transform3D transform);

Строит a Projection от четырех Vector4 Значения (колонки матриц).

Параметры
ИмяТипПо умолчанию
transformTransform3D—
transform

:: Transform3D.

# Projection · 2/3
C#
public Projection(Vector4 x, Vector4 y, Vector4 z, Vector4 w);

Строит a Projection от четырех Vector4 Значения (колонки матриц).

Параметры
ИмяТипПо умолчанию
xVector4—
yVector4—
zVector4—
wVector4—
x

Колонка Х или указатель колонки 0.

y

Колонка Y или указатель колонки 1.

z

Колонка Z или указатель колонки 2.

w

Колонка W или указатель колонки 3.

# Projection · 3/3
C#
public Projection(float xx, float xy, float xz, float xw, float yx, float yy, float yz, float yw, float zx, float zy, float zz, float zw, float wx, float wy, float wz, float ww);

Строит a Projection от четырех Vector4 Значения (колонки матриц).

Параметры
ИмяТипПо умолчанию
xxfloat—
xyfloat—
xzfloat—
xwfloat—
yxfloat—
yyfloat—
yzfloat—
ywfloat—
zxfloat—
zyfloat—
zzfloat—
zwfloat—
wxfloat—
wyfloat—
wzfloat—
wwfloat—
xx

Компонент X вектора X, доступ через p.X.X или [0][0].

xy

Компонент Y вектора X, доступ через p.X.Y или [0][1].

xz

Компонент Z вектора X, доступ через p.X.Z или [0][2].

xw

Компонент W вектора X, доступ через p.X.W или [0][3].

yx

Вектор Y, компонент X, доступ через p.Y.X или [1][0].

yy

Вектор Y, компонент Y, доступ через p.Y.Y или [1][1].

yz

Компонент Z вектора Y, доступ через p.Y.Z или [1][2].

yw

Компонент W вектора Y, доступ к которому можно получить через p.Y.W или [1][3].

zx

Компонент X вектора Z, доступ через p.Z.X или [2][0].

zy

Компонент Y вектора Z, доступ к которому можно получить через p.Z.Y или [2][1].

zz

Компонент Z вектора Z, доступ через p.Z.Z или [2][2].

zw

Компонент W вектора Z, доступ через p.Z.W или [2][3].

wx

Вектор W, компонент X, доступ через p.W.X или [3][0].

wy

Вектор W, компонент Y, доступ через p.W.Y или [3][1].

wz

Компонент Z вектора W, доступ через p.W.Z или [3][2].

ww

Компонент W вектора W, доступ через p.W.W или [3][3].

Свойства4

IdentityСвойство
# Identity
C#
public static Projection Identity { get; }

Projection без определенного преобразования. При применении к другим структурам данных преобразование не выполняется.

Item2 перегрузки
# Item · 1/2
C#
public Vector4 this[int column] { get; set; }

Целые колонки в виде Vector4.

# Item · 2/2
C#
public float this[int column, int row] { get; set; }

Доступ к единичным значениям.

ZeroСвойство
# Zero
C#
public static Projection Zero { get; }

Projection со всеми значениями, инициализированными до 0. При применении к другим структурам данных они будут обнулены.

Методы38

CreateDepthCorrectionProjection
# CreateDepthCorrection
C#
public static Projection CreateDepthCorrection(bool flipY);

Создает новую Projection, которая проецирует позиции из диапазона глубины от -1 до 1 в диапазон от 0 до 1, и переворачивает спроецированные позиции вертикально в соответствии с flip_y.

Параметры
ИмяТипПо умолчанию
flipYbool—
flipY

Если проекция должна быть перевернута вертикально.

Возвращает Projection

Созданная проекция.

CreateFitAabbProjection
# CreateFitAabb
C#
public static Projection CreateFitAabb(Aabb aabb);

Создает новую Projection, которая масштабирует заданную проекцию так, чтобы она соответствовала заданному Aabb в пространстве проекции.

Параметры
ИмяТипПо умолчанию
aabbAabb—
aabb

:: Aabb Чтобы вписаться в проекцию.

Возвращает Projection

Созданная проекция.

CreateForHmdProjection
# CreateForHmd
C#
public static Projection CreateForHmd(int eye, float aspect, float intraocularDist, float displayWidth, float displayToLens, float oversample, float zNear, float zFar);

Создает новую Projection для проецирования позиций на шлем виртуальной реальности с заданным соотношением сторон X:Y, расстоянием между глазами, шириной дисплея, расстоянием до линзы, коэффициентом передискретизации и плоскостями отсечения глубины. eye создает проекцию для левого глаза, если установлено значение 1, или для правого глаза, если установлено значение 2.

Параметры
ИмяТипПо умолчанию
eyeint—
aspectfloat—
intraocularDistfloat—
displayWidthfloat—
displayToLensfloat—
oversamplefloat—
zNearfloat—
zFarfloat—
eye

Глаза, чтобы создать проекцию для. Левый глаз, когда установлен на 1, правый глаз, если установлен на 2.

aspect

Соотношение сторон.

intraocularDist

Расстояние между глазами.

displayWidth

Ширина дисплея.

displayToLens

Расстояние до линзы.

oversample

Сверхвыборочный фактор.

zNear

Ближайшее расстояние.

zFar

Далеко отрезок.

Возвращает Projection

Созданная проекция.

CreateFrustumProjection
# CreateFrustum
C#
public static Projection CreateFrustum(float left, float right, float bottom, float top, float depthNear, float depthFar);

Создает новую Projection, которая проецирует положения в усеченной пирамиде с заданными плоскостями отсечения.

Параметры
ИмяТипПо умолчанию
leftfloat—
rightfloat—
bottomfloat—
topfloat—
depthNearfloat—
depthFarfloat—
left

Расстояние слева.

right

Правильная дистанция.

bottom

Расстояние между нижними точками.

top

Лучшая дистанция вырезки.

depthNear

Ближайшее расстояние.

depthFar

Далеко отрезок.

Возвращает Projection

Созданная проекция.

CreateFrustumAspectProjection
# CreateFrustumAspect
C#
public static Projection CreateFrustumAspect(float size, float aspect, Vector2 offset, float depthNear, float depthFar, bool flipFov);

Создает новую Projection, которая проецирует позиции в усеченном пространстве с заданным размером, соотношением сторон X:Y, смещением и плоскостями отсечения. flip_fov определяет, переворачивается ли поле зрения проекции по диагонали.

Параметры
ИмяТипПо умолчанию
sizefloat—
aspectfloat—
offsetVector2—
depthNearfloat—
depthFarfloat—
flipFovbool—
size

Размер фрустума.

aspect

Соотношение сторон.

offset

Компенсация подлежит применению.

depthNear

Ближайшее расстояние.

depthFar

Далеко отрезок.

flipFov

Если поле обзора перевернуто по диагонали проекции.

Возвращает Projection

Созданная проекция.

CreateLightAtlasRectProjection
# CreateLightAtlasRect
C#
public static Projection CreateLightAtlasRect(Rect2 rect);

Создает новую Projection, которая проецирует позиции в заданный Rect2.

Параметры
ИмяТипПо умолчанию
rectRect2—
rect

:: Rect2 на проектные должности.

Возвращает Projection

Созданная проекция.

CreateOrthogonalProjection
# CreateOrthogonal
C#
public static Projection CreateOrthogonal(float left, float right, float bottom, float top, float zNear, float zFar);

Создает новую Projection, которая проецирует положения с использованием ортогональной проекции с заданными плоскостями отсечения.

Параметры
ИмяТипПо умолчанию
leftfloat—
rightfloat—
bottomfloat—
topfloat—
zNearfloat—
zFarfloat—
left

Расстояние слева.

right

Правильная дистанция.

bottom

Расстояние между нижними точками.

top

Лучшая дистанция вырезки.

zNear

Ближайшее расстояние.

zFar

Далеко отрезок.

Возвращает Projection

Созданная проекция.

CreateOrthogonalAspectProjection
# CreateOrthogonalAspect
C#
public static Projection CreateOrthogonalAspect(float size, float aspect, float zNear, float zFar, bool flipFov);

Создает новую Projection, которая проецирует позиции с использованием ортогональной проекции с заданным размером, соотношением сторон X:Y и плоскостями отсечения. flip_fov определяет, перевернуто ли поле зрения проекции по диагонали.

Параметры
ИмяТипПо умолчанию
sizefloat—
aspectfloat—
zNearfloat—
zFarfloat—
flipFovbool—
size

Размер фрустума.

aspect

Соотношение сторон.

zNear

Ближайшее расстояние.

zFar

Далеко отрезок.

flipFov

Если поле обзора перевернуто по диагонали проекции.

Возвращает Projection

Созданная проекция.

CreatePerspectiveProjection
# CreatePerspective
C#
public static Projection CreatePerspective(float fovyDegrees, float aspect, float zNear, float zFar, bool flipFov);

Создает новую Projection, которая проецирует позиции с использованием перспективной проекции с заданным полем зрения оси Y (в градусах), соотношением сторон X:Y и плоскостями отсечения. flip_fov определяет, перевернуто ли поле зрения проекции по диагонали.

Параметры
ИмяТипПо умолчанию
fovyDegreesfloat—
aspectfloat—
zNearfloat—
zFarfloat—
flipFovbool—
fovyDegrees
  • вертикальное поле обзора (в градусах).
aspect

Соотношение сторон.

zNear

Ближайшее расстояние.

zFar

Далеко отрезок.

flipFov

Если поле обзора перевернуто по диагонали проекции.

Возвращает Projection

Созданная проекция.

CreatePerspectiveHmdProjection
# CreatePerspectiveHmd
C#
public static Projection CreatePerspectiveHmd(float fovyDegrees, float aspect, float zNear, float zFar, bool flipFov, int eye, float intraocularDist, float convergenceDist);

Создает новую Projection, которая проецирует положения с использованием перспективной проекции с заданным полем зрения оси Y (в градусах), соотношением сторон X:Y и расстояниями отсечения. Проекция настраивается для головного дисплея с заданным расстоянием между глазами и расстоянием до точки, на которой можно сфокусироваться. eye создает проекцию для левого глаза, если установлено значение 1, или для правого глаза, если установлено значение 2. flip_fov определяет, переворачивается ли поле зрения проекции по диагонали.

Параметры
ИмяТипПо умолчанию
fovyDegreesfloat—
aspectfloat—
zNearfloat—
zFarfloat—
flipFovbool—
eyeint—
intraocularDistfloat—
convergenceDistfloat—
fovyDegrees
  • вертикальное поле обзора (в градусах).
aspect

Соотношение сторон.

zNear

Ближайшее расстояние.

zFar

Далеко отрезок.

flipFov

Если поле обзора перевернуто по диагонали проекции.

eye

Глаза, чтобы создать проекцию для. Левый глаз, когда установлен на 1, правый глаз, если установлен на 2.

intraocularDist

Расстояние между глазами.

convergenceDist

Расстояние до точки конвергенции, на которой можно сосредоточиться.

Возвращает Projection

Созданная проекция.

Determinantfloat
# Determinant
C#
public float Determinant();

Возвращает скалярное значение, которое является знаковым множителем, на который масштабируются площади этой матрицей. Если знак отрицательный, матрица меняет ориентацию площади. Определитель можно использовать для вычисления обратимости матрицы или решения линейных систем уравнений, включающих матрицу, среди других приложений.

Возвращает float

Определяющее значение, рассчитанное по этой проекции.

Equals2 перегрузки
# Equals · 1/2
C#
public bool Equals(Projection other);

Returns (Возврат) true если прогнозы в точности равны.

Параметры
ИмяТипПо умолчанию
otherProjection—
other

Другая проекция.

Возвращает bool

Сравняются ли проекции.

# Equals · 2/2
C#
public override bool Equals(object? obj);

Returns (Возврат) true если проекция точно равна к данному объектуobj).

Параметры
ИмяТипПо умолчанию
objobject—
obj

Объект, с которым можно сравниться.

Возвращает bool

Равно ли вектор и объект равны.

FlippedYProjection
# FlippedY
C#
public Projection FlippedY();

Возвращает копию этой Projection с перевернутыми знаками значений столбца Y.

Возвращает Projection

Проекция перевернулась.

GetAspectfloat
# GetAspect
C#
public float GetAspect();

Возвращает соотношение сторон X:Y области просмотра Projection.

Возвращает float

Соотношение сторон в этом проекции.

GetFarPlaneHalfExtentsVector2
# GetFarPlaneHalfExtents
C#
public Vector2 GetFarPlaneHalfExtents();

Возвращает размеры дальней плоскости отсечения проекции, деленные на два.

Возвращает Vector2

Полушазы для этой проекции.

GetFovfloat
# GetFov
C#
public float GetFov();

Возвращает горизонтальное поле зрения проекции (в градусах).

Возвращает float

Горизонтальное поле обзора этой проекции.

GetFovyfloat
# GetFovy
C#
public static float GetFovy(float fovx, float aspect);

Возвращает вертикальное поле обзора проекции (в градусах), связанной с данным горизонтальным полем обзора (в градусах) и соотношением размеров. Примечание: В отличие от большинства методов Projection, aspect Предполагается, что 1 будет разделен на соотношение размеров X:Y.

Параметры
ИмяТипПо умолчанию
fovxfloat—
aspectfloat—
fovx

Горизонтальное поле обзора (в градусах).

aspect

Соотношение сторон.

Возвращает float

Вертикальное поле обзора этой проекции.

GetHashCodeint
# GetHashCode
C#
public override int GetHashCode();

Выполняет функцию хеширования Projection.

Возвращает int

Код хэша для этой проекции.

GetLodMultiplierfloat
# GetLodMultiplier
C#
public float GetLodMultiplier();

Возвращает коэффициент, на который масштабируется видимый уровень детализации этой Projection.

Возвращает float

Уровень детализации для данного прогноза.

GetPixelsPerMeterint
# GetPixelsPerMeter
C#
public int GetPixelsPerMeter(int forPixelWidth);

Возвращает for_pixel_width, деленный на ширину области просмотра, измеренную в метрах на ближней плоскости, после применения этой Projection.

Параметры
ИмяТипПо умолчанию
forPixelWidthint—
forPixelWidth

Ширина для каждого пикселя (в метрах).

Возвращает int

Количество пикселей на метр.

GetProjectionPlanePlane
# GetProjectionPlane
C#
public Plane GetProjectionPlane(Projection.Planes plane);

Возвращает плоскость отсечения этой Projection, индекс которой задан plane. plane должен быть равен одному из Projection.Planes.Near, Projection.Planes.Far, Projection.Planes.Left, Projection.Planes.Top, Projection.Planes.Right или Projection.Planes.Bottom.

Параметры
ИмяТипПо умолчанию
planeProjection.Planes—
plane

Тип вырезки из проекции.

Возвращает Plane

Вырезка этой проекции.

GetViewportHalfExtentsVector2
# GetViewportHalfExtents
C#
public Vector2 GetViewportHalfExtents();

Возвращает размеры плоскости области просмотра, на которую проецируются позиции этой Projection, деленные на два.

Возвращает Vector2

Полушазы для проекции проспекта.

GetZFarfloat
# GetZFar
C#
public float GetZFar();

Возвращает расстояние для данной Projection, за пределами которого позиции обрезаются.

Возвращает float

Расстояние, за которое вырезаются позиции.

GetZNearfloat
# GetZNear
C#
public float GetZNear();

Возвращает расстояние для данной Projection, перед которым позиции обрезаются.

Возвращает float

Расстояние, перед которым вырезаются позиции.

InverseProjection
# Inverse
C#
public Projection Inverse();

Возвращает Projection, которая выполняет обратное проективное преобразование данной Projection.

Возвращает Projection

Перевернутая проекция.

IsOrthogonalbool
# IsOrthogonal
C#
public bool IsOrthogonal();

Возвращает true, если эта Projection выполняет ортогональную проекцию.

Возвращает bool

Если проекция выполняет ортогональную проекцию.

JitterOffsetedProjection
# JitterOffseted
C#
public Projection JitterOffseted(Vector2 offset);

Возвращает Projection со значениями X и Y из заданного Vector2, добавленными к первому и второму значениям конечного столбца соответственно.

Параметры
ИмяТипПо умолчанию
offsetVector2—
offset

Смещение, применяемое к прогнозу.

Возвращает Projection

Прогнозируемый прогноз.

PerspectiveZNearAdjustedProjection
# PerspectiveZNearAdjusted
C#
public Projection PerspectiveZNearAdjusted(float newZNear);

Возвращает Projection с ближним расстоянием отсечения, настроенным на new_znear. Примечание: Исходная Projection должна быть перспективной проекцией.

Параметры
ИмяТипПо умолчанию
newZNearfloat—
newZNear

Ближайшее расстояние вырезки для корректировки проекции.

Возвращает Projection

Скорректированный прогноз.

ToString2 перегрузки
# ToString · 1/2
C#
public override string ToString();

Преобразует это Projection к а string.

Возвращает string

A string представление этого прогноза.

# ToString · 2/2
C#
public string ToString(string? format);

Преобразует это Projection к а string с указанным format.

Параметры
ИмяТипПо умолчанию
formatstring—
Возвращает string

A string представление этого прогноза.

op_Equalitybool
# op_Equality
C#
public static bool operator ==(Projection left, Projection right);

Returns (Возврат) true если прогнозы в точности равны.

Параметры
ИмяТипПо умолчанию
leftProjection—
rightProjection—
left

Левую проекцию.

right

Правильная проекция.

Возвращает bool

Сравняются ли проекции.

op_ExplicitTransform3D
# op_Explicit
C#
public static explicit operator Transform3D(Projection proj);

Построить новый Transform3D от Projection.

Параметры
ИмяТипПо умолчанию
projProjection—
proj

:: Projection.

Возвращает Transform3D
op_Inequalitybool
# op_Inequality
C#
public static bool operator !=(Projection left, Projection right);

Returns (Возврат) true если прогнозы не совсем равны.

Параметры
ИмяТипПо умолчанию
leftProjection—
rightProjection—
left

Левую проекцию.

right

Правильная проекция.

Возвращает bool

Независимо от того, равны ли прогнозы.

op_Multiply4 перегрузки
# op_Multiply · 1/4
C#
public static Projection operator *(Projection left, Projection right);

Составляет эти два проекции, умножая их Это имеет своим следствием применение этого права. а затем левую проекцию.

Параметры
ИмяТипПо умолчанию
leftProjection—
rightProjection—
left

Родитель преобразуется.

right

Ребёнок преобразуется.

Возвращает Projection

Составная проекция.

# op_Multiply · 2/4
C#
public static Vector3 operator *(Projection proj, Vector3 vector);

Возвращается a Vector3 изменяется (многократно) проекцией.

Параметры
ИмяТипПо умолчанию
projProjection—
vectorVector3—
proj

Проекция, которая будет применяться.

vector

A Vector3 Преобразовать.

Возвращает Vector3

Преобразованные Vector3.

# op_Multiply · 3/4
C#
public static Vector4 operator *(Projection proj, Vector4 vector);

Возвращается a Vector4 изменяется (многократно) проекцией.

Параметры
ИмяТипПо умолчанию
projProjection—
vectorVector4—
proj

Проекция, которая будет применяться.

vector

A Vector4 Преобразовать.

Возвращает Vector4

Преобразованные Vector4.

# op_Multiply · 4/4
C#
public static Vector4 operator *(Vector4 vector, Projection proj);

Возвращается a Vector4 Преобразование (многократное) путем транспонирования проекции. Для преобразования в обратном направлении проекции projection.Inverse() * vector вместо этого можно использовать. См. Projection.Inverse.

Параметры
ИмяТипПо умолчанию
vectorVector4—
projProjection—
vector

A Vector4 Преобразовать.

proj

Проекция, которая будет применяться.

Возвращает Vector4

Обратно преобразующиеся Vector4.

Поля и константы4

WПоле
# W
C#
public Vector4 W;

Вектор W матрицы проекции (столбец 3). Эквивалентно индексу массива 3.

XПоле
# X
C#
public Vector4 X;

Вектор X матрицы проекции (столбец 0). Эквивалентно индексу массива 0.

YПоле
# Y
C#
public Vector4 Y;

Вектор Y матрицы проекции (столбец 1). Эквивалентно индексу массива 1.

ZПоле
# Z
C#
public Vector4 Z;

Вектор Z матрицы проекции (столбец 2). Эквивалентно индексу массива 2.

Projection.Planes

ЗначениеОписание
Bottom = 5

Значение индекса нижней плоскости отсечения проекции.

Far = 1

Значение индекса дальней плоскости отсечения проекции.

Left = 2

Значение индекса левой плоскости отсечения проекции.

Near = 0

Значение индекса ближней плоскости отсечения проекции.

Right = 4

Значение индекса правой плоскости отсечения проекции.

Top = 3

Значение индекса левой плоскости отсечения проекции.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.