OpenGL ES 2.0教程
文章平均质量分 97
kigumi
这个作者很懒,什么都没留下…
展开
-
图形学中那些你需要知道的变换概念
在前面的OpenGL ES 教程中,随着教程的进展,我们介绍并使用过很多变换矩阵,但没有系统总结过计算机图形学涉及到的种种变换,因此这篇文章再次回顾“变换”这个主题,从简单到复杂,一步步把各种变换的来龙去脉梳理清楚。原创 2022-12-18 10:14:52 · 977 阅读 · 1 评论 -
OpenGL ES 2.0 for Android教程(九):添加触摸反馈
通过触摸支持实现良好的用户交互是许多游戏和应用程序的基石;它可以给用户一种与真实事物交互的感觉,即使他们只是在看屏幕上的像素。一些手机游戏之所以变得非常流行,仅仅是因为它们提出了一种新的触摸模式。空中曲棍球中有了更好看的木槌,但如果我们真的能使用它们,那不是很好吗?在本章中,我们将通过添加触摸支持,使我们的程序更具互动性。我们将学习如何添加三维相交测试和碰撞检测,这样我们就可以抓住木槌并在屏幕上拖动它。以下是本章的计划:原创 2022-04-11 15:47:00 · 9736 阅读 · 0 评论 -
OpenGL ES 2.0 for Android教程(八):构建简单物体
我们的空中曲棍球项目已经取得了长足的进步:现在我们的桌子放在一个很棒的角度,而且现在我们使用了纹理,看起来更好看了。然而,我们的木槌实际上看起来并不像一个真正的木槌,因为我们现在把每个木槌都画成一个点。你能想象用一个小点作为木槌打空气曲棍球吗?许多应用程序都使用简单图形的组合来创建更复杂的物体,我们将在这里学习如何创建更好的木槌。我们还缺少在场景中平移、旋转和移动的简单方法。许多3D应用程序通过使用视图矩阵来实现这一点;对该矩阵所做的更改会影响整个场景,就好像我们在从移动的摄影机中观察事物一样。我们将添原创 2022-03-31 09:35:36 · 2795 阅读 · 1 评论 -
OpenGL ES 2.0 for Android教程(七):使用纹理添加细节
我们已经设法用简单的形状和颜色完成了很多工作。不过,我们缺少了一些东西:如果我们希望在图形上绘画,并添加精致的细节呢?像艺术家一样,我们可以从基本图形和颜色开始,通过使用纹理在表面上添加额外的细节。简单来说,纹理就是可以加载到OpenGL上的图像或图片。我们可以通过纹理(Texture)添加大量细节。想想你最近可能玩过的一款精美的3D游戏,这些游戏的本质也只是使用点、线和三角形,就像其他3D程序一样。然而,通过纹理添加的细节和艺术家的加工,这些三角形可以用纹理构建美丽的3D场景。一旦我们开始使用纹理原创 2022-03-28 10:15:00 · 8913 阅读 · 0 评论 -
OpenGL ES 2.0 for Android教程(六):进入第三维
虽然OpenGL非常擅长在2D中渲染东西,但当我们添加第三个维度的坐标时,屏幕中的内容就更灿烂了。在这一章中,我们将学习如何进行3D渲染,这样我们就可以获得在桌子对面俯视对手的视觉感受。几个世纪以来,艺术家使用过诸多技巧愚弄人们的眼睛,让他们把平面的二维绘画视为一个完整的三维场景。他们使用的一个技巧叫做线性投影(linear projection)—— 通过将平行线连接在一个假想的消失点上来创造透视的错觉。当我们站在一对笔直的铁轨上时,我们可以看到这种效果的典型例子......原创 2022-03-26 10:00:00 · 8715 阅读 · 2 评论 -
OpenGL ES 2.0 for Android教程(五):调整屏幕的宽高比
你可能还没有注意到,我们目前的空气曲棍球桌存在竖屏切换到横屏时的比例问题。我们的桌子在横屏时被压扁了!我们该如何根据屏幕的宽高比例来修正我们显示的结果,使它在不同的屏幕大小和方向上看起来都是正确的呢?这篇文章将给出答案。原创 2022-03-24 13:33:08 · 8788 阅读 · 0 评论 -
OpenGL ES 2.0 for Android教程(四):添加颜色和阴影
OpenGL ES 2 第四章:添加颜色和阴影在现实世界中,对象具有不同的颜色和阴影。如果我们看看家里的墙,可以看到它被涂成了单一颜色。同时,墙的某些部分看起来会更暗或更亮,这取决于朝向周围光线的角度。我们的大脑利用这些细微的阴影差异作为主要的视觉线索之一,帮助理解我们所看到的东西;艺术家们从一开始就一直在利用这些线索来欺骗我们的大脑。在本章中,我们将向艺术家学习,并使用不同的颜色和阴影使我们的桌子看起来不那么平坦,更逼真。原创 2022-03-22 10:33:15 · 9203 阅读 · 2 评论 -
OpenGL ES 2.0 for Android教程(三):编译着色器并绘制到屏幕
OpenGL ES 2 第三章:编译着色器并绘制到屏幕本章将继续我们在上一章中开始的工作。作为本章的游戏计划,我们将首先加载并编译我们定义的着色器,然后将它们链接到一个OpenGL程序中,最后我们就可以使用这个着色器程序将我们的曲棍球桌绘制到屏幕上。加载着色器现在我们已经为着色器编写了代码,下一步是将它们加载到内存中。要做到这一点,我们首先需要编写一个方法,从资源文件夹中读取代码。从raw资源中加载字符串创建util包,并创建Utils.kt,输入以下代码:fun Context.readStr原创 2022-03-20 11:44:42 · 5276 阅读 · 2 评论 -
OpenGL ES 2.0 for Android教程(二):定义顶点和着色器
OpenGL ES 2 第二章:定义顶点和着色器本章介绍我们的第一个项目:一个简单的空中曲棍球游戏。在我们进行这个项目的过程中,我们将了解OpenGL的一些主要构建块。我们将从学习如何使用一组称为顶点(vertices)的独立点来构建对象开始,然后我们学习如何使用着色器来绘制这些对象,所谓的着色器,是告诉OpenGL如何绘制对象的小程序。这两个概念非常重要,因为几乎每个对象都是通过将顶点连接成点、线和三角形来构建的,这些基本体都通过使用着色器绘制。我们将首先了解顶点,这样我们就可以建立我们的空气曲棍球桌原创 2022-03-19 10:51:47 · 6543 阅读 · 0 评论 -
OpenGL ES 2.0 for Android教程(一)
本文是一系列OpenGL ES 2.0 for Android教程,基于Kotlin与一点点Compose来创建代码示例。通过本系列教程你可以从零开始一步步学习OpenGL ES。原创 2022-03-18 13:14:41 · 5422 阅读 · 2 评论