易码技术论坛

 找回密码
 加入易码
搜索
查看: 388191|回复: 7

[问题]请教关于宠物小精灵中的伪灰度效果

[复制链接]
发表于 2007-6-11 23:03:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2007-6-12 19:20:20 | 显示全部楼层
硬盘坏了,所以资料都没有了
16色的模拟灰度
16=2^4
就是分解成4张图片,按不同的频率出现
所以掩码的时候就是可以看作是每张图片单独掩码

至于如何分解16色的图片成4张单色图
就是直接吧16色中的一个点的颜色值(0~15)
看作4个bit,对应分解就可以
 楼主| 发表于 2007-6-12 19:50:42 | 显示全部楼层
如果是分解成16张呢?
原理能否讲得更详细一点呢?
现在能使用掩膜效果才是关键啊。
发表于 2007-6-13 00:06:31 | 显示全部楼层
不需要分解成16张
假如16色图中的一个点为 ABCD(二进制) ,【A,B,C,D为0或1】

把所有点的A组成一张单色图Pa
把所有点的B组成一张单色图Pb
把所有点的C组成一张单色图Pc
把所有点的D组成一张单色图Pd

然后那15张图分别是
1 -> 0001 -> Pd
2 -> 0010 -> Pc
3 -> 0011 -> Pc & Pd
4 -> 0100 -> Pb
5 -> 0101 -> Pb & Pd
......
15->1111 -> Pa & Pb & Pc & Pd

中间的是前面那个数转换后的二进制
然后根据二进制中那些位是1,使用相应的单色图合成一张单色图
你所要的掩码就是针对合成后的单色图做掩码

这15张图片循环就会有你所要的效果
发表于 2007-6-13 00:20:13 | 显示全部楼层
在速度的优化时,注意利用上一图片的特征
例如
2 -> 0010 -> Pc
3 -> 0011 -> Pc & Pd

在生成3的时候可以直接在2的基础上进行 & Pd的操作就可以

从我自己的角度来看,模拟16色的灰度需要4个图片缓冲区
(160* 80/8) * 4 =6.25 KByte

内存的时候要好好考虑,4阶模拟灰度是同样的原理
在比较慢的机器上,上述的模拟16灰度的方法可能跟不上速度


拟灰度很繁琐的,
而且不同的机型还需要调整帧间的延时
祝你好运........
 楼主| 发表于 2007-6-13 16:01:53 | 显示全部楼层
十分感谢前辈的指教!!

敬礼!!
发表于 2007-6-16 13:54:54 | 显示全部楼层
那16张图片可能搞错了
我只记得基本的原则是保证对应的bit的图片出现的概率接近1:2:4:8
可以推导出来的
 楼主| 发表于 2007-6-11 20:48:03 | 显示全部楼层 |阅读模式
  关于宠物小精灵中的伪灰度,请问是怎么将图片分解的?
因为直接使用B16做的话,不能实现掩膜效果,精灵中能使用是因为采用了新的分解方式吧?
本人想使用同样的效果,能否告知如何做成这种效果呢,先谢过了。
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2022-1-26 16:28 , Processed in 0.015501 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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