频道栏目
首页 > 安全 > Android > 正文
  • 3.2.6 在Renderer类中编译着色器

    现在是时候充分利用我们刚刚写过的代码了。切换到AirHockeyRender java,并在onSurfaceCreated()的结尾处加入如下代码:让我们回顾一下本节所完成的工作。首先,我们创建了一个新类ShaderHelper,并加入了一个用

    关键词:  Renderer  编译  着色器 

  • 3.2.5 验证编译状态并返回着色器对象ID

    既然我们已经记录了着色器信息日志,就可以查看一下编译是否成功了:我们所需要做的就是检查在3 2 3节那步的返回值,它是不是0。如果它是0,编译就失败了,这种情况下,我们就不再需要着色器对象了,因此告诉Ope

    关键词: 对象  状态 

  • 3.2.4 取出着色器信息日志

    当我们获得编译状态的时候,OpenGL只给出一个简单的是或否的回答。难道没兴趣知道发生了什么错误以及哪里出问题了吗?事实证明,我们可以通过调用glGetShaderInfoLog(shaderObjectId)获得一个可读的消息。如果Op

    关键词: 信息  日志 

  • 3.2.3 取出编译状态

    让我们加入如下代码检查OpenGL是否能成功地编译这个着色器:为了检查编译是失败还是成功,首先要创建一个新的长度为1的int数组,称为compileStatus;然后调用glGetShaderiv(shaderObjectId, GLES20 GL_COMPILE_

    关键词: 状态 

  • 3.2.2 上传和编译着色器源代码

    让我们加入如下代码把着色器源代码上传到着色器对象里:一旦有了有效的着色器对象,就可以调用glShaderSource(shaderObjectId, shaderCode)上传源代码了。这个调用告诉OpenGL读入字符串shaderCode定义的源代码

    关键词: 源代码 

  • 3.2.1 创建一个新的着色器对象

    我们应该做的第一件事就是创建一个新的着色器对象,并且检查这个创建是否成功。在compileShader()中加入如下代码:这里,用glCreateShader()调用创建了一个新的着色器对象,并把这个对象的ID存入变量shaderObjec

    关键词: 对象 

  • 3.2 编译着色器

    现在我们已经把着色器源代码从文件中读出来了,下一步就是编译每个着色器了。我们要创建一个新的辅助类,它可以创建新的OpenGL着色器对象、编译着色器代码并且返回代表那段着色器代码的着色器对象。一旦写出样板

    关键词: 3  2 编译  着色器 

  • 3.1.3 记录发生的一切

    当我们开始撰写更复杂的代码时,万一在某处犯了错误,查看事情发生的轨迹会很有帮助。在Android里,我们可以使用Log类把所有的事情记录在系统日志(System log)中,这些记录可以在Eclipse的Logcat视图中看到。

    关键词: 记录  发生  一切 

  • 3.1.2 读入着色器的代码

    我们现在就要加入一些调用真正地读取着色器的代码。切换到AirHockeyRender java文件,并在onSurfaceCreated()中的glClearColor()调用后面加入如下代码:别忘了加入TextResourceReader的导入。因为我们还没有一个

    关键词: 代码 

  • 3.1.1 从资源中加载文本

    3 1 加载着色器我们既然已经为着色器写了代码,下一步就要把它们加载到内存中;为此,我们首先需要写一个可以从资源文件夹读取那些代码的方法。3 1 1 从资源中加载文本在项目中创建一个新的Java源代码包,命名

    关键词: 中加  文本  资源 

  • 概述

    本章会继续上一章开始的工作。作为本章的开发计划,我们首先加载并编译前面定义的着色器,然后把它们链接在一起放在OpenGL的一个程序里。我们接下来就可以用着色器程序在屏幕上绘制空气曲棍球桌子了。打开上一章

    关键词:

  • 2.7 小结

    本章用大量篇幅只介绍了如何定义数据,以及沿着OpenGL管道移动数据的着色器。让我们花点儿时间复习一下本章学到的那些关键概念:首先,我们学习了如何定义一个顶点属性数组,并把这个数组复制到本地内存里,以便

    关键词: 小结 

  • 2.6 OpenGL颜色模型

    OpenGL使用累加RGB颜色模型,它只用了三种基本颜色:红色、绿色和蓝色。许多颜色都是通过把这三种基本颜色按不同比例混合在一起而创造的。例如,红色和绿色放在一起会生成黄色,红色和蓝色放在一起可以产生品红色

    关键词: 模型  颜色 

  • 2.5.2 创建第一个片段着色器

    既然已经创建了一个顶点着色器,就有了为每个顶点生成最终位置的子例程;我们仍然需要创建一个为每个片段生成最终颜色的子例程。在此之前,让我们花些时间了解一下什么是片段,以及一个片段是怎么产生的。光栅化

    关键词: 片段 

  • 2.5.1 创建第一个顶点着色器

    让我们创建一个简单的顶点着色器,它会分配在代码中定义的那些位置;为此,首先需要按照下面的步骤为这个着色器创建一个新的文件:1 首先,需要创建一个新文件夹;右键单击项目中的res文件夹,选择New,再选择Fo

    关键词: 顶点 

  • 2.5 引入OpenGL管道

    现在,我们已经定义了曲棍球桌子的结构,并且把这些数据复制到了OpenGL可以存取的本地内存;在把曲棍球桌子画到屏幕上之前,它需要在OpenGL的管道(pipeline)中传递,这就需要使用称为着色器(shader)的子例程

    关键词: 管道 

  • 2.4.2 把内存从Java堆复制到本地堆

    第二种技术就是改变内存分配的方式,Java有一个特殊的类集合,它们可以分配本地内存块,并且把Java的数据复制到本地内存。本地内存可以被本地环境存取,而不受垃圾回收器的管控。我们需要按如图2-5所示传输数据;

    关键词: 内存 

  • 2.4.1 从Java调用本地代码

    Dalvik方案是Android的主要特点之一,但是,如果代码运行在虚拟机内部,那它怎么与OpenGL通信呢?有两种技术,第一种技术是使用Java本地接口(JNI),这个技术已经由Android软件开发包提供了;当调用android ope

    关键词: 代码 

  • 2.4 使数据可以被OpenGL存取

    我们已经完成顶点的定义了,但是,在OpenGL可以存取它们之前,我们仍然需要完成另外一步。主要的问题是这些代码运行的环境与OpenGL运行的环境使用了不同的语言,我们需要理解如下两个主要的概念。1 当我们在模拟

    关键词: 数据 

  • 2.3.5 添加中间线和两个木槌

    我们几乎要完成所有顶点的定义了;我们只需要为中间线和两个木槌添加一些顶点。最后,会得到与图2-4相似的图形。我们将用一条直线定义中间线,并用一个点表示每个木槌。在数组的最后添加一个分号,然后加入下面这

    关键词: 木槌  两个 

排行
热门
论坛推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站