2012-04-04 1 views
1

Я создаю приложение для раскраски для клиента, и оно идет хорошо. Очень хорошо, на самом деле, потому что он закончен. Однако есть одна загвоздка: некоторые цвета не отображаются так, как ожидалось.Цвета в приложении отличаются от изображения, на котором они основаны

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

brush = [[CCSprite spriteWithFile:@"yellowbrush3.png"] retain]; 
    [brush setBlendFunc: (ccBlendFunc) { GL_ONE, GL_ONE_MINUS_SRC_ALPHA }]; 
    [brush setOpacity:20]; 

щетка изображение для этого конкретного файла:

Yellow brush

Я сделал скриншот вывода цвета для сравнения с ключом я использовал для создания щетки:

Several color swatches

Около половины цветов отображаются только штрафом в то время как другие пр Это заметно.

Я пробовал разные уровни непрозрачности, меняя некоторые настройки GL, но ничего не помогает.

+1

На стороне плюса черный выглядит хорошо. –

ответ

2

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

Попробуйте изменить glBlendFunc на использование GL_ONE для обоих параметров. Это позволит удалить смешение, но по крайней мере ваши цвета должны быть на 100% точными.

+0

Я как бы понял, что это была эта проблема. Я пробую кучу разных стилей. Мне очень нравится эффект, который он дает, просто желаю, чтобы цвета не были прикручены –

+1

Удивительно, спасибо! Я не получил их всех точно там, где хотел, но с некоторыми беспорядками я постоянно исправляю это. –

Смежные вопросы