2011-02-09 2 views
2

Я работаю над Android и iPhone. Я делаю много маленьких (около 32 пикселей) рекламных щитов на экране для системы частиц и хочу дать блеск-подобный блеск каждому рекламному щиту, например. когда частицы падают, случайные будут кратковременно загораться и искриться, когда они поймают свет. Есть ли простой способ добиться этого эффекта? В качестве ограничения я не могу использовать пиксельные/вершинные шейдеры.Эффект металлического блеска в OpenGL ES?

Я думал что-то вроде того, что дает каждому рекламный щит, напоминающий металлический эффект (хотя я не уверен, как сделать эту часть) в сочетании с тем, чтобы каждый рекламный щит был случайным и постоянно вращающимся нормальным с плоским затенением, каждый рекламный щит случайно загорается. У меня проблемы с тем, чтобы он выглядел красиво.

+0

Этот вид встречается как вопрос «Учите меня OpenGL». Существует не какое-то простое решение, которое кто-то может вам дать, не закодировав его для вас. – mikerobi

+4

Я думаю, что это несправедливо; Я не прошу никого научить меня OpenGL, и я не просил код. Я прошу высших советов о том, какие методы я могу использовать для имитации этого эффекта, учитывая ограничение пиксельных/вершинных шейдеров (которые участвуют в каждом учебнике, который я нахожу). Что-то высокоуровневое, как «использовать такую ​​текстуру ... установить такую ​​молнию» было бы хорошо. Я не ожидаю точного решения, просто некоторые указатели на то, что я могу попробовать. – botbot

ответ

0

Отказ от ответственности: я не знаю OpenGL, и на самом деле я ничего не пытался написать ниже.

Вы можете получить другую, ярко освещенную текстуру и заменить ее, когда нормальная находится почти в положении «сияние».

Возьмите кусок металла и поверните его. Когда нормаль близка к положению «полного блеска», металл светит немного ярче, и через него проходит приглушенный рефлекс с яркой вспышкой посередине, затем снова тускнеет.

Если вы можете, нанесите вторую яркую текстуру узкой «рефлекторной» полосы и переместите ее через поверхность рекламных щитов, которые находятся в близоруком положении, сдвигая их соответственно на нормальный угол. Когда нормаль находится в положении блеска (± эпсилон), примените текстуру «полный блеск».

Кроме того, если ваши пластины не летают в вакууме, из-за атмосферы будет галогено. Добавьте прямоугольник, который на 50% больше, чем плита прямо за ним, и примените к нему полупрозрачную текстуру ореола, которая станет полностью прозрачной ближе к краям. Вам это нужно только в момент блеска заливки.

Смежные вопросы