cocos2d-x 模型用上shader的方法。仅备份
发布时间:2020-12-14 17:14:45 所属栏目:百科 来源:网络整理
导读: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 = G
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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |