自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

手机游戏开发学习笔记

图形学,cocos2d-x,unity,unreal.....

  • 博客(18)
  • 资源 (8)
  • 收藏
  • 关注

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(20)----模型,网格和材质

openGL在cocos2d-x中的应用点,调用的api基本已经介绍的差不多了,这一篇介绍一些3d游戏中的概念,它们也和底层有一些关系,也是游戏中常用的一些封装。       当我们要在屏幕上绘制简单的图形时,我们直接计算点的坐标就可以,但是游戏世界中经常有些复杂的模型,例如房子汽车等,这些模型一般是用建模工具制作出来,并且导出数据到指定文件中,然后我们游戏中在读取文件把模型渲染出来,一般比较有名

2016-06-15 16:58:05 8910 2

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(19)----旋转表示法

从数学上表示旋转,可以有三种表示方法:矩阵法,欧拉角法和四元数法,我们之前已经介绍了矩阵法,它有个问题,就是容易造成万向节死锁,所谓万向节死锁,就是当绕一个轴旋转到90度的时候,再绕另外两个轴旋转的结果都是一样的,也就是说少了一个自由度,另外矩阵法其中有无用的数据,造成内存的浪费。       欧拉角法是由欧拉在十八世纪提出,它由三个角表示:俯仰角,yaw偏航角,roll滚转角。struct Eu

2016-06-15 15:11:28 5889

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(18)----实例化

cocos2d-x中的batchNode的方式可以提高相同的纹理的渲染效率,但是它使用的绘制方式还是glDrawElements的方式,它只是把相同的纹理的绘制命令只提交一次,剩下的重复绘制都调用glDrawElements即可,当绘制中的一些参数变化时,使用glMapBuffer获得数据的指针,然后修改数据,代码如下:glBufferData(GL_ARRAY_BUFFER, sizeof(_q

2016-06-15 14:02:36 6243

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(17)----发光体

cocos引擎支持四种发光体:环境光,方向光,点光源和聚光灯,上一篇已经介绍了基本光照模型,其中也介绍了环境光的算法,下面就介绍另外三种光源。       当一个光源很远的时候,来自光源的每条光线接近于平行,这看起来像是来自于同一个方向,比如太阳由于离我们无限远,所以太阳光被定义为平行光,因为所有的光线都是平行的,对场景中每个物体的光都保持一致,光照计算会和场景中的其他物体相似。       点光

2016-06-14 18:57:46 4055

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(16)----基本光照

cocos引擎目前已经支持3d功能,之前在3d教程中介绍了cocos2d-x的3d功能中的光照,但是只是粗略的介绍了四种光源,因为光照的重要性和复杂性,这个系列文章会分两篇介绍光照,本篇介绍光照的基础-ADS模型,下一篇详细介绍几种光源。       ADS模型是光照的基本模型,包括Ambient(环境光),Diffuse(漫反射)和Specular(点光源)三种光照在物体上的效果是这样的:   

2016-06-14 11:28:01 5774 1

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(15)----帧缓冲

cocos2d-x中提供一个叫RenderTexture的类,它可以保存屏幕到一张图片,也可以在begin到end之间实现自己的绘制,俨然就是一个独立于屏幕的画布(关于RenderTexture的介绍文章地址:http://blog.csdn.net/bill_man/article/details/7250911),这个类其实使用了openGL的帧缓冲技术,在调用任何openGL命令之前,首先需

2016-06-13 11:37:12 6886

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(14)----深度测试

深度测试类似于颜色缓冲(颜色缓冲存储片元颜色),深度缓冲是由窗口系统自动创建的,它储存着16、24或32位的浮点数的深度值。在大多数系统中,是24位的。     当深度测试开启时,openGL会用每个片元的深度值和深度缓冲的值对比,执行一次深度测试,如果测试通过,深度缓冲就会用深度值更新,如果深度测试失败,则片元就被抛弃。深度测试是在像素着色器运行后,模板测试完成后,在屏幕空间中完成的。屏幕空间坐

2016-06-13 10:29:12 6039 1

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(13)----模板测试

像素着色器调用完成后。模板测试就开始了,它可以丢弃片元,模板缓冲在渲染时获得有意思的效果。     模板缓冲中一个模板值有8位大小,每个窗口都会创建一个默认的模板缓冲,它可以通过数据控制屏幕显示,从而形成了显示裁剪的效果,如图所示。

2016-06-12 10:54:03 5343

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(12)----立方体贴图和天空盒

本篇介绍3d游戏中的天空盒概念,天空盒就是游戏中的背景,它是一个包裹整个场景的立方体,它由六个图像构成一个环绕的环境,给玩家一种所在场景比实际上大得多的感觉,如下图所示。       创建天空盒的方法和创建其他节点一样调用create函数,那我们看看create函数里到底做了什么?bool Skybox::init(const std::string& positive_x, const std:

2016-06-11 16:51:29 9314

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(11)----摄像机

本篇文章介绍一个在游戏中的重要概念,在MVP矩阵中,视图矩阵和投影矩阵都和摄像机有关,说句白话,摄像机其实就是生成投影矩阵和视图矩阵的方式和原因,cocos2d-x中使用GamePlay3D类的Mat4类生成各种矩阵,一下就通过分析摄像机Camera类的代码来看这些矩阵是如何生成的。       首先来看正交矩阵的初始化代码:bool Camera::initOrthographic(float

2016-06-11 11:30:19 6551 3

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(10)----MVP矩阵

上一篇介绍了openGL的变换和坐标系,本篇就介绍游戏引擎中一个重要的概念-MVP矩阵,首先涉及到透视投影和正交投影的概念,关于这个概念请参考之前的文章(文章地址:http://blog.csdn.net/bill_man/article/details/48199593),其中介绍了透视投影和正交投影的概念。       上一篇文章介绍了MVP矩阵的概念,但是并没有在代码上涉及。       

2016-06-10 12:35:39 10437

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(9)----变换和坐标系统

本篇会介绍openGL中的变换和坐标系统,由于篇幅的问题,本篇文章不会把重点的笔墨放在数学基础,如果对数学概念有疑问的读者可以翻一下大学的线性代数教材。       首先是向量的概念,向量是既有大小又有方向的量,他可以用带箭头的线段形象的表示,在openGL中,向量在计算光照上有非常大的作用,这点后面的文章会详细介绍。需要注意的是,在openGL中我们提到的向量常常是标准化向量,那什么是标准化向量

2016-06-09 11:03:42 7874

原创 《游戏引擎架构》读书笔记-游戏引擎中的C++

《游戏引擎架构》在两年前就买了,而且自己也大体的看过一遍,因为自己想学习引擎的底层知识,所以重新又找出了这本书再读一遍,并把根据自己的理解写一些读书笔记在这里与大家交流。       闲话少续,开始本篇的内容,这本书的第一部分是基础篇,第一章概述了一些引擎概念,第二章讲解了一些工具的用法(Visual Studio等),第三章介绍了C++,和一般的C++书不一样的是,本书讲解的C++应该更多的是引

2016-06-09 09:38:18 3874 1

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(8)----纹理

纹理(Texture)就是图片,它用来给物体增加细节,cocos2d-x中使用Texture2D类处理2D纹理贴图,本篇就从cocos2d-x中的Texture2D类介绍openGL纹理。       首先介绍纹理坐标的概念,2D纹理是一个图像数据的二维数组。用2D纹理渲染时,纹理坐标用作纹理图像中的索引。一般来说,在3D内容创作程序中将制作一个网格,每个顶点都有一个纹理坐标。2D纹理的纹理坐标是

2016-06-08 12:09:30 9278 3

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(7)----GLSL

上一篇博客介绍了cocos2d-x中的着色器类相关的结构,以及着色器的一些原理,这一篇将介绍着色器语言。

2016-06-07 11:54:04 9817

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(6)---cocos内置着色器

上一篇我们介绍了cocos2d-x绘制基本图形的基本流程,我们还留下了一个着色器的部分没有讲,本篇内容将从openGL的渲染流程讲起,介绍cocos2d-x中的着色器,openGL的渲染流程如图所示:              openGL的绘制通常就是将顶点数据传输到openGL服务端。我们可以将一个顶点视为一个需要统一处理的数据包,这个包中的数据可以是我们需要的任何数据,通常其中几乎始终会包含

2016-06-02 18:22:37 8865

原创 unity学习笔记(1)-hello unity

unity3d是目前使用最广泛的3d游戏引擎之一,本系列教程将使用unity制作一款坦克大战游戏,从而带大家体验一下unity的使用。        这一篇教程主要介绍引擎的安装和环境的搭建,最后,我们会在手机上运行起来unity的第一个程序。        首先在unity的官方网站上下载unity的最新引擎,目前最新的版本是5.3.4,下载地址:http://unity3d.com/cn/ge

2016-06-01 14:49:34 3266 1

原创 cocos2D-X源码分析之从cocos2D-X学习OpenGL(5)---绘制基本图形

最近完整的学习了learnopengl(http://www.learnopengl.com/),觉得非常有启发,从而又想起了这个长草许久的专题,正好趁这段时间,从本篇起完成这个专题,需要说明的是,从本系列的第五篇起将使用cocos2d-x3.10版本对应的代码,最早的三篇采用的是相对比较老的代码,但是我重新阅读后发现对理解有没有什么影响,所以暂时我不会升级之前的代码,但是为了保持和最新代码的一致

2016-06-01 14:35:59 4752 3

cocos2d-x游戏实例 萝莉快跑

cocos2d-x游戏实例实例"萝莉快跑" 使用cocos2d-x 2.0.1,横版跑酷游戏

2013-04-10

cocos2d-x游戏实例 瞄汪战争

cocos2d-x游戏实例实例"瞄汪战争" 使用cocos2d-x 2.0.1,纵版射击游戏

2013-04-09

正确版本 cocos2d-x的A星算法代码(基于2.0.1)

正确版本 cocos2d-x的A星算法代码(基于2.0.1),之前传的有问题

2013-03-19

cocos2d-x的A星算法代码(基于2.0.1)

cocos2d-x的A星算法代码(基于2.0.1)

2013-03-18

Cocos2d-x2.1版本ChipmunkTest修改

Cocos2d-x2.1版本ChipmunkTest修改 详情请看我的博客http://blog.csdn.net/bill_man,为了配合文章上传

2013-01-20

cocos2d-x游戏实例-简易动作游戏

cocos2d-x游戏实例-简易动作游戏,详见我的csdn博客http://blog.csdn.net/bill_man

2012-04-22

cocos2d-x简易动作游戏源码

cocos2d-x简易动作游戏源代码,讲解请关注我的博客 博客地址:http://blog.csdn.net/bill_man

2012-04-22

cocos2d-x游戏实例-纵版射击游戏

cocos2d-x游戏实例-纵版射击游戏 详见我的csdn博客http://blog.csdn.net/bill_man

2012-04-02

空空如也

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

TA关注的人

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