自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蚂蚁的坚持

生命不息、学习不止

  • 博客(126)
  • 收藏
  • 关注

原创 将旧项目基于cocos2dx 2.x的调试绘制转移到cocos2dx 3.x中

1、首先必须修改原先在draw函数中绘制渲染的方式。3.x不是直接调用draw函数进行绘制的,而是通过renderCommand进行延时渲染。老项目的渲染方式-draw函数中调用#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) glLin

2016-02-16 10:53:53 640

转载 Cocos2d-x 多分辨率适配完全解析

从Cocos2d-x 2.0.4开始,Cocos2d-x提出了自己的多分辨率支持方案,废弃了之前的retina相关设置接口,提出了design resolution概念。有以下相关接口:CCEGLView::sharedOpenGLView()->setDesignResolutionSize() //设计分辨率大小及模式 CCDirector::sharedDirector()->s

2016-01-07 10:51:58 615

转载 std::list主要函数

list是一个双向链表,因此它的函数也都要从链表的角度来进行理解。 迭代器返回迭代器,和listbegin()end()返回反向迭代器,和listrbegin()rend() 返回第一个、最后一个元素front()back() 插入数据向链表头、尾插入元素push_fro

2015-10-23 19:35:34 948

转载 C++中rand()函数的用法

一、C++中不能使用random()函数     random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过。但在C语言中int random(num)可以这样使用,它返回的是0至num-1的一个随机数。 可改用C++下的rand函数来实现。     1、C++标准函数库提供一随机数生成器rand,返回0-RAND_MAX之间均匀分布的伪随机整数。 RAND_MAX

2015-10-23 19:34:38 3192

转载 vector中erase用法注意事项

以前就发现了vector中的erase方法有些诡异(^_^),稍不注意,就会出错。今天又一次遇到了,就索性总结一下,尤其是在循环体中用erase时,由于vector.begin() 和vector.end()是变化的,因此就引入了错误的可能性。erase的函数原型有两种形式:iterator erase(iterator position);iterator erase(i

2015-10-23 18:04:15 544

转载 cocos2dx socket 通信

本文由qinning199原创,转载请注明:http://www.cocos2dx.net/?p=167最近做一个联网实时交互的游戏,游戏中需要使用socket保持长连接,来保证客户端与服务器端进行实时交互。以下贴出自己的一些代码:因为socket通信部分需要使用多线程,整个流程如下:1、首先起一个线程,来进行socket通信的连接[cp

2015-09-17 09:39:47 624

转载 std::function与std::bind 函数指针

function模板类和bind模板函数,使用它们可以实现类似函数指针的功能,但却却比函数指针更加灵活,特别是函数指向类 的非静态成员函数时。std::function可以绑定到全局函数/类静态成员函数(类静态成员函数与全局函数没有区别),如果要绑定到类的非静态成员函数,则需要使用std::bind。[cpp] view plaincopy

2015-09-15 16:16:39 671

转载 C++回顾之static与单例模式

单例模式是应用最多的一种设计模式,它要求每个类有且只能有一个实例对象,所以用C++设计一个单例模式的方法如下:        1 构造函数声明为私有;   这样就保证了不能随意构造一个对象        2 将拷贝构造函数与等号运算符声明为私有,并不提供他们的实现; 即禁止对象被拷贝。        3 在类中声明一个静态的全局访问接口;        4 声明一个

2015-09-15 14:23:37 1284 2

转载 OpenGL ES2.0教程:编写自己的shader

编写你的第一个Vertex Shader编写你的第一个Fragment ShaderVAO和VBO初探顶点数据是怎么传递的重用VAO参考资料在上篇文章中,我给大家介绍了如何在cocos2d-x里面绘制一个三角形,当时我们使用的是cocos2d-x引擎自带的shader和一些辅助函数。在本文中,我将演示一下如何编写自己的shader,同时,我们还会介绍VBO(顶点

2015-08-30 23:12:34 2486

转载 使用批次优化渲染

[使用批次优化渲染]  用10000次glDrawElement绘制1个三角形,其速度远小于用1次glDrawElement绘制10000个三角形。所以尽量把能够同时绘制的顶点都通过一个glDrawElement等函数来绘制可以大大提高渲染效率。  使用批次渲染技术有几个要点,可以同时渲染的顶点有几下几个要求:  1. Primitive须相同,glDrawElements第1个参数为

2015-08-28 16:16:07 851

原创 package.path和package.cpath

如果是一个 *.LUA 的文件, 里面用到了自己写的库, 或者第三方写的库, 但是你不想把它放到 lua 的安装目录里, 则在代码里面可以指定require搜索的路径。    package.path = '/usr/local/share/lua/5.1/?.lua;/home/resty/?.lua;'    --搜索lua模块    package.cpath = '

2015-08-25 02:26:24 7627

转载 深入浅出 RPC-(2)

《深入篇》我们主要围绕 RPC 的功能目标和实现考量去展开,一个基本的 RPC 框架应该提供什么功能,满足什么要求以及如何去实现它?RPC 功能目标RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用,在前文《浅出篇》中给出了一种实现结构,基

2015-08-19 17:23:29 389

转载 深入浅出 RPC-(1)

近几年的项目中,服务化和微服务化渐渐成为中大型分布式系统架构的主流方式,而 RPC 在其中扮演着关键的作用。在平时的日常开发中我们都在隐式或显式的使用 RPC,一些刚入行的程序员会感觉 RPC 比较神秘,而一些有多年使用 RPC 经验的程序员虽然使用经验丰富,但有些对其原理也不甚了了。缺乏对原理层面的理解,往往也会造成开发中的一些误用。本文分上下两篇《浅出篇》和《深入篇》,其目标就是想尝试

2015-08-19 17:22:38 372

转载 大端模式和小端模式

在 各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机 通信领 域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正 确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:Big-Endian和Little-Endian,下面先从字节序说起。一、什

2015-08-19 15:25:03 426

转载 深入理解IP地址等

Internet网络中,每个上网的计算机都有一个像上述例子的地址,这个地址就是IP地址,是分配给网络设备的门牌号,为了网络中的计算机能够互相访问,IP地址=网络地址+主机地址,例如:IP地址是192.168.100.1,这个地址中包含了很多含义.如下所示:网络地址(相当于街道地址): 192.168.100.0主机地址(相当于各户的门号): 0.0.0.1IP地址(相当于住户地址):

2015-08-17 21:32:04 621

原创 Lua-UserData(用户自定义类型)

UserData(用户自定义类型)意义:使用C语言编写的用于扩展Lua的新类型,方便使用脚本编写或者提高效率userdata:提供了一块原始的内存区域,用于存储任何东西,在Lua中userdata没有任何预定义操作生成:void *lua_newuserdata(L,size) 根据指定大小分配一块内存,并将userdata压入栈中,最后返回这个内存块的地址

2015-08-11 11:18:53 18846

原创 从Lua调用C

从Lua调用C:方式:C函数从栈中获取函数参数(第一个参数总是局部栈的索引1),将结果压入栈中,C函数需要返回结果数量。每个函数都有自己的局部私有栈例子:static int l_sin(lua_State *L){ double d = lua_tonumber(L,1); //获取参数,索引为1(私有栈) lua_pushnumber(L,sin(d)); //压入结果

2015-08-11 11:06:35 849

原创 从C调用Lua

LUA_C_API如何使用CAPI存取操作Lua中的值,一组能使C与Lua交互的函数Lua_C数据交互使用一个虚拟栈:luaStateLua和C的差异:1、Lua使用垃圾回收,C使用显式的内存释放 2、Lua使用动态类型,C使用静态类型lua头文件介绍:lua.h定义了lua提供的基础函数,包括创建Lua环境(LuaState),调用Lua函数(lua_

2015-08-07 16:13:53 895

转载 在VS中测试Lua项目

(1)下载,安装LuaForWindows_v5.1.4-40.exe(2)安装完成后:开始-运行-cmd回车,输入lua,成功安装时会显示Lua的版本等信息。本人的是:Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio(3)VS2005下新建一个win32控制台应用程序的空项目。新建一个main.cpp文件输入

2015-08-07 14:43:49 2441 1

转载 【Lua、LuaJIT、tolua++、lua for windows】这几个到底有什么关系?!

本人初学lua,才智一般,被这些东西搞得晕头转向。官网分别是:lua: http://www.lua.org/tolua++: http://www.codenix.com/~tolua/#newsluajit: http://luajit.org/luajit.htmllua for windows: http://luaforge.net/project

2015-08-07 11:38:17 1081

原创 Lua元表和元方法

Lua元表和元方法元表的作用:当使用到新表没有的属性或者函数,可以在元表中查找,类似继承元表的设置:在Lua中新建table的时候不会创建元表。元表需要使用setmetatable(t)才能设置,在Lua中只能设置table类型的元表元方法:预定义一些元方法,可以在新表数据进行算数运算和关系运算的时候能查找到对应处理的函数一些预定义元方法的指定:mt._

2015-08-06 16:45:14 524

原创 Unity3D - 关于Static静态对象

在官方文档中的描述:许多的优化需要知道一个对象可以移动的游戏中。关于静态信息(IE,非移动)对象往往可以预先计算在知识的编辑器,它将不受物体的位置变化无效。例如,渲染可以通过组合几个静态对象到一个单一的,大的对象被称为一个批处理。一个游戏对象检查员在最右一个静态的复选框和菜单,这是用来在统一中,物体不会移动各种不同系统的通知。对象可以被标记为静态的这些系统中的每一个单独的,所以你可

2015-08-03 11:16:49 12831 1

转载 Unity5灯光烘焙与Unity4 灯光烘焙实际应用中的差别

Unity5终于正式发布了,我们也赶紧尝试着把现在的项目升级到Unity5.0,升级的过程遇到了不少问题,估计也是大家将来会遇到的,分享出来供大家参考。有不足的地方欢迎大家补充。一、先说说Unity4 烘焙面板里常用的参数Quality 烘焙质量一般会选择高Bounces 反弹  这个值一般选1,如果选2,烘焙的时间会增长50%左右,所以设置这个值要谨慎。S

2015-08-03 10:15:28 1752

转载 Unity3D深入浅出 - 导航网格自动寻路(Navigation Mesh)

NavMesh(导航网格)是3D游戏世界中用于实现动态物体自动寻路的一种技术,将游戏中复杂的结构组织关系简化为带有一定信息的网格,在这些网格的基础上通过一系列的计算来实现自动寻路。。导航时,只需要给导航物体挂载导航组建,导航物体便会自行根据目标点来寻找最直接的路线,并沿着该线路到达目标点。下面通过一个简单的Sample来介绍NavMesh的应用:1.在Scene中新建三个Cube,如下图摆

2015-07-31 15:24:24 7956

转载 cocos2d-x中有一个JniHelper类详细使用

主体思路通过JNI获取java虚拟机,再获取当前程序的JNI环境,通过JNI环境获取需要调用的java类信息,再获取需要调用的java类中的函数信息。再通过JNI环境调用,使用类信息、函数信息,调用对应的java函数。看起来好像有点复杂,but不用担心,cocos2d-x中有一个JniHelper类(头文件的copyright为:cocos2d-x.org,是Google提供的还是co

2015-07-24 17:16:18 341

转载 概要:Unity Cg 编程(关于顶点与片段着色器)

本文永久地址:http://www.omuying.com/article/83.aspx,【文章转载请注明出处!】原文链接:http://en.wikibooks.org/wiki/Cg_Programming/Unity在 Unity 游戏引擎中编写 Cg 程序要比在 OpenGL 或 Direct3D 应用中编写 Cg 程序容易,因为导入的网格和图像(即纹理)有图形用户界面支

2015-07-23 14:37:29 1241

转载 OpenGL中的混合测试

Blend 混合是将源色和目标色以某种方式混合生成特效的技术。混合常用来绘制透明或半透明的物体。在混合中起关键作用的α值实际上是将源色和目标色按给定比率进行混合,以达到不同程度的透明。α值为0则完全透明,α值为1则完全不透明。混合操作只能在RGBA模式下进行,颜色索引模式下无法指定α值。物体的绘制顺序会影响到OpenGL的混合处理。 glEnable( GL_BLEND );   //

2015-07-22 17:34:18 909

转载 openGL 深度测试

openGL里常出现深度测试,一直不清楚。今天就来弄清楚。  (1)什么是深度?        深度其实就是该象素点在3d世界中距离摄象机的距离(绘制坐标),深度缓存中存储着每个象素点(绘制在屏幕上的)的深度值!   深度值(Z值)越大,则离摄像机越远。   深度值是存贮在深度缓存里面的,我们用深度缓存的位数来衡量深度缓存的精度。深度缓存位数越高,则精确度越高,目前

2015-07-22 17:12:15 461

转载 OpenGL片断测试

大家好。现在因为参加工作的关系,又是长时间没有更新。趁着国庆的空闲,总算是又写出了一课。我感觉入门的知识已经快要介绍完毕,这课之后再有一课,就可以告一段落了。以后我可能会写一些自己在这方面的体会,做一份进阶课程。现在即将放出的是第十二课的内容。首先还是以前课程的连接:第一课,编写第一个OpenGL程序第二课,绘制几何图形第三课,绘制几何图形的一些细节问题第四课,

2015-07-22 16:53:39 434

转载 OpenGL 纹理本质

几个月前调试3D纹理时发现一个有趣的问题:同样的3D HW lib库在android2.2系统上可以正常工作,但在2.3系统上却不能工作,显示的图像白屏,调试了几天才将问题定位并解决,解决方法很简单:1、修改GLExtensions.h头文件对于变量mHaveDirectTexture赋值使其值为TRUE2、使用mFailoverTexture作为当前纹理绘图下面详细介绍O

2015-07-22 11:53:54 544

转载 全屏反锯齿 - 多重采样Ⅰ

图形绘制的时候总能看见那些不美观的锯齿。尤其是边缘锯齿给用户带来的突兀感,给了计算机图形学几乎一个属于“领域”的研究——反锯齿。视觉上的美观优化,以及改进后的运行效率,两手都要硬。——ZwqXin.com本文来源于 ZwqXin (http://www.zwqxin.com/), 转载请注明      原文地址:http://www.zwqxin.com/archives/open

2015-07-22 11:49:51 1971

转载 OpenGL中的多重采样

抗锯齿处理的最大优点之一就是它能够使多边形的边缘更为平滑,使渲染效果显得更为逼真和自然。点和直线的抗锯齿处理是得到广泛支持的,但遗憾的是,对多边形的平滑处理并没有在所有平台上都得到实现。并且,即使在可以使用GL_POLYGON_SMOOTH的时候,对整个场景进行抗锯齿处理也没有想象中的那么方便。这是因为,抗锯齿处理是基于混合操作的,这就需要从前到后对所有的图元进行排序,这是十分麻烦的。

2015-07-22 11:48:08 3656

转载 OpenGL ES 2.0渲染管线

http://codingnow.cn/opengles/1504.htmlOpengl es 2.0实现了可编程的图形管线,比起1.x的固定管线要复杂和灵活很多,由两部分规范组成:Opengl es 2.0 API规范和Opengl es着色语言规范。下图是Opengl es 2.0渲染管线,阴影部分是opengl es 2.0的可编程阶段。 1. 顶点着色器

2015-07-21 11:47:18 421

原创 可编程图形渲染管线

着色程序分为两类:vertex shader program(顶点着色程序)和fragment shader program(片断着色程序)。为了清楚的解释顶点着色和片断着色的含义,我们首先从阐述GPU上的两个组件:Programmable Vertex Processor(可编程顶点处理器,又称为顶点着色器)和 Programmable Fragment Processor(可编程片断处理器,又

2015-07-20 16:59:14 5604

原创 Unity3D表面着色器(Surface Shader)资料整合

一、Shader 表面着色器语法Unity 的表面着色器 (Surface Shader) 是一种代码生成方法,用它来编写光照着色器比用低级的顶点/像素着色器程序容易得多二、编写一个灰度效果的Shader三、Shader 内置 Shader 之 Normal-Diffuse Normal-Diffuse 是一个简单的光照模型,光照强度随着物体表面和光入射角夹角的减小

2015-07-17 15:46:22 1190

原创 在Unity中使用Shader

1、Material 和 Shader 的关系,一个材质包含一个Shader程序,在Shader中设置的属性可以通过Material可视化设置2、内建Shader,在5.0之后的版本中大部分旧的Shader都集成在了Standard Shader中了,可以通过设置Standard Shader的属性达到不同的需要的渲染效果。 Albedo:反光率Specular:镜面反射

2015-07-17 11:37:32 5278

转载 Unity3d 着色器语法(Shader)

本文永久地址:http://www.omuying.com/article/27.aspx,【文章转载请注明出处!】Shader "name" { [Properties] Subshaders [Fallback] } 定义了一个着色器。着色器拥有一个 Properties 的列表。着色器包含一个子着色器的列表(SubShaders)。并且至少包含一个(SubShader)。当加载一个着

2015-07-17 11:29:34 3866

转载 对于法线贴图(Normal Map) 的深入研究

前几篇文章写过有关法线贴图的内容,这次文章将讨论其原理及相关优化。回过头来看一下原来的文章真有种想删掉的感觉。。。为什么叫法线贴图,我们知道法线(Normal)是垂直于一个面的直线,通过计算光线与这条法线的角度就可以知道与面的角度,进而可以计算出面应得到的颜色值。如果我们知道物体每个面的法线就能实现对这个物体进行光照渲染。但是一堵墙也许只有四个顶点,也就是只有一个面,它最终的渲染效果将会非

2015-07-17 11:01:05 4673

转载 OpenGL模板缓冲区与模板测试

原文地址:http://www.blogjava.net/qileilove/archive/2014/01/23/409269.html帧缓冲区有许多缓冲区构成,这些缓冲区大致分为:    颜色缓冲区:用于绘图的缓冲区,它包含了颜色索引或者RGBA颜色数据。     深度缓冲区:存储每个像素的深度值,当启动深度测试时,片段像素深度值和深度缓冲区深度值进行比较,决定片段哪些像素点数据可

2015-07-10 16:01:31 360

转载 如何用js得到当前页面的url信息方法(JS获取当前网址信息)

设置或获取对象指定的文件名或路径。alert(window.location.pathname) 设置或获取整个 URL 为字符串。 alert(window.location.href);设置或获取与 URL 关联的端口号码。alert(window.location.port) 设置或获取 URL 的协议部分。alert(wi

2015-07-03 15:09:05 380

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除