位置: 编程技术 - 正文
推荐整理分享AutoPainting,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
半径为的起始状态
半径为2的结束状态
演示视频
点击打开链接
Unity工程创建,版本4.6.4f1,平台Windows 7 位,dx9版本File >> Build Settings >> Player Settings把Use Direct3D 的勾去掉,不知什么原因,写的这个画圆的shader在dx下无效,如果有朋友知道原因请留言告知,不胜感谢。
导入图像素材,并设置Texture Type为Advanced,勾选Read/Write Enable选项,可读写纹理,其他项选择性勾选
新建一个Quad,设置Scale为显示分辨率大小,本例为x
创建一个Unity3D内置材质命名为MatUnlit,类型为Unlit/Texture,并把他挂到Quad上创建另一个材质命名为MatShaderImageCircle,并选自定义的的画圆shader
修改相机属性,把Position设为0,0,-,这里只是单纯把Y改为了0而已Projection改为Orthographic,Size改为高度的一半,也就是
把AutoPainting脚本挂到相机上,设置如图
C#脚本代码比较简单,建立名为canvasData的RenderTexture,并赋到Quad所用的材质纹理上,就是动态改变其纹理
随机得到一个像素点的颜色,把他的颜色和坐标传给shader,其他参数还有圆心半径,传完后调用Graphics.Blit函数,调用shader材质画到RenderTexture上,画完后把图像也传回shader帧处理与截图略,截图只要在程序运行时点一下BSaveOnce那个勾,程序会卡一下,表示截图并保存了,需要说明的是这个截图是拉伸的,不太清楚为什么保存的不是所比例效果,有知道的朋友请留言相告,谢谢。shader部分很简单,只有像素着色处理
得到像素的图像坐标,因为uv范围是0-1,乘上屏幕大小就是当前像素在屏幕坐标下的位置
当前像素与圆心坐标的距离平方如果在圆内,就画圆,不在圆内画原来纹理上已有的内容,这是一个累积的效果
工程下载
百度网盘,Unity3D>Experiment>AutoPainting
点击打开链接
unity3d在线更新资源(2) 昨晚看了很多游戏的源代码,研究它们的在线更新方式,发现有两种。1.登陆游戏时候检查更新,下载过来后,通过预加载的方式,然后同步使用。2.同
VectorField2D 这篇来说移植自Flash的2D向量场粒子效果静态效果可能不太明显,动态效果就好多了,简单说就是有点像AE的粒子特效插件那种感觉了视频演示点击打开
【Unity3d】System.IO.FileInfo Create 和 Delte方法找不到错误 System.IO.FileInfoCreate和Delte方法找不到错误解决方法!今天写着写着,好端端的文件,突然冒出这么个错误,我的天!查了下MSDN,发现没错!最后发现是平
标签: AutoPainting
本文链接地址:https://www.jiuchutong.com/biancheng/378718.html 转载请保留说明!上一篇:Photon + Unity3D 线上游戏开发(续貂) - 多客户端通信(unity3d spine)
下一篇:unity3d在线更新资源(2)(unity3d最新api)
友情链接: 武汉网站建设