PMG
http://forum.pmg.org.ru/

"Раскраска"
http://forum.pmg.org.ru/viewtopic.php?f=1&t=8107
Страница 1 из 1

Автор:  _Dok_ [ 24 июл 2011 10:20 ]
Заголовок сообщения:  "Раскраска"

Всем доброго времени суток!

Мне хотелось сделать "раскраску", где пользователь мог бы раскрашивать различные предметы.
Это 2D разумеется.
Предмет загружается в текстуру, отображается.
Пользователь имеет в своём распоряжении кисти и краски.
Чтобы не заходил за границы рисунка, то сделать "полотно" для рисование через "маску".
И программа должна проверять: вся ли "картинка разрисована". Вот с этим проблемка.
Как вариант проверять отсутствие "пустых" пятен на полотне.

Но не знаю как это сделать в OpenGL. Подскажите, пожалуйста

Автор:  _Dok_ [ 24 июл 2011 11:08 ]
Заголовок сообщения:  Re: "Раскраска"

Покопавшись в интернете нашёл возможное решение проблемы - использовать функцию glReadPixels().
Я так понимаю, что указав определенные параметры, мы получим массив значений пикселей в указанном прямоугольнике. И сверяя их у нужным значением можно будет проверить заполнен данный прямоугольник цветом или нет.
Но это прямоугольник, а если картинка другой формы, сложной, выпуклой, с отверстиями, то тут как проверить. Ведь при такой картинке разумеется не все пиксели будут(да и должны) закрашены.

Автор:  MagicWolf [ 26 июл 2011 16:21 ]
Заголовок сообщения:  Re: "Раскраска"

Если многоугольник, то берешь ограничивающий прямоугольник.

Автор:  _Dok_ [ 27 июл 2011 09:12 ]
Заголовок сообщения:  Re: "Раскраска"

Ну а можно используя функцию glReadPixels() получить такой результат:
- что "под маской" чёрного цвета;
- полотно белого(если нет краски);
- полотно того цвета которого покрашено.

???

Автор:  MagicWolf [ 27 июл 2011 11:11 ]
Заголовок сообщения:  Re: "Раскраска"

ReadPixels просто выдает значение пикселя и все. Маску можно получить - маскирование или через буфер шаблона.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/