|
Unity Мультиплатформенный инструмент для разработки игр |
23.06.2011, 21:31
|
#421
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Зачем так кричать?
var mycamera:GameObject; var Distance=10; function Update () { mycamera.transform.position.y = transform.position.y + Mathf.Sin(mycamera.transform.rotation.x * Mathf.Deg2Rad)* Distance; mycamera.transform.position.z = transform.position.z + Mathf.Cos(mycamera.transform.rotation.x * Mathf.Deg2Rad)* -Distance; }
|
(Offline)
|
|
23.06.2011, 22:37
|
#422
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Фак по Юнити.
а ты сам пробувал что получилось? Теперь камера вообще стоит на месте, потому что результать произвидения: mycamera.transform.rotation.x * Mathf.Deg2Rad = 0.000**
я говорю о том что камера сначала двигается как надо (смотриш вниз = идеш вверх), а потом наоборот (смотриш вниз = идеш вниз) и сменяют они лруг друга постоянно по хрен знает какой причине
|
(Offline)
|
|
23.06.2011, 22:55
|
#423
|
Бывалый
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений (для 880 пользователей)
|
Ответ: Фак по Юнити.
Ты к Vector3 прибавляешь Quaternion .Это верно?
P.S.Сплю,проехали.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Lestar за это полезное сообщение:
|
|
24.06.2011, 04:23
|
#424
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Сообщение от is.SarCasm
а ты сам пробувал что получилось?
|
Нет, потому что задача не описана, какой вопрос, такой и ответ. Я посчитал что ты используешь градусы, вместо радиан, а на самом деле, ты использовал компонент кватерниона (как написали выше), который не несет полезной информации о повороте отдельно.
Комментарии:
1. Что такое нода?
2. Использование компоненты кватерниона бессмысленно.
3. Использовать даже компоненту transform.eulerAngles.x было бы не правильно, так как ее значение может прыгать (прыгает в зависимости от общего поворота модели), это не тоже самое что и в блице или 3ds max. Возможно угол стоит вручную считать для данной задачи (неизвестно какой).
4. Использовать в функциях Mathf.Sin/Mathf.Cos/и т.д. нужно радианы, а transform.eulerAngles возвращает градусы (Quaternion возвращает неизвестно что), т.е. transform.eulerAngles.x * Mathf.Deg2Rad.
5. В качестве mycamera в данном случае можно использовать переменную var mycamera:Transform, тогда отпадет надобность получать трансформ камеры каждый раз, т.к. это немного медленная операция.
Если исправить на использование "правильного" угла, то скрипт мог бы выглядеть так:
var mycamera:Transform; var Distance=10; function Update () { var x = mycamera.eulerAngles.x * Mathf.Deg2Rad; mycamera.position.y = transform.position.y + Mathf.Sin(x)* Distance; mycamera.position.z = transform.position.z + Mathf.Cos(x)* -Distance; }
Но вероятность, что камера иногда будет скакать остается.
|
(Offline)
|
|
24.06.2011, 10:29
|
#425
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Фак по Юнити.
Спасибо, понятия не имел что мне возвращают квате...ны
Ну тогда в скрипте поворота камеры считать "отдельно" градусы.
А как может зависеть один угол от другово?
|
(Offline)
|
|
24.06.2011, 14:37
|
#426
|
scientist.alien
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений (для 2,593 пользователей)
|
Ответ: Фак по Юнити.
А как может зависеть один угол от другово?
|
Если повернуть объект на 180 градусов по оси Y, потом ещё на 90 по оси X, то вполне возможно что юнити пересчитает углы поворота в более удобное для человека представление (может оказаться, что это то же самое, что 0, 0, -90; в коде я с таким не сталкивался, а вот в редакторе - полно такого)
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|
(Offline)
|
|
24.06.2011, 14:42
|
#427
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Это из-за процесса конвертации Quaternion => EulerAngles и обратно.
|
(Offline)
|
|
25.06.2011, 18:06
|
#428
|
Разработчик
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений (для 883 пользователей)
|
Ответ: Фак по Юнити.
Привет всем.
Изучал сегодня postprocess эффекты для Юнити, посмотрел на Grayscale Image Effect, и вдруг я подумал... Помните "Город грехов"? Там была такая стильная черная-белая картинка с ярко-выраженными красными объектами...
Так вот, можно ли дополнить этот эффект, чтобы он не действовал на объекты с определенными, допустим, тегами? То есть, например, задаем какому-нибудь объекту (допустим, красному галстуку) тэг "AlwaysColored", и всё, Grayscale Image Effect больше не обесцвечивает этот объект, он всегда остается красным галстуком. Вот.
|
(Offline)
|
|
25.06.2011, 18:08
|
#429
|
Элита
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений (для 3,923 пользователей)
|
Ответ: Фак по Юнити.
Зачем я прочитал предыдущее сообщение
|
(Offline)
|
|
25.06.2011, 19:04
|
#430
|
Элита
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений (для 3,923 пользователей)
|
Ответ: Фак по Юнити.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.06.2011, 20:23
|
#431
|
Разработчик
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений (для 883 пользователей)
|
Ответ: Фак по Юнити.
Ага, отлично.
Решил, что подобный эффект можно сделать двумя камерами. Первая рендерит всё без, допустим, "красных объектов", а вторая - только "красные" (такие объекты лежат на отдельном слое, контролирую через "Culling Mask"). "Clear Flags" у второй камеры - "Don't Clear". Depth значения первой и второй камеры - 1 и 2 соответственно. Всё хорошо.
Но!
1) Если к первой камере применить "Grayscale Image Effect", а вторую отключить - увидим только серую часть изображения. Отлично, так и должно быть, эффект работает. Но если включить вторую, то вся серость куда-то пропадает. Пост-процесс эффект для первой камеры не выполняется. Нехорошо это. Почему так происходит?
2) Ладно, допустим, пост-процесс эффекты выполняются только для последней по Depth значению камеры, если они лежат ровно "друг на друге". Хорошо. Тогда рендер первой камеры вместе со всеми наложенными на нее эффектами можно запихнуть в "Target Texture". Вопрос: как эту текстуру можно использовать в качестве бэкграунда для второй камеры? Или можно решить это дело другим путем?
3) И последнее: как в Юнити можно оперировать с буфером глубины? Можно ли перекинуть буфер глубины с одной камеры на буфер глубины другой?
4) Ну и самое последнее: как бы Вы делали подобный эффект (с условием, конечно, что все текстуры - цветные)?
|
(Offline)
|
|
26.06.2011, 21:02
|
#432
|
scientist.alien
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений (для 2,593 пользователей)
|
Ответ: Фак по Юнити.
Если не ошибаюсь, где-то в Clear Flags или нердах настройки камеры есть свистелка, которая включает запись буфера глубины для RenderTexture - остаётся убедиться, что грейскейл его не похерит, и отрисовать цветное второй камерой.
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.06.2011, 20:05
|
#433
|
Разработчик
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений (для 883 пользователей)
|
Ответ: Фак по Юнити.
to Taugeshtu: нашел свистелку, которая переключает буфер рендера (или как там правильно) на буфер глубины.
Вот она: myRenderTexture.format = RenderTextureFormat.Depth;
Всё работает, грейскейл не мешает. Но как мне теперь применить этот буфер ко второй камере?
Неужели придется писать отдельный шейдер, который будет смешивать 2 текстуры глубины с двумя текстурами рендера? Это мне что, как минимум 4 камеры нужно иметь? Что-то слишком уж накладно.
Может все-таки есть более простой путь?
|
(Offline)
|
|
27.06.2011, 20:35
|
#434
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Фак по Юнити.
Обычно на шейдерах пишут постэффект который обесцвечивает картинку везде кроме как на отмеченных объектах.
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.06.2011, 20:58
|
#435
|
Разработчик
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений (для 883 пользователей)
|
Ответ: Фак по Юнити.
Воот... И как это можно сделать-то? Как мне сказать шейдеру, чтобы он тут обесцвечивал, а тут - нет? В этом-то вся и проблема!
Как создать маску, по которой будет работать шейдер?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:25.
|