сверкающие огни в OpenGL ES 2.0 Android? - PullRequest
0 голосов
/ 11 ноября 2011

Я бы хотел создать что-то вроде декоративного светильника для моего приложения. Это должен быть свет, который очень крошечный, но видимый, как светодиодный индикатор в телефонах. Я хочу, чтобы он имел разные цвета, такие как красный, зеленый и т. Д.

Я новичок в opengl. Я знаю о таких вещах, как рендеринг объектов с вершинами и предоставление ему текстуры. Я также пробовал такие вещи, как направленное и рассеянное освещение. Но это единственный источник света. Поэтому я попытался сделать как Сфера с текстурой и иметь на ней свет. Но это не выглядело естественно.

Я видел некоторые сайты с такими вещами, как точечные спрайты. Я не уверен, что это будет моим решением. Кто-нибудь может дать мне какое-то решение, чтобы получить свет украшения.

Пример кода или ссылка на учебник будет очень полезна. Также, пожалуйста, дайте мне знать, как контролировать цвет света. Спасибо за ваше время и помощь.

1 Ответ

0 голосов
/ 23 декабря 2011

Вам не нужны источники света для окраски объекта, если объект сам является источником света.

Если вы используете opengl-es 2.0, у вас должно быть несколько шейдеров. Начните с фиксированного цветового шейдера:

precision mediump float;

uniform vec4 myColour;

void main() {
   gl_FragColor = myColour;
}

Который будет окрашивать этот объект независимо от того, какой цвет установлен в myColour. И чтобы установить этот цвет, посмотрите, как установить форму.

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

Отличным инструментом для тестирования шейдеров на ПК перед установкой Android является Render Monkey http://developer.amd.com/archive/gpu/rendermonkey/pages/default.aspx, он бесплатный и содержит множество замечательных примеров, которые могут оказаться полезными.

...