
opengl
文章平均质量分 93
mChenys
这个作者很懒,什么都没留下…
展开
-
八、OpenGL ES 构建简单物体
许多应用都是合并简单的图形来构建更复杂的物体,我们还缺少一个容易的方法在场景中平移,旋转和来回移动,许多三维应用程序使用一个视图(view)矩阵实现这些,对这个矩阵所做的改动会影响整个场景,就像我们从一个移动相机中观察事物一样,我们将添加一个视图矩阵使它更容易旋转和来回移动。接下来会学习如何把三角形组织成为三角形带和三角形扇,并把它们合并在一起成为一个单个物体。一、合并三角形带和三角形扇想象一下一个冰球(一个扁平的圆柱体),它其实是由顶部的圆形和侧面的长方形组成要构建圆柱体的侧面,我们需要原创 2021-01-11 18:01:11 · 404 阅读 · 0 评论 -
七、OpenGL ES 着色器语言GLSL
一、关于着色器着色器(Shader)是在GPU上运行的小程序。从名称可以看出,可通过处理它们来处理顶点。此程序使用OpenGL ES SL语言来编写。它是一个描述顶点或像素特性的简单程序。1.1 顶点着色器对于发送给GPU的每一个顶点,都要执行一次顶点着色器。其功能是把每个顶点在虚拟空间中的三维坐标变换为可以在屏幕上显示的二维坐标,并带有用于z-buffer的深度信息。顶点着色器可以操作的属性有:位置、颜色、纹理坐标,但是不能创建新的顶点。顶点着色器的输入输出模型如下:1.2 片(元)转载 2020-12-30 13:03:51 · 765 阅读 · 0 评论 -
六、OpenGL ES纹理的使用
一、关于纹理前面我们已经使用简单的图形和颜色就完成了很多工作了,但是还是很丑陋,我们需要画的更加紧致一些,这就需要用到纹理了,所谓纹理就是一个图片,他可以被加进OpenGL中。一旦使用了纹理,我们就需要使用多个着色器的程序了。当把纹理按照特定的方式映射到物体表面上的时候,能使物体看上去更加真实。当前流行的图形系统中,纹理绘制已经成为一种必不可少的渲染方法。在理解纹理映射时,可以将纹理看做应用在物体表面的像素颜色。在真实世界中,纹理表示一个对象的颜色、图案以及触觉特征。纹理只表示对象表面的彩色图案,它不能原创 2020-12-29 18:15:14 · 749 阅读 · 1 评论 -
五、OpenGL ES 三维图形的初探
想象一下你站在一个桌子前面,从你的角度观察桌子,你会看到你那端的桌子会显得较大,因为你是从一个角度向下观察的,而不是从空中俯视的。接下来我会继续改造上一篇文章的图形,让他看起来有三维的效果。一、三维的艺术艺术家在作画的时候可以把一个平面的二维图形使用一些技巧(线性投影)绘制成三维的图形,它的原理就是在一个想象中的消失点处把并行的线段聚合在一起,从而创建出立体的幻想。例如当我们站在铁轨上向铁轨的远处看时,会发现远处的铁轨消失在地平线上的一个点上了,铁轨上的枕木离我们越远,它看起来就越小,如下图所示:原创 2020-12-25 19:27:25 · 470 阅读 · 0 评论 -
四、OpenGL ES调整屏幕的宽高比
一、宽高比问题将上一篇文章的代码跑起来,手机切换到横屏模式,会看到如下效果图:很明显图形被压缩了,之所以会这样是因为我们把坐标传递给OpenGL的时候没有考虑屏幕的宽高比。在OpenGL中渲染一切物体都需要映射到x轴和y轴上[-1,1]的范围内,对于z轴也是一样的,这个范围内的坐标被称为归一化设备坐标,其独立于屏幕实际的尺寸或者形状。不幸的是,因为它们独立于实际的屏幕尺寸,如果直接使用他们,就会有切换横屏图形被压缩的问题。假设实际的设备分辨率是1280*720,OpenGL的图形也是占原创 2020-12-24 11:58:32 · 1380 阅读 · 0 评论 -
三、OpenGL ES给图形添加亮度
一、平滑着色上一篇文章介绍了使用uniform来使用单一的颜色进行绘制,那么如何使用不同颜色和着色来表达一个复杂的场景呢?如果有一个方法可以在同一个三角形中混合不同的颜色,我们最终会得到一个平滑着色的三角形。平滑着色是在顶点间完成的,OpenGL提供一个方法可以平滑的混合一条直线或者一个三角形的表面上的每个顶点的颜色。我们要使用这种类型的着色使得某一区域表现的更加明亮,例如在图形的中间要显得明亮一些,而其边缘要显得暗淡些,就好像有一盏灯在其上方挂着一样,如下图所示:实现上图效果需要在矩形的中原创 2020-12-23 14:57:28 · 858 阅读 · 0 评论 -
二、OpenGL ES绘制的简单使用
一、几个概念的介绍 着色器语言 仅适合GPU编程,对于顶点着色器和片元着色器的开发都需要用到着色器语言进行开发 顶点着色器 顶点着色器(Vertex Shader)是在GPU上运行的小程序。从名称可以看出,可通过处理它们来处理顶点 片段着色器 片段着色器计算每个像素的颜色和其它属性。它通过应用光照值、凹凸贴图,阴影,镜面高光,半透明等处理来计算像素的颜色并输出。 它也可改变像素的深度(z-buffering)或在多个渲染目标被激活的状态下输出多种颜色。 一个片段着色器不能原创 2020-12-18 16:24:07 · 457 阅读 · 0 评论 -
一、OpenGL ES 与GLSurfaceView的入门使用
一、初始化OpenGL我们需要一个特殊的类GLSurfaceView来初始化OpenGL,GLSurfaceView会处理OpenGL初始化过程中比较基本的操作,例如配置显示设备(display)以及在后台线程中渲染,渲染是指在显示设备中一个叫做surface的区域完成的,这个区域有时候也称为(viewpoint)。在幕后,GLSurfaceView实际上为它自己创建了一个窗口(window),并在视图层次(view hierarchy)上穿了一个“洞”,让底层的OpenGL surface能够显示原创 2020-12-17 15:29:39 · 729 阅读 · 0 评论