|
22.10.2014, 00:24
|
#556
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
А как сделать, чтобы лучи света видно было? Ну типа в конусе спота чтобы как-бы была подсвеченная пыль, или в сфере поинта то же? Или это уже только системой частиц?
__________________
|
(Offline)
|
|
22.10.2014, 00:49
|
#557
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,021
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: [TrueHorror] - разработка
Спрайты?
Спрайты с анимацией пыли и маской.
|
(Offline)
|
|
22.10.2014, 01:17
|
#558
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
Та нет, мне нужно объемное распределение подсвеченой пылищи. Все таки походу системой частиц ваять придется.
__________________
|
(Offline)
|
|
22.10.2014, 02:01
|
#559
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,021
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: [TrueHorror] - разработка
Спрайты с анимацией пыли и картой освещения? Которые обрезаются по маске из освещения.
Разве идея плоха? Мне кажется частицы здесь совсем необязательны.
Видишь звёзды внизу между планет, они сделаны спрайтами:
В движение хорошо смотрится.
|
(Offline)
|
|
22.10.2014, 02:17
|
#560
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
конусы спотов в сорс играх делали 1 билбордом с видом сбоку (крутящимся только вокруг одной оси) и одним с видом спереди, в L4D сделали покруче: многослойный фрустум из квада аля спереди + полностью боковой. но это +овердро.
ещё можно отрендерить в отдельную текстуру глубину конуса и в ещё одну - глубину флипанутого конуса, а потом в постэффекте на основе расстояния между этими двумя глубинами сделать эффект аля объёмный туман + мягко пересечь его с геометрией сцены, юзая её глубину.
вообще вариантов куча.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.10.2014, 02:23
|
#561
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,021
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: [TrueHorror] - разработка
Сообщение от Mr_F_
конусы спотов в сорс играх делали 1 билбордом с видом сбоку (крутящимся только вокруг одной оси) и одним с видом спереди, в L4D сделали покруче: многослойный фрустум из квада аля спереди + полностью боковой. но это +овердро.
ещё можно отрендерить в отдельную текстуру глубину конуса и в ещё одну - глубину флипанутого конуса, а потом в постэффекте на основе расстояния между этими двумя глубинами сделать эффект аля объёмный туман + мягко пересечь его с геометрией сцены, юзая её глубину.
вообще вариантов куча.
|
А что быстрее будет? Второй способ или частицами как хочет mr.DIMAS?
конусы спотов в сорс играх делали 1 билбордом с видом сбоку (крутящимся только вокруг одной оси) и одним с видом спереди
|
Кажется там даже некоторые провода так сделаны.
|
(Offline)
|
|
22.10.2014, 02:28
|
#562
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
с частицами тоже вариант, но может тормозно выйти из-за овердро, если я правильно понял идею (понаставить кучу частиц и на каждой вычислять свет спота?)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.10.2014, 21:16
|
#563
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
будет ли прирост производительности если все шейдерные константы замапить напрямую в регистры и потом устанавливать их через вызовы setvertexshaderconstant/setpixelshaderconstant? и как быть например с таким:
float4x4 worldViewProjection;
float opacity;
float brightness;
например я делаю так
float4x4 worldViewProjection : register( c0 );
float opacity : register( c5 );
float brightness : register( c6 );
но каждый регистр может содержать четыре флоата, таким образом впустую пропадают куски регистров с5,с6.
кароч расскажите че да как.
__________________
|
(Offline)
|
|
23.10.2014, 03:14
|
#564
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
и еще вопрос вдогонку: как мне отрисовывать фонарик перед камерой, так чтобы он не загораживался другими объектами - кароч поверх всех? вроде бы ответ прост: нарисуй все объекты, затри буфер глубины, и нарисуй фонарик. но нифига! буфер глубины у меня используется в дефереде для оптимизаций буфером трафарета. поэтому это не вариант. форвард рендер у меня в зачаточном состоянии - рисует только полупрозрачные объекты и без освещения. я уже перепробовал рисовать фонарик после всех с отключенной записью в буфер глубины, с отключенным буфером вообще. получается шлак - полигоны перемешиваются в кашу - один на другой накладываются. че делать?
в коде дума3 нашел интересный код
/*
===============
RB_EnterModelDepthHack
===============
*/
void RB_EnterModelDepthHack( float depth ) {
qglDepthRange( 0.0f, 1.0f );
float matrix[16];
memcpy( matrix, backEnd.viewDef->projectionMatrix, sizeof( matrix ) );
matrix[14] -= depth;
qglMatrixMode(GL_PROJECTION);
qglLoadMatrixf( matrix );
qglMatrixMode(GL_MODELVIEW);
}
/*
===============
RB_LeaveDepthHack
===============
*/
void RB_LeaveDepthHack() {
qglDepthRange( 0, 1 );
qglMatrixMode(GL_PROJECTION);
qglLoadMatrixf( backEnd.viewDef->projectionMatrix );
qglMatrixMode(GL_MODELVIEW);
}
может он как-то поможет?
update. перевел его на dx. и он работает, это классно.
вот мой вариант:
void Camera::EnterDepthHack( float depth )
{
if( !inDepthHack ) {
depthHackMatrix = projection;
}
inDepthHack = true;
projection._43 -= depth;
CalculateInverseViewProjection();
}
void Camera::LeaveDepthHack()
{
inDepthHack = false;
projection = depthHackMatrix;
CalculateInverseViewProjection();
}
при рендере фонарика ставлю EnterDepthHack( 0.1 ) и все! он рендерится поверх всего и не "проваливается" ни в какие объекты.
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
|
|
23.10.2014, 21:02
|
#565
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
взялся за тени. пока что делаю только для спота - ибо проще. что делаю:
1) создал текстуру шадоумапы - R32F
2) отрисовал туда глубину сцены из положения и направления спота с fov равным углу при вершине конуса спота.
как дальше быть при выборке из шадоумапы при учете освещения? как спроецировать текстурные координаты?
__________________
|
(Offline)
|
|
24.10.2014, 02:55
|
#566
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
проецируешь так же, как с картинкой фонарика.
дальше сравниваешь глубину (Z полученный при проекции): ближе текстуры? на свету. дальше? в тени. нужно ещё маленький оффсет прибавлять туда-сюда перед сравнением, а то точность не идеальна.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.10.2014, 22:44
|
#567
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
чет фигня получается если проецировать как для картинки фонарика, тень вращается вместе с камерой. че делать?
__________________
|
(Offline)
|
|
25.10.2014, 23:02
|
#568
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
не понял как вращается.
короче рендеришь тени с камеры, привязанной к персу (то бишь локальная ворлд матрица камеры должна домножаться на ворлд матрицу перса), и проецируешь матрицей той же самой камеры.
|
(Offline)
|
|
25.10.2014, 23:11
|
#569
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
wat? а где тогда используется матрица спота?
__________________
|
(Offline)
|
|
25.10.2014, 23:56
|
#570
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
ну и пятно спота той же камерой проецируешь, что и тени, нафига тебе 2 разные матрицы, если это всё проецируется с одного лайта?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:05.
|