quick cocos使用shader给图片描边再挖空

这篇博客介绍了如何在Cocos2d-x中利用OpenGL ES的Shader技术,为2D图片添加描边和挖空效果。通过详细解析2d_effect_frag.material、2d_outline_frag.frag和2d_default.vert等文件,阐述了顶点着色器和片段着色器在图形处理中的应用,并提供了具体的调用方法。
摘要由CSDN通过智能技术生成

Cocos2dx底层图形绘制使用OpenGL ES可编程着色器(Shader)。OpenGL ES(OpenGl for Embedded System)是OpenGL三维图形API的子集,针对手机,PDA和游戏主机等嵌入式设备而设计。

2d_effect_frag.material 文件:

material Outline
{
    technique
    {
        pass
        {
            shader
            {
                vertexShader = 2d_default.vert
                fragmentShader = 2d_outline_frag.frag

                u_outlineColor  = 0,0,0
                u_textureOffset = 0.03,0.0
            }
        }

    }
}

2d_outline_frag.frag 文件:

#ifdef GL_ES
precision mediump float;
#endif

varying vec2 v_texCoord;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cocos引擎使用Shader可以实现各种特效和图形处理。下面是一个简单的使用Shader的步骤: 1. 创建自定义Shader文件:在Cocos项目中创建一个.glsl文件,命名为你喜欢的名称,比如"CustomShader.frag"。 2. 编写Shader代码:打开创建的Shader文件,并编写你想实现的特效或图形处理的Shader代码。你可以使用OpenGL Shading Language (GLSL)来编写。 3. 创建Shader程序:在Cocos中,你需要创建一个CCGLProgram对象来加载和管理你的Shader程序。可以在C++代码中使用以下代码创建该对象: ```cpp auto shader = GLProgram::createWithFilenames("CustomShader.vert", "CustomShader.frag"); ``` 在这里,"CustomShader.vert"是一个默认的顶点着色器文件,你可以选择性地创建并使用它。 4. 绑定Shader属性:如果你的Shader需要一些自定义属性(比如颜色、纹理等),你需要在C++代码中设置这些属性。可以使用以下代码绑定属性: ```cpp shader->bindAttribLocation("a_position", GLProgram::VERTEX_ATTRIB_POSITION); shader->bindAttribLocation("a_texCoord", GLProgram::VERTEX_ATTRIB_TEX_COORD); ``` 这里,"a_position"和"a_texCoord"是你在Shader中定义的属性名称。 5. 链接和使用Shader:在使用Shader之前,你需要链接它,并将其设置为当前使用Shader程序。可以使用以下代码完成: ```cpp shader->link(); shader->use(); ``` 6. 使用Shader:你可以在绘制节点的过程中使用Shader。可以在节点的draw()函数中调用以下代码来启用Shader: ```cpp auto program = getShaderProgram(); program->use(); ``` 这样,你就可以在节点的draw()函数中应用自定义的Shader了。 以上是一个基本的使用Shader的步骤。你可以根据自己的需求编写更复杂的Shader代码,并在Cocos项目中实现各种特效和图形处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值