关闭

Android平台下Cocos2d-x等含有so库应用性能分析-Gprof(android-ndk-profiler)

前几天在工作中,解决了一个cpu占用率高的问题,尝试过各种方法,因为刚接手项目代码不熟,所以准备依赖于工具解决,虽然最终android-ndk-profiler依然没有解决我的问题,但是我觉得这仍旧是一个比较好的工具,所以准备分享给大家,网上的使用方法不是很全面,在使用过程中依旧遇到了些问题,我在这里做些总结。     Android 本来就是基于 Linux 的,所以这里用 gprof...
阅读(287) 评论(0)

基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之LayerColor(8)

在前面文章中讲述了Cocos2d-x引擎OpenGL渲染准备Shader方面,本文主要讲解使用LayerColor来讲述OpenGL的渲染过程。 1、LayerColor对象创建 添加LayerColor元素到游戏中: auto layerColor = LayerColor::create(Color4B(255, 0, 0, 255), 100, 100); layerC...
阅读(115) 评论(0)

基于Cocos2d-x学习OpenGL ES 2.0系列——纹理贴图(6)

在上一篇文章中,我们介绍了如何绘制一个立方体,里面涉及的知识点有VBO(Vertex Buffer Object)、IBO(Index Buffer Object)和MVP(Modile-View-Projection)变换。 本文将在基于Cocos2d-x学习OpenGL ES 2.0系列——使用VBO索引(4)的基础之上,添加纹理贴图支持。最后,本文会把纹理贴图扩展至3D立方体上面。...
阅读(167) 评论(0)

基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之Shader准备(7)

Cocos2d-x底层图形绘制是使用OpenGL ES协议的。OpenGL ES是什么呢?   OpenGL ES(OpenGl for Embedded System)是OpenGL三维图形API的子集,针对手机、Pad和游戏主机等嵌入式设备而设计。该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。OpenGL ES是O...
阅读(95) 评论(0)

基于Cocos2d-x学习OpenGL ES 2.0系列——你的第一个立方体(5)

在上篇文章中,我们介绍了VBO索引的使用,使用VBO索引可以有效地减少顶点个数,优化内存,提高程序效率。 本教程将带领大家一起走进3D--绘制一个立方体。其实画立方体本质上和画三角形没什么区别,所有的模型最终都要转换为三角形。 同时,本文还会介绍如何通过修改MVP矩阵来让此立方体不停地旋转。另外,大家还可以动手去修改本教程的示例代码,借此我们可以更加深入地理解OpenGL的normal...
阅读(127) 评论(0)

基于Cocos2d-x学习OpenGL ES 2.0系列——使用VBO索引(4)

在上一篇文章中,我们介绍了uniform和模型-视图-投影变换,相信大家对于OpenGL ES 2.0应该有一点感觉了。在这篇文章中,我们不再画三角形了,改为画四边形。下篇教程,我们就可以画立方体了,到时候就是真3D了。  为什么三角形在OpenGL教程里面这么受欢迎呢?因为在OpenGL的世界里面,所有的几何体都可以用三角形组合出来。我们的四边形也一样,它可以用两个三角形组合出来。 ...
阅读(132) 评论(0)

基于Cocos2d-x学习OpenGL ES 2.0系列——初识MVP(3)

在上一篇文章中,我在介绍vertex shader的时候挖了一个坑:CC_MVPMatrix。它其实是一个uniform,每一个Cocos2d-x预定义的shader都包含有这个uniform,但是如果你在shader里面不使用这个变量的话,OpenGL底层会把它优化掉。  但是,CC_MVPMatrix是在什么时候设置进来的呢?我在shader里面明明没有看到它,它从哪儿来的?别急,请继续...
阅读(180) 评论(0)

基于Cocos2d-x学习OpenGL ES 2.0系列——编写自己的shader(2)

在上篇文章中,我给大家介绍了如何在Cocos2d-x里面绘制一个三角形,当时我们使用的是Cocos2d-x引擎自带的shader和一些辅助函数。在本文中,我将演示一下如何编写自己的shader,同时,我们还会介绍VBO(顶点缓冲区对象)和VAO(顶点数组对象)的基本用法。 在编写自己的shader之前,我觉得有必要提一下OpenGL渲染管线。 理解OpenGL渲染管线,对于学习Open...
阅读(171) 评论(0)

基于Cocos2d-x学习OpenGL ES 2.0系列——你的第一个三角形(1)

前言   在本系列教程中,我会以当下最流行的2D引擎Cocos2d-x为基础,介绍OpenGL ES 2.0的一些基本用法。本系列教程的宗旨是OpenGL扫盲,让大家在使用Cocos2d-x过程中,知其然,更知其所以然。本系列教程不会涉及非常底层的数学原理,同时也不会过多地提及OpenGL本身的一些细节知识。但是我会在每篇文章的最后给出一些参考链接,大家可以顺藤摸瓜,一举Get OpenGL...
阅读(157) 评论(0)

Lua面试题目

1、Lua的特性 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。 其它特性: 支持面向过程(procedure-oriented)编程和函数式编程(functional pro...
阅读(1068) 评论(0)

整理Cocos2d-x 面试题解

1、Cocos2d-x是怎样实现跨平台?     AppDelegate 作为跨平台程序入口,在这之上做了另一层的封装,封装了不同平台的不同实现。比如我们通常认为一个程序是由 main 函数开始运行,那我们就去找寻,我们看到了在 proj.linux 目录下存在 main.cpp 文件。在main.cpp 中 CCApplication::sharedApplication()–>run()...
阅读(137) 评论(0)

讨论cocos2d-x字体绘制原理和应用方案

个人一直认为,文字绘制是cocos2d-x最薄弱的环节。对于愤怒的小鸟之类的游戏,cocos2d提供的文字绘制功能已足够使用。但是对于一个mmo来说,则完全不够。一个优秀的mmo客户端必然会对其有进行优化和再封装的操作。         cocos2d-x支持两种文字绘制方式(均支持中英文),一种是CCLabelTTF,一种是CCLabelBmpFont。         CCLabe...
阅读(90) 评论(0)

Shader编程学习笔记(十)—— Cg语言入门2 - profile和基本数据类型

Cg入门二:profile和基本数据类型   上一小结我们了解了Cg的输入输出,输入使用“in”关键词,输出使用“out”关键词,既是输入也是输出则使用“inout”关键词;也了解了Cg基本的语义,顶点程序传递给片段程序的位置坐标使用“POSITION”语义,它不需要在片段程序中做特殊处理,图形硬件会自动针对“POSITION”数据进行处理。   本小结我们主要了解一下Cg的profi...
阅读(303) 评论(0)

Shader编程学习笔记(九)—— Cg语言入门1 - 输入输出和语义

Cg入门一:输入输出和语义   本小节对Cg语言进行一个入门了解。   在以前的课程中,我们了解了渲染管线、顶点和片段程序和颜色计算等,在本小结中来了解一个简单的shader的顶点和片段程序的输入输出以及常用语义。   编写一个简单的顶点和片段着色器,代码如下: Shader "Lesson/vertex&fragment"{ SubShader{ ...
阅读(237) 评论(0)

Shader编程学习笔记(八)—— Surface Shader 2

Surface Shader   上一小结主要了解了Surface Shader使用了“#pragma surface surf Standard fullforwardshadows”指令的意义,这一小节主要了解“surf”surface函数。 void surf (Input IN, inout SurfaceOutputStandard o) { // Alb...
阅读(209) 评论(0)

Shader编程学习笔记(七)—— Surface Shader 1

Surface Shader   本小结对Unity的Surface Shader做一个大概的了解。主要了解在Surface Shader当中比较重要的几个部分,分别是: SurfaceOutputInputlighingshadow   首先查看一下Unity的官方手册中的Writing Surface Shaders,其中描述道:如果要编写一个shader去和光进行交互是...
阅读(154) 评论(0)

Shader编程学习笔记(六)—— Fixed Function Shader 2

Fixed Function Shader   在上一小节中我们已经了解到,Fixed Function Shader是固定功能的着色器,它的功能有限,但是编写比较简单,因为它总是通过一系列的命令达到我们对图形着色的目的。其中我们已经了解了Properties(属性)、Material(材质)、Lighting(光照),接下来来了解一下最为重要的一个命令settexture。   很多...
阅读(128) 评论(0)

Shader编程学习笔记(五)—— Fixed Function Shader 1

Fixed Function Shader   在学习固定管线着色器中要涉及到的知识点是: PropertiesMaterialLightingSetTexturePass   首先来回忆一下ShaderLab的基本结构: shader "name"{ [Properties] SubShaders [FallBack] }   在shader主要的三...
阅读(146) 评论(0)

Shader编程学习笔记(四)—— Unity Shader的组织形式(ShaderLab)

Unity Shader的组织形式   Unity Shader的形态   Unity官方手册上讲Unity Shader有三种不同的编写方案,这三种编写方案分别是surface shaders、vertex and fragment shaders和fixed function shaders。 从前面几篇笔记中可以了解到,可编程图形管线中能够编写shader的主要是两个部分:...
阅读(149) 评论(0)

Shader编程学习笔记(三)—— 三大主流编程语言 HLSL/GLSL/Cg

三大主流编程语言 HLSL/GLSL/Cg   Shader Language   Shader Language的发展方向是设计出在便携性方面可以和C++、Java等相比的高级语言,“赋予程序员灵活而方便的编程方式”,并“尽可能的控制渲染过程”同时“利用图形硬件的并行性,提高算法效率”。   Shader Language目前主要有3种语言:基于OpenGL的OpenGL S...
阅读(190) 评论(0)
41条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:12899次
    • 积分:219
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:38篇
    • 译文:0篇
    • 评论:3条
    最新评论