看你贴那么多代码,心痒痒。
图一:GML部分
图二:shader的fsh部分(在图1的197行开启)
来回改的时候留了一些debug的、替换下去没删除的代码,还注释着,反正凑合能看。
行184-203,对比表面sf[sf[0]]每个像素和y-1像素的差异,并把加权结果放到临时表面0上,其中加权算法在shader里边;
行204-228,将每行的差异记录累计到最左侧的那一列像素上;
行229-251,把结果导出到buffer,并根据差异情况决定是否标记为“分割”(ysp[]);
咱做的那个拼图,可以用这个算法来进行辅助切割,虽说切割结果和实际还是有差异,不过大多数判定还是能用的。
顺便就是如果用cpu读所有像素的颜色(单线程),会慢很多。如果不借助buffer而是直接从表面读的话,差不多就是可以考虑放弃这个功能不做的程度。