易码技术论坛

 找回密码
 加入易码
搜索
查看: 1305|回复: 10

GVM2半透明效果实现,只要解译器修正bug速度会快8倍以上

[复制链接]
发表于 2008-4-29 18:23:45 | 显示全部楼层 |阅读模式
1.gif
2.gif

GVM2已经实现半透明效果
但是由于解译器不支持GetBlock以及WriteBlock函数height无论是多少实机运行(A2008)就只有一行像素
但是只要解决上述问题显示半透明速度一定会提升8倍以上

现在显示如图效果需要1.5s左右......

[ 本帖最后由 epcdiy 于 2008-4-29 18:26 编辑 ]
发表于 2008-4-29 18:46:26 | 显示全部楼层
沙发! LZ,你太厉害了!
发表于 2008-4-30 13:22:40 | 显示全部楼层


顶你!!!!!!
发表于 2008-4-30 14:48:21 | 显示全部楼层
强悍啊!
顶之!
发表于 2008-4-30 16:07:25 | 显示全部楼层
顶之,像电脑上一样了!
发表于 2008-5-1 12:11:37 | 显示全部楼层
顶顶顶顶顶顶,支持EPC
发表于 2008-5-3 09:29:35 | 显示全部楼层
能不能说明一下原理?
发表于 2008-5-3 19:05:34 | 显示全部楼层
WQX什么时候变彩色了啊……标题只是简单的透明运算啊……
因为只是白色减淡,所以只需要对RGB3种颜色分别做一下运算。
destRGB = srcRGB * (255 - alpha) / 255 + alpha
(alpha是透明度0-255)
而且gvm有GetBlock函数,就很好办了。
先GetBlock,然后对取得的数据做上述运算,再WriteBlock回去即可。
 楼主| 发表于 2008-5-3 21:24:23 | 显示全部楼层
原帖由 LindiX 于 2008-5-3 19:05 发表
WQX什么时候变彩色了啊……标题只是简单的透明运算啊……
因为只是白色减淡,所以只需要对RGB3种颜色分别做一下运算。
destRGB = srcRGB * (255 - alpha) / 255 + alpha
(alpha是透明度0-255)
而且gvm有GetBlock函数,就很 ...

非常遗憾的告诉你,远没有你想的那么简单.......
1.彩屏机wqx的GVM2是65536色,用的是RGB565模式,也就是说R和B变化值为0~31,G为0~62
2.算法与你说的一样,但是实现起来绝对没有那么简单
首先,RGB565变化范围是0~65535,而GVM2不支持无符号的int,但是为了节省空间必须用int(仅仅64K内存啊,而且普通的彩屏机依然是24K!!!)
其次,也是主要的,GVM2去除了GETBLOCK!所以只能GETPOINT...你说速度要慢到哪里去
而且GVM2的WRITEBLOCK也是有bug的,无论"高"参数设置为多少,(实机)显示出来的一律是1像素...
所以说GVM2解译器bug不修正显示楼顶所示的图片需要1.5s左右,而且还是A2008上的...

[ 本帖最后由 epcdiy 于 2008-5-3 21:26 编辑 ]
发表于 2008-5-3 22:22:07 | 显示全部楼层
听LS的说法,似乎分离颜色的时候用了条件判断?
其实65536色的话,可以直接用位运算分离3色值,不需要管他有没有符号。假设R在高位,那么
  1. R = (Color & 0xF800) >> 11;
  2. G = (Color & 0x7E0) >> 5;
  3. B = (Color & 0x1F);
复制代码
用位运算会很快。除非是解释器做得足够烂。
接下来的运算跟前面讲的一样。
最后合成颜色值
  1. Color = (R << 11) | (G << 5) | B;
复制代码
不过,只能1个点1个点GetPoint的话确实会让性能降低不少。

PS: WQX竟然有64k色,很惊讶很惊讶。。

[ 本帖最后由 LindiX 于 2008-5-3 22:23 编辑 ]
 楼主| 发表于 2008-5-4 08:14:04 | 显示全部楼层
原帖由 LindiX 于 2008-5-3 22:22 发表
听LS的说法,似乎分离颜色的时候用了条件判断?
其实65536色的话,可以直接用位运算分离3色值,不需要管他有没有符号。假设R在高位,那么R = (Color & 0xF800) >> 11;
G = (Color & 0x7E0) >> 5;
B = (Color & 0x1F);用位运算 ...

呵呵,官方声称是1600W色~
运算方面没有问题,主要原因是没有getblock
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-5-9 04:59 , Processed in 0.012222 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表