Динамические тени, основаные на CubeMap (комментарии)
Это сообщение сгенерировано автоматически.
Ух ты! Красиво).
SVSD_VAL
Ух ты! Как тормозит. Судя по скриншотам даже у тебя всего 110 фпс.
Я статью пока не асилил, поэтому вопрос: тени от спрайтовой листвы нарисуются?
.Scotina,
тормозит :D если правильно сделать то тормозить не будет, (я сделал на той сцене 350-370fps),
дальше оптимизировать не стал т.к. мороки много да и для демки этого не нужно =)
по поводу вопроса : нарисуются =)
SVSD_VAL
//И записываем всё что было в поле видимости в конкретную сторону
glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, ShadowMap);
glCopyTexSubImage2D(cs, 0, 0, 0, 0, 0, ShadowRes, ShadowRes);
glFlush;
А если убрать glFlush - будут глюки ?
innuendo,
глюков не будет, будет незначительное повышение fps =)
>тени от спрайтовой листвы нарисуются? т.е., использовать текстуры с alpha каналом можно, и дырки в тенях будут?))).
BenTech, да будут
SVSD_VAL
С альфатестом, как я понимаю?
Division, правильно пологаеш =)
Для новичка помоему можно было и детальнее описать, что и зачем... Лично у меня после прочтения осталось много вопросов... Так и не ясно для чего этот pack/unpack и что это за магические числа...
Ну про ftransform я тебе уже говорил, что он нафиг не нужен...
Как уже верно заметил innuendo не ясно присутствие флуша...
Зачем в классе TShader делать в каждом методе проверку поддержки ГЛСЛ, если ты при запуске программы проверяешь?
Executor
Так и не ясно для чего этот pack/unpack и что это за магические числа...
шейдеры теней внимательно читал ?
...
vec4 pack = vec4( 1.0, 256.0, 65536.0, 16777216.0 );
// Сжимаем RGB цвет в длину , иначе никак не передать =)
vec4 len = length(vertex) * pack;
....
насколько я помню у нас на цвет идёт 1 байт (255 значений), как их передать текстурой, только таким способом
а магические числа 65539.0 = (256*256) , 16777216.0 = (256*256*256)
(тоесть можно сделать на основе кубемапа статические тени :D , хранить их в RGB текстуре и загружать когда нужно)
Как уже верно заметил innuendo не ясно присутствие флуша...
Ну он осталься ещё с первой попытки получить тени =), забыл удалить его :D
Зачем в классе TShader делать в каждом методе проверку поддержки ГЛСЛ, если ты при запуске программы проверяешь?
Очень просто , видюха не держит шейдера, а дема работает, и ненужно пол кода переписывать для видюх которые не держут шейдера =)
p.s. люблю когда игры/демки/итд работают везде =)
То есть ты пакуешь одно число в четыре компоненты? Тогда почему иначе никак? Не проще ли юзать 16, 16F, 32F форматы?
Executorp, а зачем ?, сохранил в tga и загружай =)
грубо получаем лайтмапы =)
ктому же видое карта которая у мну есть слабая =) охото же хоть какойто fps =)
Ну так ты бы в статье об этом всём и написал, да убрал бы "иначе никак не передать" ибо не правда...
Тема в архиве.