场景编辑器开发第四天,继续迭代绘画功能
昨天第三天把绘画功能的大体框架制作出来,今天则是抽象出各种接口模块,比如常规绘画属性接口,大小 颜色 锐度 还有笔刷接口,笔.刷模块,矢量笔.刷,矢量笔刷的各种模块选择,圆形 方形 多边形 位图笔.刷...还有彩色纹理笔的实现逻辑。
彩色纹理笔的实现方案是bitmap纹理遮罩,通过已经有的绘画功能画出存在透明的轮廓位图,然后通过遮罩纹理大图,最终产生纹理笔的效果。
这里的纹理大图,使用的是重复填充纹理,这个功能非常棒,我曾经测试过,上万分辨率的重复纹理和一张只有几百x几百大小的纹理性能消耗是相同的。
关于撤销重做历史记录的功能已经在上个博客里面写过了,这里不进行展开。
下面就是我要讲的整体架构设计了,
容器1:存放笔刷画的内容列表
1.滤镜特效容器应用
2.黑白灰透明度路径
3.存储当前一点move移动序列
位图1:塌缩容器1绘画内容
以便于进行位图特效操作,比如后面的mask遮罩
位图2:指定遮罩位图数据
如果有开启纹理笔刷,那么就mask指定位图1让其产生遮罩效果否则隐藏不应用。
位图3:这里存放的是全部绘画结果叠加
画的任何东西都会显示在这里,也就是叠加
容器2:存放位图1和位图2和位图3内容
这里就包含了笔刷和纹理笔刷的所有内容功能叠加。
所以,最终结果就是,顶层目录下放两个容器,一个放绘画内容一个放塌缩位图和最终结果,最终就做完全部的绘画功能了。
场景编辑器开发第四天,继续迭代绘画功能相关推荐
- CocoStudio场景编辑器开发之组件定位
CocoStudio中场景编辑器是游戏运行的最关键场所,尽管DEMO中提供了各种类型的例子,但是在涉及到组件定位时,还是空白. 例如,DEMO中仅提供了这样的代码: CCNode *pNode = S ...
- AMIO编辑器开发(四):五一劳动节的编程较量,C++语言的设计模式
五一节公司放3天假,我计划前2天继续写编辑器代码.最后一天回家休息,陪陪妈妈. 上次的瓶颈的解决方案已经想到了,就是用C++来实现常用的设计模式(单例.观察者.适配器.工场...) 转载于:https ...
- Silverlight游戏设计(Game Design):(二)场景编辑器让游戏开发更美好
如果哪天光荣告诉我:<三国志>系列将终结,我会义无返顾的用余下那点青春继续诠释这部中国历史经典题材游戏,已无法细数它占据了我多少童年的回忆,就好比曾有那么一群满腔热血的<梦幻模拟战& ...
- 地图编辑器开发(五)
系列教程: 地图编辑器开发(一)加载地图 地图编辑器开发(二)编辑地图 地图编辑器开发(三)测试阻挡 地图编辑器开发(四)导出阻挡信息 地图编辑器开发(五)导出地图资源 上一节篇尾提到,地图要切成小图 ...
- Unity编辑器开发(五):实战、开发一个AB包编辑器工具
前言 在我们上一篇(Unity编辑器开发(四):实战.开发一个AB包编辑器工具)的结尾,我们拥有了如下图中那样的一个编辑器窗口: 接下来我们来完成最后部分,也就是包括创建AB包,清理AB包,删除AB包 ...
- 地图编辑器开发(三)
系列教程: 地图编辑器开发(一)加载地图 地图编辑器开发(二)编辑地图 地图编辑器开发(三)测试阻挡 地图编辑器开发(四)导出阻挡信息 地图编辑器开发(五)导出地图资源 上一节已经把地图信息编辑做好了 ...
- 【微信公众号开发】四、公众号按钮设置及自己的微信按钮编辑器
文章详情:[微信公众号开发]四.公众号按钮设置及自己的微信按钮编辑器 链接:https://www.microanswer.cn/blog/14
- 虚幻引擎编辑器开发基础(一)
虚幻引擎编辑器开发基础(一) 文章目录 虚幻引擎编辑器开发基础(一) 一.前言 二.插件与模块 2.1 插件(Plguin) 2.1.1 插件的作用 2.1.2 插件的类型 2.1.3 插件结构 2. ...
- Unity编辑器开发:2020更新
正所谓:人靠衣装,佛靠金装.学会插件开发,成就大神人生. 欢迎关注公众号:雷潮课堂 编辑器开发 一.课程内容 1-1本课程目标 1-2插件开发的起因 1-3插件的作用 二.菜单项制作 2-1菜单项(M ...
最新文章
- Nature | 原核生物基因的生物地理学研究
- 全球投资者为阿里尖叫!阿里CEO张勇详解天猫商业新力量
- python笔记:jieba(中文分词)
- idea验证失败_SVN提示https证书验证失败解决办法
- python简单好看的代码_Python新手写出漂亮的爬虫代码1
- Leetcode | 107. Binary Tree Level Order Traversal II
- 电商 竞品分析_母婴电商类app竞品分析报告
- SQL Server Management Studio –分步安装指南
- margin塌陷现象div盒子嵌套盒子外边距合并现象
- roadrunner中文文档(四)app服务器
- 建站手册-网站构建:万维网联盟(World Wide Web Consortium)
- ioi 赛制_徐明宽IOI2017参赛总结及他的信息学竞赛之路
- 谷歌插件EpubPress 将网页保存为电子书
- MyBatis日期用法技巧
- 【更新】关于VMware虚拟机无法正常获取IP地址问题的解决方法及思路
- JVM命令之 jstat:查看JVM统计信息
- python之模块导入及模块导入路径
- XML文件的一些操作
- Warning: Failed to parse host xx.xx.com
- 再谈目前QQ空间主流的赚钱方法
热门文章
- shell去掉输出的末尾换行符
- 二分查找算法递归和非递归实现
- Spring SpringMVC SpringBoot SpringCloud概念及关系
- python爬取音乐源码_python3爬取咪咕音乐榜信息(附源代码)
- Java核心技术 卷1-总结-11
- sql2008属于mysql吗_SQL Server 2008 属于( )数据库系统。
- DCDC知识总结整理
- sockjs.js?9be2:1603 GET http://192.168.1.7:8080/sockjs-node/info?t=1654959638136 net::ERR_C
- 小霸王推出可挖矿的VR眼镜,把IPFS、以太坊技术全用上了
- GB、GB/T等含义