Shader for sprite clipping】的更多相关文章

Unity3D - Shader for sprite clippinghttp://stackoverflow.com/questions/23165899/unity3d-shader-for-sprite-clipping Shader "Sprites/ClipArea" { Properties { _MainTex ("Base (RGB), Alpha (A)", 2D) = "white" {} _Length ("Le…
认识着色器 理解OpenGL渲染管线,对于学习OpenGL非常重要.下面是OpenGL渲染管线的示意图:(图中淡蓝色区域是可以编程的阶段) 此图是从wiki中拿过来的,OpenGL的渲染管线主要包括: 准备顶点数据(通过VBO.VAO和Vertex attribute来传递数据给OpenGL) 顶点处理(这里主要由Vertex Shader来完成,从上图中可以看出,它还包括可选的Tessellation和Geometry shader阶段) 顶点后处理(主要包括Clipping,顶点坐标归一化和…
Shader "name" { [Properties] Subshaders [Fallback] }(1)Properties:{ Property [Property ...] } 属性列表,如color.texture.float等. name ("display name", Range (min, max)) = number name ("display name", Color) = (number,number,number,n…
有小伙伴提出了这个问题.事实上GLProgramCocos2d-x引擎自带了.全然能够直接拿来用. 先上图吧. 使用opengl前后的对照: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamFja3lzdHVkaW8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt=""> 1.在cpp中使用openGL shad…
引擎提供了CCGLProgram类来处理着色器相关操作,对当前绘图程序进行了封装,其中使用频率最高的应该是获取着色器程序的接口:const GLuint getProgram(); 该接口返回了当前着色器程序的标识符.后面将会看到,在操作OpenGL的时候,我们常常需要针对不同的着色器程序作设置.注意,这里返回的是一个无符号整型的标识符,而不是一个指针或结构引用,这是OpenGL接口的一个风格.对象(纹理.着色器程序或其他非标准类型)都是使用整型标识符来表示的. CCGLProgram提供了两个…
ActionManager 动作管理Actions-Basic   按引导移动Actions-Ease  缓动Actions-Progress  渐渐显示Allocator-Basic  std 的 allocator 封装内存的分配和释放audio-cocosdenshion 音乐audio-NewAudioEngine  新的音乐引区擎Chipmunk  物理引擎Click and Move 点击和移动Configuration  关于配置的Console  输出 有IP 用户目录curl…
第一次接触EZ GUI,记录学习过程 准备工作 导入资源 导入 EZ GUI 1.0795.unitypackage 和 SpriteManager2 v1.92.unitypackage EZGUI_Demo_Simple.unitypackage 我的工程目录 Hierarchy结构 菜单栏增加项 可以发现菜单栏多了些工具选项 创建Button 1.新建一个 Layer ,命名 "GUI" 2.创建一个新的GameObject ,命名 "UIManager",挂…
0.前言 这些简单的shader程序都是写于2015年的暑假.当时实验室空调坏了,30多个人在实验室中挥汗如雨,闷热中学习shader的日子还历历在目.这些文章闲置在我个人博客中,一年将过,师弟也到了学shader的时候,这些例程虽然很简单,刚接触shader时却可以练练手,所以从个人博客中中搬了出来.而对于有一个月以上shaderLab编程经验的同学来说,这篇文章可以不用看了:-) 1.表面着色器概述 表面着色器只存在于Unity中,算是Unity微创新自创的一套着色器标准.它使得shader…
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/45534245 今天项目中需要用到黑夜灯光照射,由于普通的2DSprite使用的材质是不接收光反射的.所以我们必须修改Sprite Renderer的材质. 第一步,建立工程 下面是我建立的工程,你会发现Point light对2DSprite没有产生任何作用. 第二步,修改Sprite Material, 让其…
参考资料:     http://shahdza.blog.51cto.com/2410787/1561937 http://blog.csdn.net/jackystudio/article/details/17160973 [ClippingNode] 1.原理 ClippingNode(裁剪节点)可以用来对节点进行裁剪.ClippingNode是Node的子类,可以像普通节点一样放入Layer,Scene,Node中. 主要是根据一个模板(Stencil)切割图片的节点,生成任何形状的节点…
NGUI底层绘制都是调用UIDrawCall来完成的,它会动态实例化出材质球,改变UV偏移和缩放(图集显示).并且全部是面片 UIPanel也是面片,但是内部物体遮罩比较特殊,经过查找发现,影响UIPanel内部物体遮罩的是它的shader. ===================================== 查找过程: 1.首先是在UIPanel中找到mClipRange,然后在Fill中找到似乎和UIDrawCall有关. void Fill (Material mat) { //…
在unity中,我们可能需要更换怪物的贴图,来达到以下效果 方法1:手动配置 找到自己配置好的扩展名为.mat的文件,在怪物的节点找到带Mesh Render的子元素,将其拖放到如图位置 方法2:代码创建法 材质的创建,需要赋值两个重要的元素,一个是shader,另一个是贴图 Material mat = new Material(Shader.Find("Sprite/Vertex Colored, Fast")); mat.SetTexture("_MainTex&quo…
主页:www.shaderweaver.com教程:www.shaderweaver.com/tutorials.html 1.一款插件,挺强大的 ShaderWeaver使用教程-基本操作介绍 http://blog.csdn.net/wwlcsdn000/article/details/78791763 插件已经存在微云unity里面了 2.一个教程值得参考 Unity Shader-模仿炉石传说卡牌动态效果 http://www.manew.com/thread-110739-1-1.ht…
OCCT模块结构图 基础类: Foundation Classes module underlies all other OCCT classes; 模型数据: Modeling Data module supplies data structures to represent 2D and 3D geometric primitives and their compositions into CAD models; 模型算法: Modeling Algorithms module contai…
Cocos2d-x 3.x的label使用了freetype字体引擎(http://www.freetype.org/),可以很轻松的实现描边和阴影效果.所以本篇文章只针对于sprite来实现描边效果. 官方demo中描边shader没有看懂,看效果好像是有点问题,透明的部分变成了黑色.作者也没有怎么解释,直接丢了一个网址出来(http://www.idevgames.com/forums/thread-3010.html),看样子是参考了这个帖子. 后来从网上别人的博客中找到了一遍关于描边sh…
在Sprite中使用Shader做特殊的颜色处理比较简单,只需要把Shader程序绑定到Sprite上即可: sprite.shaderProgram = alphaTestShader; Cocos2d内置了一些Shader,详细可以看代码: 其中,CCShaderCache缓存了一些Shader实例,而GLProgram则对gl的api做了简单的封装让接口更友好. 需要注意的是,使用GLProgram编译shader程序时,cocos2d会自动加入了一些参数. _compileShader:…
效果: 思路: 1.算出正确的uv去采样过滤图,上一篇文章说的很明白了.Shader实例:NGUI图集中的UISprite正确使用Shader的方法 2.用当前血量占总血量的百分比来设置shader中的变量,来控制血条的裁剪. 实际操作中,在shader中声明一个uniform float _Factor 然后在C#脚本中,对这个变量进行设置,结果发现,界面上不能实时响应这个值,进行正确的裁剪. 那么我只好牺牲color的一个分量,比如设置g分量,shader中用g分量的值来对血条进行裁剪.最终…
效果: 变灰,过滤,流光 都是UI上常用效果. 比如: 1.按钮禁用时,变灰. 2.一张Icon要应付圆形背景框,又要应付矩形背景框.就要使用过滤的方式来裁剪. 避免了美术提供两张icon的麻烦,又节省了内存. 3.流光,呃……,策划就是要,你能怎么办. 实践: NGUI把要用到的图片做成了图集,它会记录每一张小图的信息. 包括:每一张小图在这张图集里面的位置,长,宽,padding,border.等等. 使用时只是采样这张小图所在区域,然后显示在UI的mesh上. 如果我们用这张小图的texc…
效果: 序列帧图片网上随便找的,质量不是很好,重点不是它,不要在意. 思路: 1.之前都是在一张面片上直接映射一张纹理,IN.uv的范围是0~1 现在要映射一张纹理上的一小块区域,就要用这块区域的uv去采样后映射到面片. 所以:x方向,IN.uv.x/列数,范围变化到0~(1/列数) 同理:y方向,IN.uv.y/行数,范围变化到0~(1/行数) 2.根据时间驱动,加上当前sprite的偏移量 uv.x = cellX + SpriteColumnIndex*1.0 / _Column; uv.…
效果: 案例:新仙剑,王者之剑. 在切换场景的时候,就会有这样的全屏扭曲效果. 思路: 1.用GrabPass抓屏到一张纹理中. 2.进行扭曲,绘制到UGUI的Image上. 准备: 去官网下载Unity内置Shader,当前最新版本:builtin_shaders-5.3.1f1 http://unity3d.com/cn/get-unity/download/archive 里面有Image用的默认Shader:Sprites-Default 我们要在这个shader的基础上加上扭曲效果.…
A Simple OpenGL Shader Example eryar@163.com Abstract. OpenGL Shading Language, the high-level programming language defined to allow application writers to write programs that execute on the programmable processors defined within OpenGL. Informally t…
1.前面的心情 上班看shader我也是醉了.写完这篇看代码去了,不过看着看着恐怕就会困.... 还有就是上天,我该怎么做,下一步,大懒: 2.参考源头 http://blog.csdn.net/candycat1992/article/details/18662601 http://www.cppblog.com/lai3d/archive/2008/10/23/64889.html 群里问大神 3.实现效果和代码 实现效果:猴子的animation动画:16张小图顺序变化:但由于此图并未对齐…
转自http://www.waitingfy.com/archives/1741 1.为了节约一张图引发的Shader使用  我们注意到这个游戏当中经常使用一些按钮,美术会给两张图,一张稍微暗点,表示按下的状态.但是这样的图一多起来,就比较占用资源.Sprite更改颜色无法表现出这样的效果.想起来Shader可以. 2.变灰是比较常见 Cocos2d-x中有一个变灰的例子,这里就列出shader代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 #ifdef GL_ES prec…
因为骨骼动画是由多个sprite组成, 所以需要遍历每个sprite 才能修改整体, 开头这样设置,在游戏中发现走路状态没问题,攻击状态就有部分sprite没效果 for (auto & object : armObj->getBoneDic()) { if (cocostudio::Bone *bone = dynamic_cast<cocostudio::Bone *>(object.second)) { Node *node = bone->getDisplayRen…
先上效果 有个问题就是,UISprie用的Atlas的公用的材质,无法从当前要绘制的片段shader上获得uv百分比,所以当有其他的Sprite使用相同的Atlas时显示就有问题 其实Mesh是可以接受另外一套uv的,不过目前还没有找到给NGUI造的mesh传另外一套uv的方法. //代码 using System; using UnityEngine; using System.Collections; public class UIRoundSprite : UISprite { publi…
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 上一次我们讲了MonoBehaviour的前世今生,了解了游戏中的每一个GameObjec都是由脚本控制的,这一次我们开始将Unity中Native 2D中的Sprite,并且使用Animation来让Sprite动起来. 在接下来的几篇博客里,我会通过做一个Flappy Bird来讲解Unity中各个组件的使用,项目的源代码在这里:U…
渲染流水线   一.渲染流水线 渲染流水线的工作任务在于由一个三维场景出发.生存(或者说渲染)一张二维图像.换句话说,计算机需要从一系列的顶点数据.纹理等信息出发,把这些信息最终转换成一张人眼可以看到的图像.而这个工作通常是由CPU和GPU共同完成. 一个渲染流程分三个阶段:应用阶段(Application Stage).几何阶段(Geometry Stage).光栅化阶段(Rasterizer Stage). 1.应用阶段 从名字我们可以看出,这个阶段是由我们的应用主导的,因此通常由CPU负责…
2D游戏中也可以使用灯光?这真是一个好消息,接下来,我将为大家写一下教程 操作步骤 1.创建一个Materilas,修改Shader为 2.创建一个Sprite(使用黑色的图片) 3.创建一个Point Light(注意:PointLight的z一定要在Sprite前面),调整灯光参数 加入灯光后的效果…
Shader "LordShader/AnimateSprite" { Properties { _MainTint (,,,) //颜色属性,可以在u3d inspector面板控制该变量 _MainTex("Base (RGB)",2D) = "white" {} //贴图 _TexWidth("Sheet Width",float) = 0.0 //贴图宽度像素值 _SpriteFrameNum("Sprite…
在上篇文章中,我给大家介绍了如何在cocos2d-x里面绘制一个三角形,当时我们使用的是cocos2d-x引擎自带的shader和一些辅助函数.在本文中,我将演示一下如何编写自己的shader,同时,我们还会介绍VBO(顶点缓冲区对象)和VAO(顶点数组对象)的基本用法. 在编写自己的shader之前,我觉得有必要提一下OpenGL渲染管线. 理解OpenGL渲染管线,对于学习OpenGL非常重要.下面是OpenGL渲染管线的示意图:(图中淡蓝色区域是可以编程的阶段) pipeline 此图是从…