Синтез видео - Создание волн, узоров, градиентов - PullRequest
1 голос
/ 15 апреля 2010

Я пишу программу для генерации диких визуальных эффектов. Пока я могу нарисовать каждый пиксель случайным синим значением:

for (y = 0; y < YMAX; y++) {
    for (x = 0; x < XMAX; x++) {
        b = rand() % 255;
        setPixelColor(x,y,r,g,b);
    }
}

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

Ответы [ 2 ]

0 голосов
/ 15 апреля 2010

Раньше я делал такие трюки в прошлом. К сожалению , у меня нет кода: - /

Вы будете удивлены тем, что побочные эффекты и целочисленные арифметические операторы могут производить:

FRAME_ITERATION++;
for (y = 0; y < YMAX; y++) {
    for (x = 0; x < XMAX; x++) {
        b = (x | y) % FRAME_ITERATION;
        setPixelColor(x,y,r,g,b);
    }
}

Извините, но я не помню точных комбинаций, поэтому b = (x | y) % FRAME_ITERATION;
может на самом деле не сделать ничего прекрасного. Но вы можете попробовать свои собственные комбинации.

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

0 голосов
/ 15 апреля 2010

Волны обычно создаются с помощью функций триггера (sin / cos) или таблиц, которые их приближают.

Вы также можете сделать немного прохладной воды рябь с простой математикой. См. здесь для кода и онлайн-демонстрации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...