[ snip ]
> Damn, you did fall in the following bugs:
>
>   - no smooth scaling for 16bpp: background is very noticeable with
> that, as well as some icons and even the elementary clock parts. The
> reason is: before there was no scale cache, thus there was no meaning
> in keep doing scale of UI parts, thus things like scaling were just
> used during effects or photos, real UI elements were designed to fit
> their screens and never scale (so faster, pixel perfect).
>   - images with transition colors get "bands": as said before, if you
> have some gradient that is very small difference from color A to color
> B, then the missing resolution (lost bits from R, G, B) are easy to
> spot. Together with problem 1 (no smooth scaling) mentioned above, it
> will look like crap. Instead, just avoid using these gradients where A
> and B are too close.
>
> the first point is fixable, just need someone with time and motivation
> to do so (I have none). The second is not, needs help from design
> team. Well, design team could solve both problems, as you really
> should not be rescaling your interface elements.
>
> Last but not least, don't use text effects: they are slow.

OK.  I'll have my design team take a shot at it.

>
>
>>> For instance Canola2 use 16bpp which very colorful and rich visual.
>>> Actually I wrote 16bpp engine for Canola2 project and designers were
>>> always carefully checking all the details:
>>>
>>>    http://openbossa.indt.org/canola2/
>>
>> Yes, I've seen the demo.  Very cool visuals.  I just knew that it uses 
>> 16bpp...
>
> As I said before, you need to do design together with development, one
> needs to help the other and then you have good software.
>
> You can trade this care and waste more CPU, doing dithering to solve
> band problems by using 32bpp engine. In some cases you don't have many
> fancy effects and cpu is not a problem.
>
>
>>> I'd recommend watching out rectangle colors that are supposed to match
>>> image colors. Remember that 16bpp is RGB565, that is 5 bits for both
>>> red and blue, 6 for green. So you basically discard the lower bits of
>>> each full 0-255 values in 32bpp. But for images we apply dithering
>>> when converting from 32->16 in order to avoid blocky gradients and
>>> such, for those cases you will likely get different color (1 value up
>>> or down) for each component based on nearby pixel.
>>>
>>> The safest thing to do is to calc 16bpp colors using:
>>>
>>> dr = (r >> 3) << 3
>>> dg = (g >> 2) << 2
>>> db = (b >> 3) << 3
>>>
>>> The attached script should help you in your task.
>>
>> Do you mean that I have to manipulate each image to make it use only
>> the upper 5/6/5 bits for R/G/B?
>
> If you change them, they'll likely suck as well (designers did try
> some tricks to convert images to "rgb565" in photoshop without luck).
> You need to design your system using these limits in mind.
>
> 1 - Avoid gradients from colors that vary around the lost bits. If
> before you had a gradient from gray 220 to 240, or 20 levels to play
> with. So 220,220,220 in 32bpp is already inexistent in 16bpp, run the
> script and discover 216,220,216 is all you have!!! Of course, this is
> green-ish and not gray as expected, first thing to fix and use
> 216,216,216 instead. If you run:
>
>       for n in `seq 220 240`; do rgb16bpp.py $n $n $n; done | grep 16bpp | 
> uniq
>
> from the initial 20 levels, all you get are 6 different levels!!! If
> you had 80 pixels to spread this, before you'd change the color every
> 4 pixes, now every 13, much easier to notice... even more if the color
> is bit green nown and then.
>
> 2 - Avoid light colors, specially gray->white where all components
> must be the same. Using light colors you're likely to reach color
> boundaries and human eyes will be likely to spot problems. As said
> before, this is even more visible with gray that gets more green than
> other colors
>
> 3 - Try to use the color that you have more bits, that is, green. This
> is hard, I know, but can bring some benefits.
>
>
> Looking at what I wrote, you might wonder "oh my god, impossible". But
> if you try to do an Palm Pre like user interface with 16bpp it will
> look just nice! Just get a great picture with various colors and sharp
> transitions (then avoiding gradient), add semi-transparent black
> background with UNSCALED lightning details images on top (like
> elementary buttons).

Yeah.  The devil is in the details.

Thank you for all the great tips.  These are invaluable info for
embedded software and artwork designers.
Maybe a wiki page for these?

Thank you.


brian

>
>
> BR,
> --
> Gustavo Sverzut Barbieri
> http://profusion.mobi embedded systems
> --------------------------------------
> MSN: barbi...@gmail.com
> Skype: gsbarbieri
> Mobile: +55 (19) 9225-2202
>



-- 
brian
------------------

Cool-Karaoke - The smallest recording studio, in your palm, open-sourced
http://cool-idea.com.tw/

iMaGiNaTiOn iS mOrE iMpOrTaNt tHaN kNoWlEdGe

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to