OpenGL ES 3.0编程指南(原书第2版)

副标题:无

作   者:(美)金斯伯格 等著,姚军 等译

分类号:

ISBN:9787111489153

微信扫一扫,移动浏览光盘

简介

  《华章 OpenGL ES3.0编程指南(原书第2版)》由资深OpenGL技术专家亲笔撰写,全面介绍OpenGL ES 3.0的各种特性及新增功能,,通过大量已经编译和测试过的实例,详细讲解OpenGL ES3.0中的应用程序接口(API)和图形管线,既涵盖简单图形的渲染方法,又深入介绍逐像素照明和粒子系统等高级渲染技术,并且包含大量有效使用API和硬件的实用技巧,为手持设备的各种高性能3D应用开发提供翔实指导。  《华章OpenGL ES 3.0编程指南(原书第2版)》共16章:第1章简单介绍OpenGL ES ,并概述OpenGL ES3.0图形管线;第2章通过绘制一个三角形的简单OpenGL ES 3.0示例程序,讲解一些API概念,并说明如何构建和运行OpenGLES示例程序;第3章讲述为OpenGL ES3.0创建表面和渲染上下文的API——EGL;第4章讨论创建着色器对象、编译着色器和检查编译错误的方法;第5章讲解编写着色器所需的着色语言基本知识;第6章详细介绍几何形状输入图形管线的方法,包含对顶点属性、顶点数组和缓冲区对象的讨论;第7章讨论几何形状如何装配成图元,介绍OpenGLES 3.0中所有可用图元类型,包括点精灵、直线、三角形、三角形条带和三角扇形;第8章概述顶点着色器如何融入管线,以及OpenGL ES着色语言中可用于顶点着色器的特殊变量;第9章和第10章介绍片段着色器,包括多重纹理、雾化、Alpha测试和用户裁剪平面等;第11章讨论片段操作,包括剪裁测试、模板测试、深度测试、多重采样、混合和抖动;第12章介绍使用帧缓冲区对象渲染屏幕外表面;第13章讨论同步对象和栅栏的使用方法;第14章介绍OpenGLES 3.0高级编程,包含使用法线贴图的逐像素照明、环境贴图、粒子系统、图像后处理、程序纹理、阴影贴图、地形渲染和投影纹理等渲染技术。;第15章提供OpenGLES 3.0中各种可用状态查询的参考;第16章讨论如何为iOS 7、Android 4.3 NDK、Android 4.3SDK、Windows和Linux构建OpenGL ES样板代码。

目录

本书赞誉
译者序

前言
致谢
第1章 OpenGL ES 3.0简介
1.1 OpenGL ES3.0
1.1.1 顶点着色器
1.1.2 图元装配
1.1.3 光栅化
1.1.4 片段着色器
1.1.5 逐片段操作
1.2 OpenGLES3.0新功能
1.2.1 纹理
1.2.2 着色器
1.2.3 几何形状
1.2.4 缓冲区对象
1.2.5 帧缓冲区
1.3 OpenGLES 3.0和向后兼容性
1.4 EGL
1.4.1 使用OpenGL ES3.0编程
1.4.2 库和包含文件
1.5 EGL命令语法
1.6 OpenGLES命令语法
1.7 错误处理
1.8 基本状态管理
1.9 延伸阅读
第2章 你好,三角形:一个OpenGL ES3.0示例
2.1 代码框架
2.2 示例下载位置
2.3 "你好,三角形"(HelloTriangle)示例
2.4 使用OpenGL ES3.0框架
2.5 创建简单的顶点和片段着色器
2.6 编译和加载着色器
2.7 创建一个程序对象并链接着色器
2.8 设置视口和清除颜色缓冲区
2.9 加载几何形状和绘制图元
2.10 显示后台缓冲区
2.11 小结
第3章 EGL简介
3.1 与窗口系统通信
3.2 检查错误
3.3 初始化EGL
3.4 确定可用表面配置
3.5 查询EGLConf?ig属性
3.6 让EGL选择配置
3.7 创建屏幕上的渲染区域:EGL窗口
3.8 创建屏幕外渲染区域:EGLPbuffer
3.9 创建一个渲染上下文
3.10 指定某个EGLContext为当前上下文
3.11 结合所有EGL知识
3.12 同步渲染
3.13 小结
第4章 着色器和程序
4.1 着色器和程序
4.1.1 创建和编译一个着色器
4.1.2 创建和链接程序
4.2 统一变量和属性
4.2.1 获取和设置统一变量
4.2.2 统一变量缓冲区对象
4.2.3 获取和设置属性
4.3 着色器编译器
4.4 程序二进制码
4.5 小结
第5章 OpenGLES着色语言
5.1 OpenGLES着色语言基础知识
5.2 着色器版本规范
5.3 变量和变量类型
5.4 变量构造器
5.5 向量和矩阵分量
5.6 常量
5.7 结构
5.8 数组
5.9 运算符
5.10 函数
5.11 内建函数
5.12 控制流语句
5.13 统一变量
5.14 统一变量块
5.15 顶点和片段着色器输入/输出
5.16 插值限定符
5.17 预处理器和指令
5.18 统一变量和插值器打包
5.19 精度限定符
5.20 不变性
5.21 小结
第6章 顶点属性、顶点数组和缓冲区对象
6.1 指定顶点属性数据
6.1.1 常量顶点属性
6.1.2 顶点数组
6.2 在顶点着色器中声明顶点属性变量
6.3 顶点缓冲区对象
6.4 顶点数组对象
6.5 映射缓冲区对象
6.6 复制缓冲区对象
6.7 小结
第7章 图元装配和光栅化
7.1 图元
7.1.1 三角形
7.1.2 直线
7.1.3 点精灵
7.2 绘制图元
7.2.1 图元重启
7.2.2 驱动顶点
7.2.3 几何形状实例化
7.2.4 性能提示
7.3 图元装配
7.3.1 坐标系统
7.3.2 透视分割
7.3.3 视口变换
7.4 光栅化
7.4.1 剔除
7.4.2 多边形偏移
7.5 遮挡查询
7.6 小结
第8章 顶点着色器
8.1 顶点着色器概述
8.1.1 顶点着色器内建变量
8.1.2 精度限定符
8.1.3 顶点着色器中的统一变量限制数量
8.2 顶点着色器示例
8.2.1 矩阵变换
8.2.2 顶点着色器中的照明
8.3 生成纹理坐标
8.4 顶点蒙皮
8.5 变换反馈
8.6 顶点纹理
8.7 将OpenGLES 1.1顶点管线作为ES3.0顶点着色器
8.8 小结
第9章 纹理
9.1 纹理基础
9.1.1 2D纹理
9.1.2 立方图纹理
9.1.3 3D纹理
9.1.4 2D纹理数组
9.1.5 纹理对象和纹理的加载
9.1.6 纹理过滤和mip贴图
9.1.7 自动mip贴图生成
9.1.8 纹理坐标包装
9.1.9 纹理调配
9.1.10 纹理细节级别
9.1.11 深度纹理对比(百分比渐进过滤)
9.1.12 纹理格式
9.1.13 在着色器中使用纹理
9.1.14 使用立方图纹理的示例
9.1.15 加载3D纹理和2D纹理数组
9.2 压缩纹理
9.3 纹理子图像规范
9.4 从颜色缓冲区复制纹理数据
9.5 采样器对象
9.6 不可变纹理
9.7 像素解包缓冲区对象
9.8 小结
第10章 片段着色器
10.1 固定功能片段着色器
10.2 片段着色器概述
10.2.1 内建特殊变量
10.2.2 内建常量
10.2.3 精度限定符
10.3 用着色器实现固定功能技术
10.3.1 多重纹理
10.3.2 雾化
10.3.3 Alpha测试(使用Discard)
10.3.4 用户裁剪平面
10.4 小结
第11章 片段操作
11.1 缓冲区
11.1.1 请求更多缓冲区
11.1.2 清除缓冲区
11.1.3 用掩码控制帧缓冲区的写入
11.2 片段测试和操作
11.2.1 使用剪裁测试
11.2.2 模板缓冲区测试
11.3 混合
11.4 抖动
11.5 多重采样抗锯齿
11.6 在帧缓冲区读取和写入像素
11.7 多重渲染目标
11.8 小结
第12章 帧缓冲区对象
12.1 为什么使用帧缓冲区对象
12.2 帧缓冲区和渲染缓冲区对象
12.2.1 选择渲染缓冲区与纹理作为帧缓冲区附着的对比
12.2.2 帧缓冲区对象与EGL表面的对比
12.3 创建帧缓冲区和渲染缓冲区对象
12.4 使用帧缓冲区对象
12.4.1 多重采样渲染缓冲区
12.4.2 渲染缓冲区格式
12.5 使用帧缓冲区对象
12.5.1 连接渲染缓冲区作为帧缓冲区附着
12.5.2 连接一个2D纹理作为帧缓冲区附着
12.5.3 连接3D纹理的一个图像作为帧缓冲区附着
12.5.4 检查帧缓冲区完整性
12.6 帧缓冲区位块传送
12.7 帧缓冲区失效
12.8 删除帧缓冲区和渲染缓冲区对象
12.9 删除用作帧缓冲区附着的渲染缓冲区对象
12.10 示例
12.11 性能提示和技巧
12.12 小结
第13章 同步对象和栅栏
13.1 刷新和结束
13.2 为什么使用同步对象
13.3 创建和删除同步对象
13.4 等待和向同步对象发送信号
13.5 示例
13.6 小结
第14章 OpenGLES3.0高级编程
14.1 逐片段照明
14.1.1 使用法线贴图的照明
14.1.2 照明着色器
14.1.3 照明方程式
14.2 环境贴图
14.3 使用点精灵的粒子系统
14.3.1 粒子系统设置
14.3.2 粒子系统顶点着色器
14.3.3 粒子系统片段着色器
14.4 使用变换反馈的粒子系统
14.4.1 粒子系统渲染算法
14.4.2 使用变换反馈发射粒子
14.4.3 渲染粒子
14.5 图像后处理
14.5.1 渲染到纹理设置
14.5.2 模糊片段着色器
14.5.3 眩光
14.6 投影纹理
14.6.1 投影纹理基础
14.6.2 投影纹理所用的矩阵
14.6.3 投影聚光灯着色器
14.7 使用3D纹理的噪声
14.7.1 生成噪声
14.7.2 使用噪声
14.8 过程纹理
14.8.1 过程纹理示例
14.8.2 过程纹理的抗锯齿
14.8.3 关于过程纹理的延伸阅读
14.9 用顶点纹理读取渲染地形
14.9.1 生成一个正方形的地形网格
14.9.2 在顶点着色器中计算顶点法线并读取高度值
14.9.3 大型地形渲染的延伸阅读
14.10 使用深度纹理的阴影
14.10.1 从光源位置渲染到深度纹理
14.10.2 从眼睛位置用深度纹理渲染
14.11 小结
第15章 状态查询
15.1 OpenGLES 3.0实现字符串查询
15.2 查询OpenGL ES实现决定的限制
15.3 查询OpenGLES状态
15.4 提示
15.5 实体名称查询
15.6 不可编程操作控制和查询
15.7 着色器和程序状态查询
15.8 顶点属性查询
15.9 纹理状态查询
15.10 采样器查询
15.11 异步对象查询
15.12 同步对象查询
15.13 顶点缓冲区查询
15.14 渲染缓冲区和帧缓冲区状态查询
15.15 小结
第16章 OpenGLES平台
16.1 在包含Visual Studio的Microsoft Windows上构建
16.2 在UbuntuLinux上构建
16.3 在Android 4.3+ NDK (C++)上构建
16.3.1 先决条件
16.3.2 用AndroidNDK构建示例代码
16.4 在Android 4.3+ SDK上构建(Java)
16.5 在iOS7上构建
16.5.1 先决条件
16.5.2 用Xcode5构建示例代码
16.6 小结
附录A GL_HALF_FLOAT
附录B 内 建 函 数
附录C ES框架API

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

OpenGL ES 3.0编程指南(原书第2版)
    • 名称
    • 类型
    • 大小

    联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon