茶绘君开发博客

记录茶绘君的点点滴滴

茶绘君0.5临近

随着2014春节的临近,茶绘君0.5版本也准备的差不多了,只剩下一些微调。Github上目前还有一些issue因为代码没有合并到主分支,所以还没有关闭。但我相信关闭它们也只是几天之内的事情。

茶绘君0.5最主要的变化体现在两方面。

新的笔刷系统。原有的笔刷系统比较固定,只有几个作用非常有限的参数,效果也比较一般。很多小伙伴说笔刷有没有这样那样的设置,让我感觉笔刷系统可以做的更好,因此便有了这套新的笔刷系统。

新笔刷系统增加了水彩、蜡笔、二值笔。水彩和二值是模仿SAI来做的,当然效果上还是有一些差距的,另外在茶绘实际使用中也有可能因为其它的一些因素产生偏差。二值的实现非常简单,只是对笔刷绘画过程不做任何处理即可达成。水彩的实现相对复杂一些,因为水彩在绘画过程中需要不断从画布中读取已有的像素值,并不断更新笔刷的实际输出。从这一方面来说,水彩的性能也会比其它各笔刷低很多,对于电脑性能较差的用户,还是尽量不要在大范围内使用水彩为妙,而其它小伙伴也最好控制水彩的使用频度,以免对房间内其它人造成大的影响。

水彩目前还是有一些问题。一方面是色延伸、水分量和混色三个数值对水彩实际效果的影响比较微妙,仅仅靠外部观察SAI的表现,还不太能够精准推算出其算法。因此对水彩有着非常高期望的小伙伴们,要适当调低一下期望值。当然这个算法是会不断改进的,对水彩有较深理解的小伙伴可以私下联系我一下,聊聊它的实现细节。另一方面比较担心的是水彩对画布现有颜色的依赖程度较高,在绘画复现的过程中,有可能会出现色彩跟不上的情况。简单来说,绘画复现的时候,并不是接到一笔就画一笔的,为了提升复现的性能,我们内部可能在绘画10笔甚至更多的时候才真正将数据更新到画布上。而水彩恰恰希望每一笔都是画布的最新状态,这就有一点点小矛盾了。目前我还没有进行大规模的测试,这个问题暂时没有显现出来,但我觉得应该拿个小本子预先记下来。

随着笔刷系统的更新,笔刷的图标也正在重绘中。目前这一工作由林卯同学来做,非常感谢林卯的帮助,我们拭目以待。

另外一个较大的变化是更新器。茶绘君0.5的更新器用Go语言重新实现了,服务端那边虽然还是Node.js,但也做了相当大的调整。这次调整有两方面。首先是原先茶绘君的更新器只能告诉大家,茶绘君有更新了,要去下载,但并不能帮大家下载,更不会帮大家安装。这次的一个重要变化就是茶绘君的更新器可以自动下载、安装了。

网上有很多小伙伴都在问,茶绘君到底怎么更新,其实啊,答案就是原来的茶绘君不能自己更新。。。好了现在这个问题基本上解决了,因为茶绘君从0.5开始,将携带一个可以自动下载、安装的更新器。不仅如此,这个更新器连它自己都能更新掉,很有意思。有些小伙伴可能会担心,自动安装是否会影响自己的操作系统,是否以后需要专门的卸载。我的答案是,自动安装不影响系统,也根本无需卸载。原因在于茶绘君的安装其实就是把原来茶绘君的文件替换掉而已,并没有什么黑箱操作,和某些软件很不相同。所以说如果大家担心自动安装,那么可以自行下载更新覆盖,完全OK。

其次,茶绘君更新器从原有的TCP协议变化为了HTTP协议。这一变更主要是为了减少更新器在维护、实现中的负担,专心将工作集中在茶绘君本身上。简单来说,现在只要客户端向服务端POST几条数据即可。

但是目前比较囧的问题就是更新器在Mac OSX上的实现还不正确,使用Mac的小伙伴仍将需要手动更新。在茶绘君0.5整个周期中,更新器还会有一些变化,其中最重要的就是增加完整的Mac OSX支持。为了不影响茶绘君的发布,更新器只能降一下优先级了。

不管怎么说,还是希望茶绘君0.5的开发工作能够在春节前结束,大家期待吧。