Проекция камеры

Программирование на Юнити.

Проекция камеры

Сообщение mastersmit 15 янв 2020, 09:43

Скрытый текст:

Собсно проблема хорошо видна на видео. Такое происходит, если менять проекцию камеры, которую я вероятно неправильно и рассчитываю.. Чтобы не было этого, надо отдалять от стены плашку портала минимум 0.04 от стены, на мобиле на 0.05. Соответственно вблизи видно, что портал в воздухе висит, что не красиво..
Код для проекции камер портала:
Синтаксис:
Используется csharp
Vector3 pos = targetPortal.transform.position; // позиция плоскости другого портала
Vector3 normal = targetPortal.transform.forward; // позиция плоскости другого портала
Vector4 clipPlane = PortalUtils.CameraSpacePlane(Cams[i], pos, normal, ClipPlaneOffset, 1.0f);

Matrix4x4 projection = CameraDefault.CalculateObliqueMatrix(clipPlane); // CameraDefault это не используемая камера, с которой только берется базовая проекция, если этого не делать, а брать непосредственно у Cams[i], то через какое-то время там вообще хаос может случиться, все съезжает куда-то
Cams[i].projectionMatrix = projection;

public static Vector4 CameraSpacePlane(Camera cam, Vector3 pos, Vector3 normal, float ClipPlaneOffset, float sideSign)
{
     Vector3 offsetPos = pos + (normal * ClipPlaneOffset);
     Matrix4x4 m = cam.worldToCameraMatrix;
     Vector3 cpos = m.MultiplyPoint(offsetPos);
     Vector3 cnormal = m.MultiplyVector(-normal) * sideSign;
     return new Vector4(cnormal.x, cnormal.y, cnormal.z, Vector3.Dot(-cpos, cnormal));
}

Вот что ей надо? Выручайте :-B
Аватара пользователя
mastersmit
Старожил
 
Сообщения: 558
Зарегистрирован: 12 май 2014, 14:05
Откуда: Приморский край

Re: Проекция камеры

Сообщение waruiyume 15 янв 2020, 10:40

Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Проекция камеры

Сообщение mastersmit 15 янв 2020, 11:26

waruiyume писал(а):https://docs.unity3d.com/Manual/SL-CullAndDepth.html
Offset

Выставил оффсет -0.01, -0.01, вроде помогает. Этого эффекта пока не наблюдается. Я счастлив =) спс
Аватара пользователя
mastersmit
Старожил
 
Сообщения: 558
Зарегистрирован: 12 май 2014, 14:05
Откуда: Приморский край

Re: Проекция камеры

Сообщение mastersmit 23 янв 2020, 03:09

waruiyume писал(а):https://docs.unity3d.com/Manual/SL-CullAndDepth.html
Offset

Ан нет.. есть неприятный ньюанс..
Скрытый текст:
Изображение

Короч в рекурсии срезает на величину этого оффсета, когда близко к порталу.. Может есть еще варианты?

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

Попробовал, так все лучше происходит, чем менять оффсет в шейдере
Аватара пользователя
mastersmit
Старожил
 
Сообщения: 558
Зарегистрирован: 12 май 2014, 14:05
Откуда: Приморский край


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7