Cocos2d-x
发布时间:2022-05-03 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了【玩转cocos2d-x之四十】如何在Cocos2d-x 3.0中使用opengl shader?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有小伙伴提出了这个问题,其实gLProgramCocos2d-x引擎自带了。完全可以直接拿来用。
先上图吧。使用opengl前后的对比:@H_607_6@
@H_607_6@
@H_607_6@
@H_607_6@
@H_607_6@
1.在cpp中使用openGL shader。
(1)添加gray.vsh和gray.fsh到资源目录(见附件)。
(2)添加如下代码:
@H_607_6@
@H_772_31@@H_607_6@
- boolHelloWorld::init()
- {
- if(!Layer::init())
- returnfalse;
- }
- izevisibleSize=Director::geTinstance()->getVisibleSize();
- autosprite=Sprite::create("HelloWorld.png");
- sprite->setAnchorPoint(Point(0.5,0.5));
- sprite->setPosition(Point(visibleSize.width/3,visibleSize.height/3));
- this->addChild(spritE);
- graySprite(spritE);
- true;
-
- voidHelloWorld::graySprite(Sprite*spritE)
- {
- if(spritE)
- GLProgram*p=newGLProgram();
- p->initWithFilenames("gray.vsh","gray.fsh");
- p->bindAttribLOCATIOn(GLProgram::ATTRIBUTE_NAME_POSITION,GLProgram::VERTEX_ATTRIB_POSITION);
- p->bindAttribLOCATIOn(GLProgram::ATTRIBUTE_NAME_COLOR,GLProgram::VERTEX_ATTRIB_COLOR);
- p->bindAttribLOCATIOn(GLProgram::ATTRIBUTE_NAME_TEX_COORD,GLProgram::VERTEX_ATTRIB_TEX_COORDS);
- p->link();
- p->updateUniforms();
- sprite->setShaderProgram(p);
- }
@H_607_6@
@L_944_5@@H_772_31@2.在js中使用opengl shader.
(1)添加gray.vsh和gray.fsh到资源目录。
(2)添加如下代码:
@H_607_6@
@H_607_6@