
OpenGLES
文章平均质量分 79
漫少
专注于Android NDK, OpenGL ES, AR
展开
-
Learn OpenGLES:颜色渐变
这一贴,是继上一贴的补充。主要介绍,Shader的顶点属性数组(即顶点有多个属性)的情况,以及Shader是如何对顶点渲染颜色的。我们将以简单的 长方形为例, 并在最后讨论当手机横竖屏时,长方形显示适配的问题。在上一节中,我们讲了如何对三角形进行上色。 它的关键点很简单,就是通过在fragment shader里定义一个uniform变量(unifrom是图像管线中的全局变量,在图形渲原创 2015-07-26 13:35:16 · 4203 阅读 · 0 评论 -
3D引擎:Horde3D:Shader类里的 结构体,以及渲染一个 Logo的简单流程(三)
首先是 ShaderCombination结构体参数有:1 uint32 combMask 这个变量主要用来 表示#define的位,每一位表示一个 #define如在 shader文件中 有这样的语句: ... #ifdef _F03_ParallaxMapping #define _F02_NormalMapping#原创 2015-11-28 17:14:14 · 1687 阅读 · 0 评论 -
3D引擎:Horde3D:Cocos 和 Horde3D渲染部分的设计比较
其实 渲染引擎,所有的 步骤无非就是: 在 init里 : 创建shader 定义好 要渲染对象的 顶点属性 bind vertex buffer glClearColor 在Loop循环里: set uniforms bind framebuffer glEnable 各种 管线通道 glDraw 对原创 2015-12-01 11:41:33 · 2174 阅读 · 0 评论 -
3D引擎:Horde3D:小感
我们在 使用 Horde3D 写一个 Demo时, 真正的只需要与Horde3D的 以下几个类打交道就行了: 1 SceneManager类,2 ResourceManager类 通过 它们提供的接口 来添加资源类 和 节点 每添加一次, 都会创建一个 这个类的引用 3 Resource类 不同的Resource都继原创 2015-11-14 19:27:29 · 2862 阅读 · 0 评论 -
3D引擎:Horde3D的 Resource类
Horde3D中 Resource类 和 Scene类时 两大主要的类。 在形式上,这两个类有许多共同点。这里主要讲 Resource类。Resource主要负责加载我们需要的资源,如 执行的渲染流程, 模型,Texture,Shader code等。Resource类里有一个管理类,专门负责管理需要用到的资源。主要包括 一个 Resource类: 它是所有Res原创 2015-11-20 23:14:59 · 1001 阅读 · 0 评论 -
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 · 1205 阅读 · 0 评论 -
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 · 7841 阅读 · 0 评论 -
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 · 3084 阅读 · 0 评论 -
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 · 2985 阅读 · 0 评论 -
EGL:简介
参考官方文档: https://www.khronos.org/eglEGL定义:EGL 是图形渲染API(如opengl es) 和 本地平台(如android)窗口系统之间的接口,即桥梁。它为继承有OpenGL ES的客户端提供了创建渲染Surface的机制,并且为OpenGL ES创建了图形上下文, 并且提供了本地平台渲染(如窗口渲染)与 OpenGL ES渲染的同步功能。原创 2015-10-28 11:52:15 · 1830 阅读 · 0 评论 -
虚拟现实:UI: CrossApp的尝试
一 首先讲一下, Android端 GLSurfaceView的渲染机制 CrossApp是基于Cocos2d-x引擎的, 而Cocos2d-x是完全基于 OpenGL的 。 一般基于OpenGL的引擎 整个渲染机制 为: 1 用EGL 库创建 窗口,关联OpenGL 上下文到该窗口 2 设置窗口大小 以及 glV原创 2015-10-16 11:06:54 · 2061 阅读 · 0 评论 -
Learn OpenGLES: 正交变换
上一节中,我们遗留了一个Android适配的问题。 这个问题表现为我们创建的物体长宽比例如果与屏幕宽高比不一致的画,会被屏幕拉伸。 为什么会拉伸? 首先我们来认识齐次坐标 , 这个就是一个齐次坐标, 其中x, y, z 分别表示世界坐标系中x, y, z轴的坐标。 关于空间中一点的坐标,你可以想象下有一个原点,基于这个原点建立一个坐标系,而物体相对于该原点的位置就是这个坐标系原创 2015-08-02 21:21:08 · 1546 阅读 · 0 评论 -
Learn OpenGLES: HelloWorld
刚参加工作半年,一直没有写博客,一来平时学习做笔记,犯不着写博客;二来,一直未想好未来在哪一方面积淀技术;三来,读书少,也不好意思写博客。写博客,对于程序员来说是有好处的,它在清晰化思维的同时能够弥补思维的漏洞。 同时,每一个笔客都是在构建自己的虚拟的世界,在梦想的世界里遨游,因此,有着同样情丝的程序员,写博客是编程之外的延续,反之亦然。纠结了大半年,终于确定自己要走的路,然我感叹原创 2015-07-22 22:53:25 · 1370 阅读 · 0 评论 -
Learn OpenGLES:画三角形
上一贴我们简单的搭建了一个OpenGL的运行窗口,也简单的对这个窗口进行绘制。 这一贴,我们将介绍OpenGL如何将CPU中的内存数据送到GPU的内存中,Shader又是如何找到这些数据,并进行绘制的。我们将通过绘制三角形这一简单的例子,为大家简单的介绍下OpenGL的管线流程,以及如何渲染颜色,颜色渐变动画等知识。#介绍OpenGL的管线Opengl 中所有的事物,都是由点来原创 2015-07-26 13:28:18 · 2201 阅读 · 0 评论 -
学习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 · 18308 阅读 · 0 评论