- 博客(20)
- 资源 (13)
- 收藏
- 关注
原创 CCTexture2D CCSpriteBatchNode CCTextureCache CCSpriteFrameCache 分析
CCTexture2D 是对OpenGL中二位纹理的类包封,可以通过图片和内存数据来生成对应的二维纹理,实际的纹理图片可能会比生成的纹理图片要小,生成的纹理图片的大小为不小于其大小的2的N次方。还需要注意的是生成的纹理内容与纹理图片是倒着的。所以在纹理对应坐标的时候咱们需要将Y轴倒过来,否则纹理图片的对应会出错。CCSpriteBatchNode是对CCSprite节点的批处理,可以对
2013-08-12 21:31:44 1396
原创 opengl位图
// bitmap.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #pragma comment(lib, "glew32.lib")#pragma comment(lib, "glut32.lib")unsigned char raster[] ={ 0xc0,0x00,0xc0,0x00, 0xc
2013-08-29 21:32:52 1277
原创 opengl的 GL_FRONT和GL_BACK分析
很多学习opengl的同学可能不是很清楚gl_front和gl_back的区别,下面来分析一下,OpenGL中用表面来表示物体,一个物体就是一组平面。光线照射在平面上会产生反射,入射线与反射线的角平分线就是法线,它垂直于平面。面法线有两种可能的方向,我们称面有两侧。当描述封闭物体的外表面时,法线应该从内部指向外部;而表示在物体内部时,法线应该从外部指向内部。用glNormal*(N_Vec
2013-08-29 16:11:50 7236
原创 opengl 雾效
// fog.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #pragma comment(lib, "glew32.lib")#pragma comment(lib, "glut32.lib")float light_pos[] = {0.5,
2013-08-29 15:39:08 1019
原创 命令行制作 自解压的EXE到临时目录的压缩包
废话不多说,大家请看:1. cd到你要解压缩的目录:执行如下命令 winrar a -ep1 -ibck mm.rar 生成mm.rar压缩包2.在压缩包中写入注释 winrar c -zinfo.txt mm (注意这里的-z是命令 info.txt才是注释文件,注释作为脚本运行)3.注释的命令Title=Calculator 3.05Text{
2013-08-27 20:50:13 1549
转载 如何用命令行生成WinRAR自解压文件
如何用命令行生成WinRAR自解压文件一、目的:实现对程序和程序所需要的Source文件进行打包,并能够在自解压完成后,自动执行该程序。 二、参考文献:WinRAR中Help的Help topics提供了详尽介绍,这里只是对涉及的内容进行了归纳,并通过C#在程序中实现。 三、操作步骤:这里介绍命令行的实现方法,实现环境是C#的Wi
2013-08-27 19:40:16 4033
原创 opengl 混合原理
OpenGL中混合的概念:OpenGL中混合指的是把被处理片段的颜色值和帧缓冲区的颜色值进行组合。通过glEnable(GL_BLEND)来开启混合功能,通过glDisable(GL_BLEND)来关闭。开启混合功能之后我们可以通过glBlendFunc(GLenum srcFactor, GLenum destFactor)来进行组合,组合因子有如下可以设置的值:GL_ZEROG
2013-08-26 20:34:14 792
原创 c++使用#include 来加载常量
有时候我们想加载某个头文件作为一个文本输入,通常我们会考虑使用文件的读操作来完成,但如果我们想更加简单,缩短我们的代码,可以按照如下写法来编写const char *s = #include "你的头文件"#ifndef XXXX#define XXXX"this is const value"from header";#endif同理,我们也可以给其他常量赋值,例如in
2013-08-23 11:16:59 684
原创 OpenGL使用裁剪平面
不多说了 ,直接上我的源码和测试结果:1.不适用裁剪平面// VAO.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include #pragma comment(lib, "glut32.lib")#pragma comment(lib, "glew32.l
2013-08-21 20:46:04 1204
转载 cocos简单的3d渲染
文/Cocos2d-X社区版主dr_watson内容重点: Hello World 3D, 简单的3D 渲染 + MD2 模型English version 地址点这里 cocos2d-x 是一个2D 遊戏引擎, 当然主要是拿来写2D遊戏, 但有时候我们会想加些简单的3D 物件做效果或一些特殊的用途, 那该怎麽办呢?OpenGL ES 2.0 开始, 一切的渲染操作
2013-08-19 19:50:29 1356
转载 顶点数组对象 VAO(Vertex Array Object)
一 OpenGL抛弃glEnable(),glColor(),glVertex(),glEnable()这一套流程的函数和管线以后,就需要一种新的方法来传递数据到Graphics Card来渲染几何体,我们可以用VBO, 在3+版本我们可以使用Vertex Array Object-VAO,VAO是一个对象,其中包含一个或者更多的Vertex Buffer Objects
2013-08-19 19:37:10 4490
原创 opengl中VBO的使用演示
如下是我做的一个示例代码,具体的就不说了,程序运行需要glew和glut库,找不到这两个库的朋友可以跟我联系。#include #include #include #include #define VERTEX 0#define INDICES 1#define COLOR 2#define NUM_BUFFERS 3#define TIMER1 100#define
2013-08-19 11:05:26 2069
转载 VBO的详解
有时候你不得不承认,OPENGL的开发真的不如DIRECTX,特别对于入门的人来说,一个简单的概念可以让我嚼上几天不得骑姐。VBO可以说是OPENGL中里程碑似的东西,通过VBO我们可以把需要渲染的图元的顶点信息,直接上传存储在GPU的显存中。由于最早的OPENGL不支持实例化绘制,导致在绘制大量相似图元的时候,需要反复向GPU提交代码渲染,这点在OpenGL中的二次方图元和实例化绘制已经
2013-08-19 09:23:37 8849
转载 VAO(vertex array object)和VBO(vertex buffer object)的详解
我想大家都已经熟悉VBO了吧。在GL3.0时代的VBO大体还是处于最重要的地位,但是与此同时也出现了不少新的用法和辅助役,其中一个就是VAO。本文大致小记一下这两者的联系,帮助大家理解一下这个角色。——ZwqXin.comVBO?See[学一学,VBO]本文来源于 ZwqXin (http://www.zwqxin.com/), 转载请注明 原文地址:http:/
2013-08-19 08:21:10 3348
原创 关于CCTexure2D使用opengl实现绘制的原理分析
CCNode中在指定的位置中绘制图元的如下示例代码:cocos2D-x中CCNode的画图函数void CCTexture2D::drawAtPoint(const CCPoint& point) { GLfloat coordinates[] = { 0.0f, m_fMaxT, m_fMaxS,m_fMaxT, 0.0f, 0.0f, m_fMaxS,0.0
2013-08-18 19:55:00 940
转载 cocos节点绘制的原理
cocos的节点类CCNode中有如下接口visit()和draw(),其中visit()是外部用来调用绘制显示的,而draw()是用来实现具体绘制过程的。下面我们来分析CCNode的绘制过程,这里我们使用两个方面的例子来说明:1.通过场景的绘制来分析。2.通过CCRenderTexture的绘制来分析。1.CCScene
2013-08-17 21:35:39 1263
原创 CCLabelTTF和CCLabelAtlas的显示区别
CCLabelTTF和CCLabelAtlas的区别如下:1.CCLabelAtlas是从CCAtlasNode和CCLabelProtocal派生,而CCAtlasNode又是从CCNodeRGBA和CCTextureProtocal 派生。而CCLabelTTF是直接从CCSprite和CCLabelProtocal派生。2.CCLabelTTF是将要显示的字符串生成一张位图,
2013-08-11 20:57:08 865
原创 cocos2dx 锚点
cocos2dx中经常会用到节点的旋转,一旦涉及到物体的旋转则会涉及到旋转所相对的中心点的位置,对于CCNode而言,其提供了设置锚点的接口,用来设置锚点的相对位置。见CCNode源代码中CCNode.cpp/// anchorPoint getterconst CCPoint& CCNode::getAnchorPoint(){ return m_obAnchorPoint;
2013-08-09 10:47:04 2375
转载 Vs2012无身份验证的远程调试功能改进
不知道大家有没有遇到过这种情况,刚开发完的程序,明明在本机能够好好的运行,可是部署到服务器过分发给用户时,总是出现莫名其妙的错误。一时半会又看不出问题来,怎么办呢?难道只能在服务器或是客户电脑上装一个vs、跟一下代码吗?其实不用的,vs有一个远程调试的功能。这个功能是这样的,程序在其他的电脑上运行,但是我们可以在本地电脑上进行断点跟踪。下面以vs2012为例,为大家
2013-08-09 10:30:06 1835
原创 cocos RGBA的样式层叠
对于CoCos中的节点默认是会相互覆盖的,但是有时我们也会用到层叠颜色和透明度的时候,这个时候我们就需要借助CCRGBAProtocol中提供的接口来进行实现,可以看出CCSPrite和CCLayer均实现了这个接口,这里我觉得需要大家在开发中注意的问题是该属性是需要递归设置才能体现其价值的。这里我们来看一段CCRGBAProtocal的源代码: /** * whet
2013-08-08 21:24:27 2486
android自动短信发送源码
2013-04-26
独立的键盘钩子,用来hook键盘的一个小程序,很值得看看
2009-12-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人