Показать сообщение отдельно
Старый 02.08.2012, 19:28
Gantenbain вне форума Посмотреть профиль Отправить личное сообщение для Gantenbain Найти все сообщения от Gantenbain
  № 5  
Ответить с цитированием
Gantenbain

Регистрация: Jul 2011
Сообщений: 32
В развитие сабжа.
Сегменты строю через shape.graphics.drawPath, задавать ли lineStyle(1, color, 1, true/false), или не задавать вовсе толщину линии - не заметил существенной разницы. К фигуре применяю фильтр, после чего отрисовываю ее в отображаемой Bitmap'e, общей для всех сегментов, через BitmapData.draw(..).
Объект анимирован. Если btm.stage.quality = StageQuality.LOW, то промежутки м/у сегментами исчезнут, естественно, заодно с антиалиазингом, который не был лишним.
Алиазинг, положим, не проблема, - его могу "размазать" фильтром,- но места стыков сегментов выглядят все равно не важно: при определенных углах становятся заметными "тени" - нормали пикселей не стыкуются, как должны.
Возможно, кто-то сталкивался с такой проблемой - как лучше поступить в этом случае: может быть проще смешать цвет граничного пиксела и его соседей в уже отрендеренном соседнем сегменте? Хорошо бы "подмешать" соседей из обрабатываемого сегмента, но тут я не вполне понимаю (а найти указаний на этот счет не удалось) механику обработки шейдером входного изображения - может ли шейдер обратится к уже обработанному пикселу (т.е. может ли оказаться таким samplenearest(outCoord().x+1, outCoord().y+1)?), или входное изображение кешируется на время работы шейдера (тогда "подмес" соседей по сегменту неуместен)?
Шейдеры пишу не в Pixel Bender, a посредством PBJ Assembler, и вследствие муторности этого приема, не хочется экспериментировать лишнего. Да и любой фильтр - тормоз, а здесь, хоть и по граничным только точкам, но опрашивать 9 соседей в отрендеренном сегменте и 8 в своем - это не есть хорошо.
Идеальный случай был бы - состыковать точно фрагменты, но не дается.

Буду признателен за любые идеи.
Изображения
 


Последний раз редактировалось Gantenbain; 03.08.2012 в 09:03.