当前搜索:

【OpenGL ES】顶点着色器

1、输入输出顶点着色器可用于传统的基于顶点操作,例如通过矩阵变换位置、计算照明方程式以生成逐顶点的颜色以及生成或者变换纹理坐标。顶点着色器的输入、输出如下图所示。输入变量或属性:用顶点数组提供的逐顶点数据。 统一变量和统一变量缓冲区:顶点着色器使用的不变数据。 采样器:代表顶点着色器使用的纹理的特殊统一变量类型。 着色器程序:顶点着色器程序源代码或者描述在操作顶点的可执行文件。 输出或可变变...
阅读(288) 评论(0)

【Wayland】初识Wayland(X、Mir)

【声明】下图copy自wikipedia,如有侵权请告知。在介绍Wayland之前,先熟悉一下X与Mir,简单来说,同样作为显示服务,X是一个老派的庞然大物,Wayland是一颗节节高的芝麻,Mir是一个颇受争议的新秀,其它的显示服务还包括Android的SurfaceFlinger,MacOS家族的Quartz Compositor等。1、Mir【参考ubuntu-wiki】https://wik...
阅读(1768) 评论(0)

【OpenGL ES】图元装配与光栅化

OpenGL ES 3.0支持三种基本图元,三角形、直线和点,它们由一组表示顶点位置的顶点描述,其它如颜色、纹理坐标和几何法线等也作为通用属性与每个顶点关联。1、三角形三角形有三种类型,GL_TRIANGLES用于绘制一系列单独的三角形,GL_TRIANGLE_STRIPE用于绘制一系列相互连接的三角形,GL_TRIANGLE_FAN用于绘制一系列扇形连接的三角形,如下图所示,对于一组顶点数据(v0...
阅读(1118) 评论(0)

【OpenGL ES】顶点缓冲区对象VBO与顶点数组对象VAO

【完整示例代码】https://github.com/geminy/aidear/tree/master/graphics/mu/examples/opengles3顶点属性即顶点数据,可以通过顶点数组逐顶点指定,也可以为所有顶点指定一个常量,所有OpenGL ES 3.0实现必须支持至少16个顶点属性,应用程序可以通过glGetIntegerv查询GL_MAX_VERTEX_ATTRIBS得到支持...
阅读(1423) 评论(0)

【OpenGL ES】着色语言GLSL

OpenGL ES 3.0顶点着色器和片段着色器的第一行总是声明着色器版本(如#version 300 es),通知着色器编译器预期在着色器中出现的语法和结构,检查着色器语法,默认为OpenGL ES着色语言的1.00版本,用于OpenGL ES 2.0,对于OpenGL ES 3.0,版本号为3.00,增加了许多新功能,包括非方矩阵、全整数支持、插值限定符、统一变量块、布局限定符、新的内建函数、全...
阅读(1040) 评论(0)

【OpenGL ES】uniform变量缓冲区对象layout

在uniform变量缓冲区对象中,uniform变量在内存中以如下形式出现: (1)类型为bool、int、uint和float的成员保存在内存的特定偏移,分别作为单个uint、int、uint和float类型的分量。 (2)基本数据类型bool、int、uint或者float的向量保存在始于特定偏移的连续内存位置中,第一个分量在最低偏移处。 (3)C列R行的列优先矩阵被当成C浮点列向量的的一...
阅读(906) 评论(0)

【OpenGL ES】着色器Shader与程序Program

在OpenGL ES 3程序中,Shader和Program是两个重要的概念,至少需要创建一个顶点Shader对象、一个片段Shader对象和一个Program对象,才能用着色器进行渲染,理解Shader对象和Program对象的最佳方式是将它们比作C语言的编译器和链接程序,从Shader的创建到Program的链接共六个基本步骤,创建Shader、加载Shader源码、编译Shader、创建Pro...
阅读(1541) 评论(0)

【OpenGL ES】EGL简介

【参考-khronos-egl】https://www.khronos.org/egl 【参考-khronos-egl-api(目前共34个API)】https://www.khronos.org/registry/EGL/sdk/docs/man/ 【参考-khronos-egl-intro】https://www.khronos.org/registry/EGL/sdk/docs/man/h...
阅读(1525) 评论(0)

【OpenGL ES】Hello Triangle

像Hello World一样,Hello Triangle是OpenGL ES的一个入门级例子,OpenGL ES 3.0完全基于着色器,如果没有绑定和加载合适的着色器,就无法绘制任何几何形状。下面介绍Hello Triangle的一般步骤,如何用OpenGL ES绘制一个三角形,需要做哪些事情,而每个步骤的详细原理则不作介绍,具体源码可参考https://github.com/geminy/mu/...
阅读(660) 评论(0)

【OpenGL ES】OpenGL ES简介

【参考-khronos】https://www.khronos.org/opengles/1、简介OpenGL ES(OpenGL for Embeded System)是OpenGL(Open Graphics Library)的精简子集,是以手持和嵌入式设备为目标的高级3D图形API,如现在火爆的智能手机,支持桌面系统,还是浏览器3D图形标准WebGL的基础,支持多个平台,如桌面端的Linux、...
阅读(1060) 评论(0)

【CEGUI】CEGUI入门篇之注入输入事件(五)

CEGUI中的事件通过CEGUI::InjectedInputReceiver处理,需要从外部注入输入事件,具体包括如下几个函数:bool InjectedInputReceiver::injectMouseMove( float delta_x, float delta_y ); bool InjectedInputReceiver::injectMousePosition( float x_po...
阅读(697) 评论(0)

【CEGUI】CEGUI入门篇之创建window(四)

以下内容翻译自http://static.cegui.org.uk/docs/0.8.7/window_tutorial.html这里介绍CEGUI window的创建及如何让window在屏幕上显示出来,在此之前,需要了解“CEGUI入门篇之初始化(一)”、“CEGUI入门篇之使用ResourceProvider加载资源(二)”和“CEGUI入门篇之数据文件及默认初始化(三)”。1、window和...
阅读(683) 评论(0)

【CEGUI】CEGUI入门篇之数据文件及默认初始化(三)

以下内容翻译自http://static.cegui.org.uk/docs/0.8.7/datafile_tutorial.html开始之前需要了解CEGUI Render和System的创建及ResourceProvider的用法,不懂的请参考“CEGUI入门篇之初始化(一)”和“CEGUI入门篇之使用ResourceProvider加载资源(二)”。1、简介CEGUI使用了许多不同类型的数据文...
阅读(846) 评论(0)

【CEGUI】CEGUI入门篇之使用ResourceProvider加载资源(二)

以下内容翻译自http://static.cegui.org.uk/docs/0.8.7/resprov_tutorial.html这里主要介绍CEGUI::ResourceProvider的相关概念及DefaultResourceProvider的用法。1、什么是ResourceProvider?CEGUI使用ResourceProvider作为CEGUI库和外部文件系统的桥接,无论是基本的本地文...
阅读(1018) 评论(0)

【CEGUI】CEGUI入门篇之初始化(一)

以下内容翻译自http://static.cegui.org.uk/docs/0.8.7/rendering_tutorial.html1、简介初始化CEGUI时,不管其渲染API或渲染引擎是什么,都包括三个基本步骤: (1)创建一个基于CEGUI::Renderer对象的实例。 (2)创建CEGUI::System对象,参数为上一步创建的Renderer实例。 (3)每一帧都调用CEGUI:...
阅读(883) 评论(0)
    个人资料
    • 访问:326443次
    • 积分:6057
    • 等级:
    • 排名:第4703名
    • 原创:257篇
    • 转载:0篇
    • 译文:5篇
    • 评论:45条
    Make Others Better.
    博客专栏
    文章分类