cocos2d 重写顶点着色语言
bool CCShaderSprite::initWithFile( const char *pszFilename )
{
bool ret=false;
do
{
ret=CCSprite::initWithFile(pszFilename);
//
CCGLProgram* shader = new CCGLProgram();
shader->initWithVertexShaderFilename("example_Water.vsh","example_Water.fsh");
shader->addAttribute(kCCAttributeNamePosition, kCCVertexAttrib_Position);
shader->addAttribute(kCCAttributeNameColor, kCCVertexAttrib_Color);
shader->addAttribute(kCCAttributeNameTexCoord, kCCVertexAttrib_TexCoords);
shader->link();
shader->updateUniforms();
m_uniformPos = glGetUniformLocation(shader->getProgram(), "f_point");
//m_uniformTime = glGetUniformLocation(shader->getProgram(), "f_time");
m_uniformMapHeight = glGetUniformLocation(shader->getProgram(), "f_height");
m_uniformMapWidth = glGetUniformLocation(shader->getProgram(), "f_width");
//m_uniformMonsterTex = glGetUniformLocation(shader->getProgram(), "CC_Texture1");
this->setShaderProgram(shader);
shader->release();
CHECK_GL_ERROR_DEBUG();
CCSize size = CCDirector::sharedDirector()->getWinSize();
m_Pos.x = size.width*0.5;
m_Pos.y = size.height*0.5;
} while (0);
return ret;
}
void CCShaderSprite::draw( void )
{
//--you can set Uniform in here
CC_NODE_DRAW_SETUP();
//getShaderProgram()->setUniformLocationWith1i(m_uniformMonsterTex,1);
getShaderProgram()->setUniformLocationWith1f(m_uniformMapHeight,sUniformMapHeight);
getShaderProgram()->setUniformLocationWith1f(m_uniformMapWidth,sUniformMapWidth);
getShaderProgram()->setUniformLocationWith2f(m_uniformPos,m_Pos.x,m_Pos.y);
//getShaderProgram()->setUniformLocationWith1f(m_uniformTime,m_RippleTime);
//ccGLBindTexture2DN(1,m_MonsterTexture->getName());
CCSprite::draw();
}
cocos2d 重写顶点着色语言的更多相关文章
- OpenGL12-shader(GLSL)着色语言2-(参数传递)(代码以上传)
上一篇中介绍了如何使用shader,用来一个最简单的shader,计算顶点的位置,调用了 OpenGL 顶点着色语言中的内置变量对顶点进行操作,这一例程中,将展示如何将应用层 的数据传递到shader ...
- OpenGL ES 着色语言
OpenGL 着色器中使用的是着色语言GLSL.着色语言源自C语言,提供了丰富的原生类型,如向量.矩阵等,还有大量的内建函数,这在处理3D图形时可以更加高效.易用.下面是整理的是OpenGL ES2. ...
- OPENGL学习笔记整理(五):着色语言
有些事情本身就是十分奇怪的.在传统上,图形硬件的设计目的是用于快速执行相同的硬编译指令集.不同的计算步骤可以被跳过,参数可以被调整,但计算本身确实固定不变的.然而,随着技术的发展,却越来越变得可以编程 ...
- OpenGL ES 3.0顶点着色器(二)
#version es uniform mat4 u_mvpMatrix; in vec4 a_position; in vec4 a_color;out vec4 v_color;void main ...
- Obj模型功能完善(物体材质,光照,法线贴图).Cg着色语言+OpenTK+F#实现.
这篇文章给大家讲Obj模型里一些基本功能的完善,包含Cg着色语言,矩阵转换,光照,多重纹理,法线贴图的运用. 在上篇中,我们用GLSL实现了基本的phong光照,这里用Cg着色语言来实现另一钟Blin ...
- GLSL着色语言学习。橙皮书第一个例子GLSL+OpenTK+F#的实现。
Opengl红皮书有选择的看了一些,最后的讲着色语言GLSL的部分看的甚为不理解,然后找到Opengl橙皮书,然后就容易理解多了. 在前面,我们或多或少接触到Opengl的处理过程,只说前面一些处理, ...
- OpenGL12-shader(GLSL)着色语言1(代码已上传)
OpenGL着色语言(GLSL――OpenGL Shading Language)是用来在OpenGL中着色编程的语言, 也即开发人员写的短小的自定义程序,他们是在图形卡的GPU (Graphic P ...
- 着色语言(Shader Language)
摘抄"GPU Programming And Cg Language Primer 1rd Edition" 中文名"GPU编程与CG语言之阳春白雪下里巴人" ...
- DirectX9:高级着色语言(HLSL)
一.简介 高级着色语言(High)可以编写顶点着色器和像素着色器,取代固定功能流水线中的部分功能,在图形卡的GPU(Graphics Processing Unit,图形处理单元)中执行 注意:如果图 ...
随机推荐
- 嵌入式设备hacking(转)
原帖地址:http://drops.wooyun.org/papers/5157 0x00 IPCAM hacking TOOLS github-binwalk firmware-mod-kit ID ...
- centos7 通过kvm+vnc 实现远程桌面虚拟化和创建windows、Linux虚拟机
感谢朋友支持本博客.欢迎共同探讨交流,因为能力和时间有限.错误之处在所难免,欢迎指正! 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...
- qt 4.8.5 vxworks 6.8 demo
2692407267@qq.com 环境vxworks 6.8.3 + GNU Patch.Qt-commercial-4.8.5 0 先安装vxworks 6.8.安装mingw 1 先编wind ...
- [MSDN] Windows Server 2012 R2 简/繁/英下载
Windows Server 2012 R2 Chinese-Simplified ISO SHA1-------------------------------------------------- ...
- dos命令行实践
本篇体验使用dos命令行窗口实现各种操作. □ 打开dos命令行窗口 →点击电脑左下角"开始"按钮→点击"运行"→输入"cmd",按回车,来 ...
- 转:在两个页面间翻转设置Animation动作的一些总结
今天碰到两个页面之间翻转的动作设计问题,发现了一些问题,故做个总结,很多都写在注释部分: 1.首先,我们来手动创建两个view以及相应的viewController.是手动,不是用IB (1)刚开始只 ...
- 使用Dictionary泛型集合封装业务逻辑判断 z
C#2.0 提供了Dictionary 泛型类,它提供了从一组键到一组值的映射.字典中的每个添加项都由一个值及其相关联的键组成.通过键来检索值的速度是非常快的,接近于 O(1),这是因为 Dictio ...
- ELK+Filebeat 安装配置入门
本文地址 http://www.cnblogs.com/jasonxuli/p/6397244.html https://www.elastic.co 上,elasticsearch,logsta ...
- Git 学习(三)本地仓库操作——git add & commit
Git 学习(三)本地仓库操作——git add & commit Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念.这在上文已有提及,本文具体说明什么是工作区及暂存区,以及 ...
- Spark GraphX图处理编程实例
所构建的图如下: Scala程序代码如下: import org.apache.spark._ import org.apache.spark.graphx._ // To make some of ...