自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (4)
  • 收藏
  • 关注

原创 Win10 + cygwin64 + ndk 配置ijkplayer android

最近,在开发时,正好遇到了如何在Windows上安装ijkplayer的问题。ijkplayer是完全基于FFmpeg的 参考这两篇编译安装ffmpeg的文章,也许对我们有一些帮助:https://sourceforge.net/p/servestream/code/HEAD/tree/ffmpeg/scripts/arm-build.shhttp://blog

2016-06-19 12:17:30 3001

原创 学习ShaderToy第一天: glsl语言内置函数gl_FragCoord

运行环境:Androidopengl es版本: 2.03D引擎库 : Rajawali3DShaderToy上用的shader语言 为glsl , 效果是用webgl跑的,而webgl封装了opengl es,  所以ShaderToy上的例子同样使用于Android端。ShaderToy基本上 都是用fragment shader 对栅格化后的像素进行处

2016-02-26 17:06:01 18206

原创 C++递归算法:我的理解

递归算法,总结起来具有以下几个特点:    1  它有一个基本部分,即直接满足条件,输出    2  它有一个递归部分,即 通过改变基数(即n),来逐步使得n满足基本部分的条件,从而输出    3  在实现的过程中,它采用了分治法的思想:       即将整体分割成部分,并总是从最小的部分(基本部分)开始入手(输出),其背后的原理在于 当整体递归到部分时,会保留整体的信息,

2016-01-26 00:00:37 15229

原创 3D引擎:Horde3D:Cocos 和 Horde3D渲染部分的设计比较

其实 渲染引擎,所有的 步骤无非就是:   在 init里 :   创建shader   定义好 要渲染对象的 顶点属性    bind vertex buffer   glClearColor   在Loop循环里:   set uniforms    bind framebuffer    glEnable 各种 管线通道    glDraw 对

2015-12-01 11:41:33 2106

原创 3D引擎:Horde3D:Shader类里的 结构体,以及渲染一个 Logo的简单流程(三)

首先是 ShaderCombination结构体参数有:1  uint32          combMask      这个变量主要用来  表示#define的位,每一位表示一个 #define如在 shader文件中 有这样的语句: ... #ifdef _F03_ParallaxMapping #define _F02_NormalMapping#

2015-11-28 17:14:14 1603

原创 3D引擎:Horde3D:读取Shader文件流程(二)

首先,根据[[ ]]来判断 FX, VS_*, FS_*部分然后,将FX部分给 fxCode字符串, VS_*, FS_*分别交给 CodeResource 并依次存放在 _codeSections vector中。之后,  会解析 FX部分, 这部分先会设置  uniform默认的值,float / float4 类型,变量存储在 _uniforms里 存放, S

2015-11-26 19:53:16 831

原创 3D引擎:Horde3D:如何解析Shader文件(一)

在上一帖中,http://blog.csdn.net/jinghouxiang/article/details/49994983说了 如何从 Android的jni层获取 Assets文件夹下 文件的路径名,获取路径名后 需要将文件中的数据读取到char 数组中假如 assets下 有一文件为 Shader/test.shaderrootDir 为我们读取文件的根目

2015-11-24 17:01:17 1336

原创 Android Ndk: 如何从native层直接获取 assets文件夹下的文件

这篇博文写的特别好 http://androgeek.info/?p=275从Native层 直接读取 Android 工程目录 下 Asserts目录下的文件具体思路如下:Android工程 会被打包成一个 apk文件,具体存储在  data/app下 apk文件是一种 类似于 zip的压缩文件,因此,我们需要 用unzip的开源库,调用该库的 api来

2015-11-23 14:47:27 7741

原创 3D引擎:Horde3D的 Resource类

Horde3D中 Resource类 和 Scene类时 两大主要的类。 在形式上,这两个类有许多共同点。这里主要讲 Resource类。Resource主要负责加载我们需要的资源,如 执行的渲染流程, 模型,Texture,Shader code等。Resource类里有一个管理类,专门负责管理需要用到的资源。主要包括 一个 Resource类:  它是所有Res

2015-11-20 23:14:59 951

原创 3D引擎:Horde3D:小感3

Horde3D中所有 跟渲染相关的东西 最终都会交给 RenderBase去干。只要是与 Opengl相关的API在  RenderBase都能找到,绝对是学习opengl的 上好材料RenderDevice 定义在 egRendererBase.h里构造方法:   RenderDevice() init方法Resources 资源类的:

2015-11-17 16:43:53 2406

原创 3D引擎:Horde3D:小感2

我们自己在写Opengl 渲染程序时, 会定义好每个可渲染的物体对象,它的属性可以包含了 顶点,颜色,材质, shader program。 然后,对它定义接口包括更新顶点位置,得到变换矩阵,使用shader program, 输送unifrorm变量,通过VBO,IBO draw。这样子我们 会创建一堆的 可渲染对象, 然后对每个对象进行渲染, 随着对象的增多,代码量就会变得越多

2015-11-16 23:14:47 1114

原创 3D引擎:Horde3D:小感

我们在 使用 Horde3D 写一个  Demo时,     真正的只需要与Horde3D的 以下几个类打交道就行了:    1  SceneManager类,2 ResourceManager类      通过 它们提供的接口 来添加资源类 和 节点    每添加一次, 都会创建一个 这个类的引用    3 Resource类      不同的Resource都继

2015-11-14 19:27:29 2792

原创 读取Xml: RapidXml

不管我们是开发 App  还是开发游戏。 视图都是一个非常重要的概念。 在App中的视图,可能是一些控件。 在游戏里,视图就是 场景,精灵等场景中的Node。不管如何,如果有大量的控件或者场景Node需要我们去创建或者 布局,就太费劲了。因此,有时候,我们可以用xml来配置,而程序中只需 读取这些xml文件,就方便多了。下面介绍一种常用的 RapidXml

2015-11-12 11:18:50 1628

原创 Opencv For Android: 如何显示摄像头预览

它是在 CameraBridgeBase 这个类里有一个 方法, deliverAndDrawFrame(CvCameraViewFrame ),  在这个函数里面,它将CvCameraViewListener2 的onCameraFrame 返回的Mat 转换为 bitmap ,然后通过canvas画在 surfaceView 持有holder的 surface上。注

2015-11-09 22:07:27 3896

原创 Modern OpenGL ES: ndk编程——画一个三角形之Shader工程

OpenGL ES2.0以后,想画一个东西必须使用 shader来完成。  而使用shader需要创建shader工程。使用shader来画一个东西的大体步骤如下:1 创建和编译shader 2 创建和链接shader工程3 为shader工程设置 uniform 和 attrubte变量4 Shader编译 并链接到工程,成最终的可执行文件Vertex Sha

2015-11-02 21:14:15 1163

原创 Modern OpenGL ES: ndk编程——画一个三角形之创建EGL窗口

上一节我们 知道了如何用ndk 来创建一个 Activity这一节,我们来创建 GL 的窗口上一节已经知道, Khronos Group 为我们提供了 EGL API 来帮助我们创建 窗口,同步窗口绘制,管理窗口渲染。1 与窗口系统通信EGL在OpenGL ES 和 本地窗口系统之间 提供了一个 "glue"层。 在EGL 决定那种类型的绘制surface可以用之前

2015-10-31 16:25:18 2938

原创 Modern OpenGL ES: ndk编程——画一个三角形之NativeWindow

OpenGLES 3.0 需要链接到 下面库:     1 OpenGLES3.0 库 libGLESv2.lib 和 EGL 库 libEGL.lib    我们会在 android-ndk-r10c下的 platforms/android-21/arch-arm/usr/lib下找到这两个  libEGL.so 和 libGLEv3.so   2 OpenGLES3.0 应

2015-10-30 14:56:04 3042

原创 3D引擎:Horde3D:App类

Horde3D引擎 主要位于 Horde3D/Source/Horde3DEngine/Debug/下的 Horde3D.lib。 其源码位于Horde3D/Bindings/C++/Horde3D.h和 Horde3D/Source/Horde3DEngine/下的cpp文件里Horde3D引擎资源的加载API 主要是 位于Horde/Source/Horde3DEngine/D

2015-10-29 23:05:58 1833

原创 3D引擎:Horde3D:窗口类API:glfw

Horde3D是基于 opengl的 次世代,轻量级渲染引擎。glfw 这个开源库是一个很好便捷 opengl创建窗口的库, 它创建一个 opengl 上下文的窗口,并可以接收窗口输入事件关于 glfw 创建窗口的demo,可以参考:http://www.glfw.org/documentation.html首先,分析Horde3D 用glfw创建窗口的方式

2015-10-29 23:04:30 1974

原创 EGL:简介

参考官方文档: https://www.khronos.org/eglEGL定义:EGL 是图形渲染API(如opengl es) 和 本地平台(如android)窗口系统之间的接口,即桥梁。它为继承有OpenGL ES的客户端提供了创建渲染Surface的机制,并且为OpenGL ES创建了图形上下文, 并且提供了本地平台渲染(如窗口渲染)与 OpenGL ES渲染的同步功能。

2015-10-28 11:52:15 1670

原创 虚拟现实:UI: CrossApp的尝试

一 首先讲一下, Android端 GLSurfaceView的渲染机制        CrossApp是基于Cocos2d-x引擎的,    而Cocos2d-x是完全基于 OpenGL的 。         一般基于OpenGL的引擎 整个渲染机制 为:         1 用EGL 库创建 窗口,关联OpenGL 上下文到该窗口         2 设置窗口大小 以及 glV

2015-10-16 11:06:54 2024

原创 Urho3D引擎:初识

Urho3D引擎,关注很久了,之前一直在学习OpenGL。有了OpenGL一定基础后,也是时间好好看看引擎:让OpenGL和编程有一个很好的补充。在Urho3D的众多Demo都是通过Sample这个类来进行拓展工作的,Sample其实就是一个框架,它继承自 Application。 那么,每个Demo都是通过Sample/Application来初始化Urho3D引擎,并启动运行整个主

2015-09-17 22:11:59 6529

原创 Learn OpenGLES: 正交变换

上一节中,我们遗留了一个Android适配的问题。 这个问题表现为我们创建的物体长宽比例如果与屏幕宽高比不一致的画,会被屏幕拉伸。 为什么会拉伸? 首先我们来认识齐次坐标  , 这个就是一个齐次坐标, 其中x, y, z 分别表示世界坐标系中x, y, z轴的坐标。 关于空间中一点的坐标,你可以想象下有一个原点,基于这个原点建立一个坐标系,而物体相对于该原点的位置就是这个坐标系

2015-08-02 21:21:08 1501

原创 Learn OpenGLES:颜色渐变

这一贴,是继上一贴的补充。主要介绍,Shader的顶点属性数组(即顶点有多个属性)的情况,以及Shader是如何对顶点渲染颜色的。我们将以简单的 长方形为例, 并在最后讨论当手机横竖屏时,长方形显示适配的问题。在上一节中,我们讲了如何对三角形进行上色。 它的关键点很简单,就是通过在fragment shader里定义一个uniform变量(unifrom是图像管线中的全局变量,在图形渲

2015-07-26 13:35:16 4124

原创 Learn OpenGLES:画三角形

上一贴我们简单的搭建了一个OpenGL的运行窗口,也简单的对这个窗口进行绘制。 这一贴,我们将介绍OpenGL如何将CPU中的内存数据送到GPU的内存中,Shader又是如何找到这些数据,并进行绘制的。我们将通过绘制三角形这一简单的例子,为大家简单的介绍下OpenGL的管线流程,以及如何渲染颜色,颜色渐变动画等知识。#介绍OpenGL的管线Opengl 中所有的事物,都是由点来

2015-07-26 13:28:18 2161

原创 Learn OpenGLES: HelloWorld

刚参加工作半年,一直没有写博客,一来平时学习做笔记,犯不着写博客;二来,一直未想好未来在哪一方面积淀技术;三来,读书少,也不好意思写博客。写博客,对于程序员来说是有好处的,它在清晰化思维的同时能够弥补思维的漏洞。 同时,每一个笔客都是在构建自己的虚拟的世界,在梦想的世界里遨游,因此,有着同样情丝的程序员,写博客是编程之外的延续,反之亦然。纠结了大半年,终于确定自己要走的路,然我感叹

2015-07-22 22:53:25 1338

原创 ubuntu14.04+opencv2.4.x 的PTAM配置

PTAM 是visualSLAM的一种算法,不同于SLAM的实现,它将摄像机跟踪和地图构建分离,仅使用初始地图构建及借用bundle的实现来实现每增添一个新的场景,便实时计算摄像机的位置。这一算法,为AR领域带来的革新,使AR真正进入虚拟与真实交互的新篇章。  接下来,我将结合自己的实践,为大家介绍如何在Linux下安装PTAM。Opencv版的PTAM源码可见:https

2015-07-22 09:30:06 2697 1

premier pro cs5

书中详细介绍了编辑视频所需的各种例子 方便大家学习和参考

2013-02-19

opencv关于图像处理的关键程序文档

关于做图像处理或计算机视觉很好的一篇关于程序的文档 特别是特征的检测与匹配

2012-12-12

opencv在2010VS下的配置

教你怎么在VS2010下的配置,很好的一个文档的总结 很不错的一个参考!!

2012-12-12

空空如也

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

TA关注的人

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