Добавлен Devion,
опубликован
Во время рисования через Handles/Gizmos/GL вы можете столкнуться с проблемой, которая заключается в том, что нарисованные треугольники и линии начинают "играть" на находящемся рядом меше.
Помимо этого, эффект не статичен, линии начинают прыгать при изменении параметров обзора камеры.
Выглядит это примерно так:
Помимо этого, эффект не статичен, линии начинают прыгать при изменении параметров обзора камеры.
Выглядит это примерно так:
Решить данную проблему можно двумя разными подходами - на уровне шейдеров и на уровне кода самого рисования. Я предлагаю вам решать проблему через код, так как в этом случае вы имеете быстрый способ изменения приоритета рисования объектов.
Наиболее тривиальным решением будет пропустить все точки через метод, немного приближающий их к камере.
Например:
Например:
public static Vector3 CloserCamera(Vector3 point, int order)
{
//matrix - Gizmos.matrix / Handles.matrix в зависимости от контекста
var cameraLocalPosition = matrix.inverse.MultiplyPoint(Camera.current.transform.position);
var direction = (cameraLocalPosition - point).normalized;
return point + direction * (.001f*order);
}
Мы можем выстраивать order по своему усмотрению, в зависимости от того, какой объект хотим видеть ближе.
Плюс данного способа в том, что "смещение" не видно под любым углом обзора, а объект полностью сохраняет свои пропорции.
Плюс данного способа в том, что "смещение" не видно под любым углом обзора, а объект полностью сохраняет свои пропорции.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Если нормали от трианглов то на впуклых участках меша это наоборот "скроет" линии, на выпуклых может показать две.
Тут же еще какой плюс - с какой стороны не посмотри на меш, он все время будет правильно отображаться.