Изопроекция. Прозрачность билбоарда.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Изопроекция. Прозрачность билбоарда.

Сообщение eugine 28 фев 2013, 09:29

Подскажите пожалуйста знающие люди. Изопроекция камера двигается в одной плоскости вместе с персонажем. Объекты сделаны билбоардами с текстурами. Как определить что один из билбоардов (точнее текстура на нем с альфа каналом) загораживает нашего персонажа? Если лучем с центра экрана искать пересечение с текстурами то это надо проверять каждую точку персонажа, может есть другие способы? Классическая проблема изопроекций - если зашел за объект он должен стать полупрозрачным ))), но как это сделать я понять не могу. Очень надеюсь на помощь сообщества...
eugine
UNец
 
Сообщения: 12
Зарегистрирован: 29 дек 2012, 14:48

Re: Изопроекция. Прозрачность билбоарда.

Сообщение KBEP 28 фев 2013, 11:31

Попробуй проверять несколько крайних (габаритных) точек персонажа, например, макушку, пятки, правое и левое плечо. Ещё можно попробовать пускать лучи из камеры в крайние точки AABB персонажа.
Аватара пользователя
KBEP
Старожил
 
Сообщения: 598
Зарегистрирован: 24 сен 2012, 23:23
Откуда: Калининград, СПб, Северодвинск

Re: Изопроекция. Прозрачность билбоарда.

Сообщение eugine 28 фев 2013, 12:57

Изображение

вот не всегда так получится в том то и проблема, если бы как то маску персонажа с маской билбоарда сравнить :(. А лучами RaycastHit я не знаю как проверить попадание в видимую текстуру билбоарда (просто там у меня еще альфа канал есть, то есть проверить именно пересечение видимой текстуры, а не самого билбоарда на который она наложена). Надеюсь совсем не запутал? ))) Просто я новичок только начал изучать Unity.
eugine
UNец
 
Сообщения: 12
Зарегистрирован: 29 дек 2012, 14:48

Re: Изопроекция. Прозрачность билбоарда.

Сообщение eugine 28 фев 2013, 14:27

Упростим задачу пока что ))). Пусть я проверяю пересечение вектора по щелчку мышки:
Изображение
Скрытый текст:
#pragma strict

function Start () {

}

function Update () {


if(Input.GetMouseButton(0)){

var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hit : RaycastHit;
if ( Physics.Raycast (ray, hit, 100))
{
if (hit.collider.renderer)
{
hit.collider.renderer.material.shader= Shader.Find("Particles/Additive");
}
}

}

}


Все ок если на плоскости активен тригер Mesh Collider, но мне не нужно, что бы плоскость физически взаимодействовала с миром ))), то есть галку надо снять, но тогда не обрабатывается пересечение... как быть?
eugine
UNец
 
Сообщения: 12
Зарегистрирован: 29 дек 2012, 14:48

Re: Изопроекция. Прозрачность билбоарда.

Сообщение eugine 28 фев 2013, 14:59

Всё возвращаемся в начало как проверить по маске ))), т.к. по щелчку все работает надо на билбоардах просто поставить Is Triger и тогда они не будут физически взаимодействовать.
eugine
UNец
 
Сообщения: 12
Зарегистрирован: 29 дек 2012, 14:48

Re: Изопроекция. Прозрачность билбоарда.

Сообщение KBEP 28 фев 2013, 21:41

В структуре hit есть переменные textureCoord, textureCoord2, lightmapCoord, думаю через них можно как-то получить альфа-компонент в нужной точке.

P. S.: Если поставишь isTriger, то персонаж будет проходить свободно через коллайдер. Для исключения коллайдера из проверки на пересечение используй layer mask.

P. P. S.: Тебе принципиально делать 2D? Юнити больше под 3D заточена. Лучше делай 3D, если есть возможность, меньше геморроя будет.
Аватара пользователя
KBEP
Старожил
 
Сообщения: 598
Зарегистрирован: 24 сен 2012, 23:23
Откуда: Калининград, СПб, Северодвинск

Re: Изопроекция. Прозрачность билбоарда.

Сообщение eugine 28 фев 2013, 23:00

Спасибо щас буду смотреть...Насчет 3d и 2d, сам долго думал и мучался. Персонаж будет не спрайтовый в отличии от окружения. Ну нравится мне когда фантазию художника не загоняют в рамки низких полигонов ))).
eugine
UNец
 
Сообщения: 12
Зарегистрирован: 29 дек 2012, 14:48

Re: Изопроекция. Прозрачность билбоарда.

Сообщение eugine 01 мар 2013, 10:57

Все тему можно закрыть ))). Не знаю только как тут Unity проигрыватель подцепить что бы показать...
eugine
UNец
 
Сообщения: 12
Зарегистрирован: 29 дек 2012, 14:48


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 25