2014-07-31 5 views
0

Я создал округленный прямоугольник на иллюстраторе и экспортировал его в png, затем добавил это изображение в texturepacker и импортировал в cocos2d вот мой прямоугольник, У вас есть идея, почему на углу есть белые пиксели.texturepacker rounded border

Здесь изображение https://dl.dropboxusercontent.com/u/9018754/Screen%20Shot%202014-07-31%20at%2023.28.52.png

+0

Пробовали ли вы опцию пограничных артефактов уменьшить? –

+0

да, интересно, но вот визуальный, если я проверяю уменьшить артефакты границы https://dl.dropboxusercontent.com/u/9018754/Screen%20Shot%202014-08-01%20at%2000.18.41.png – user908116

+0

и здесь это моя настройка в texturepacker https://dl.dropboxusercontent.com/u/9018754/Screen%20Shot%202014-08-01%20at%2000.22.42.png – user908116

ответ

0

Может быть, что образ был написан как PNG8 с смешиванием в стороне белого фона в Illustrator. Можете ли вы также опубликовать png, который вы создали из Illustrator?

- обновление -

Изображение выглядит прекрасно. Я думаю, что мы можем исключить проблемы с экспортом изображения.

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

Если он включен в TexturePacker и выключен в cocos2d, вы получаете черные контуры. Если это отключено в TexturePacker и в cocos2d, вы получите белые контуры.

Итак: попробуйте включить его в TexturePacker.

+0

i сохранен как PNG-24 и прозрачен здесь png https://dl.dropboxusercontent.com/u/9018754/grid5.png – user908116

+0

Изображение выглядит нормально. –

0

Да Альфа предварительного умножения решить мою проблему

Изменение ccConfig.h к

#ifndef CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL
#define CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL 1
#endif

и установки предварительного умножения альфа + 1 исключить решить мою проблему,

It написано в строке комментариев

**

`Если включена, то координаты текстуры будет рассчитываться по следующей формуле:
- texCoord.left = (rect.origin.x * 2 + 1)/(texture.wide * 2);
- texCoord.right = texCoord.left + (rect.size.width * 2-2)/(texture.wide * 2);
То же самое для нижнего и верхнего.
Эта формула предотвращает артефакты, используя 99% текстуры.
«Правильный» способ предотвращения артефактов - использовать spritesheet-artifact-fixer.py или аналогичный инструмент.
Пораженные узлы:
- CCSprite/CCSpriteBatchNode и подклассы: CCLabelBMFont, CCTMXLayer
- CCLabelAtlas
- CCParticleSystemQuad
- CCTileMap
Чтобы позволило установить его в 1. Отключено по умолчанию.
**

Я не мог понять, что происходит в данный момент, но я буду проверять код глубже,

Спасибо Andreas НИЗКОГО