cocos2d-x 模型用上shader的方法。仅备份
2016-11-10 15:09
190 查看
auto floor = PhysicsSprite3D::create("Sprite3DTest/box.c3t", &rbDes); //floor->setTexture("Sprite3DTest/plane.png"); auto glprogram = GLProgram::createWithFilenames("Sprite3DTest/test.vs.txt", "Sprite3DTest/test.fs.txt"); auto glprogramstate = GLProgramState::create(glprogram); //floor->setGLProgramState(glprogramstate); Texture2D* mix_tex = Director::getInstance()->getTextureCache()->addImage("Sprite3DTest/mix.png"); glprogramstate->setUniformTexture("mix", mix_tex); Texture2D* tex1 = Director::getInstance()->getTextureCache()->addImage("Sprite3DTest/GrassGround.png"); glprogramstate->setUniformTexture("tex1", tex1); Texture2D* tex2 = Director::getInstance()->getTextureCache()->addImage("Sprite3DTest/Ground02.png"); glprogramstate->setUniformTexture("tex2", tex2); auto material = Material::createWithGLStateProgram(glprogramstate); floor->setMaterial(material);
、、、、fs
varying vec2 TextureCoordOut;
uniform sampler2D mix;
uniform sampler2D tex1;
uniform sampler2D tex2;
void main()
{
vec4 clr_tex1=texture2D(tex1, TextureCoordOut);
vec4 clr_tex2=texture2D(tex2, TextureCoordOut);
vec4 clr_mix=texture2D(mix, TextureCoordOut);
gl_FragColor =clr_tex1*clr_mix.r + clr_tex2*clr_mix.g;
}
、、、、、vs
attribute vec4 a_position;
attribute vec2 a_texCoord;
varying vec2 TextureCoordOut;
void main(void)
{
gl_Position = CC_MVPMatrix * a_position;
TextureCoordOut = a_texCoord;
}
相关文章推荐
- 【Cocos2d-x】图片描边的一种比较好的shader实现方法
- cocos2d-x 3D模型 抗锯齿方法
- cocos2d-x 2.x CCScale9Sprite shader渲染变灰方法
- 详解MySQL数据备份之mysqldump使用方法
- sybase自动备份方法
- sql server 怎么样实现远程备份,用程序的方法
- sps编程模型中打开站点的几种方法
- sps编程模型中打开站点的几种方法
- 一種C仿真C++對象模型的方法
- MySQL自动备份方法[摘合]
- 面向对象的模型设计方法
- 采用DOM模型时创建一个Select节点后,要删除option项的解决方法
- 解决sqlsever日志备份错误的方法
- 最简便的备份MySql数据库方法
- 三维模型顶点法向量和偏导数的计算方法
- 〔转载〕建立经济理论模型方法
- 不通过SPS对象模型更改文档扩展字段的方法
- SCOR提供了一套集成的、启发式的方法模型
- 域控制器备份(导出域用户的方法)
- SQLSEVER2000的数据库备份/恢复(VB方法)