GAN:实战生成对抗网络
中文名为《GAN:实战生成对抗网络》的英文原版,pdf的页面大小已经调整到阅读舒适的大小,每章节都有详细标签,适合GAN入门者阅读学习的书,最后附上中文版的详细目录仅供下载参考
1 深度学习概述 1
1.1 深度学习的演化 1
1.1.1 sigmoid激发 3
1.1.2 修正线性单元(ReLU) 3
1.1.3 指数线性单元(ELU) 4
1.1.4 随机梯度下降(SGD) 5
1.1.5 学习速率调优 6
1.1.6 正则化 7
1.1.7 权重分享以及池化 8
1.1.8 局部感受野 10
1.1.9 卷积网络(ConvNet) 11
1.2 逆卷积/转置卷积 13
1.2.1 递归神经网络和LSTM 13
1.2.2 深度神经网络 14
1.2.3 判别模型和生成模型的对比 16
1.3 总结 16
2 无监督学习GAN 17
2.1 利用深度神经网络自动化人类任务 17
2.1.1 GAN的目的 18
2.1.2 现实世界的一个比喻 19
2.1.3 GAN的组成 20
2.2 GAN的实现 22
2.2.1 GAN的应用 25
2.2.2 在Keras上利用DCGAN实现图像生成 26
2.2.3 利用TensorFlow实现SSGAN 29
2.3 GAN模型的挑战 38
2.3.1 启动及初始化的问题 38
2.3.2 模型坍塌 38
2.3.3 计数方面的问题 39
2.3.4 角度方面的问题 39
2.3.5 全局结构方面的问题 40
2.4 提升GAN训练效果的方法 41
2.4.1 特征匹配 41
2.4.2 小批量 42
2.4.3 历史平均 42
2.4.4 单侧标签平滑 42
2.4.5 输入规范化 42
2.4.6 批规范化 42
2.4.7 利用ReLU和MaxPool避免稀疏梯度 43
2.4.8 优化器和噪声 43
2.4.9 不要仅根据统计信息平衡损失 43
2.5 总结 43
3 图像风格跨域转换 45
3.1 弥补监督学习和无监督学习之间的空隙 45
3.2 条件GAN介绍 46
3.2.1 利用CGAN生成时尚衣柜 47
3.2.2 利用边界均衡固化GAN训练 51
3.3 BEGAN的训练过程 52
3.3.1 BEGAN的架构 52
3.3.2 利用TensorFlow实现BEGAN 53
3.4 利用CycleGAN实现图像风格的转换 57
3.4.1 CycleGAN的模型公式 58
3.4.2 利用TensorFlow将苹果变成橘子 58
3.4.3 利用CycleGAN将马变为斑马 61
3.5 总结 63
4 从文本构建逼真的图像 65
4.1 StackGAN介绍 65
4.1.1 条件强化 66
4.1.2 StackGAN的架构细节 68
4.1.3 利用TensorFlow从文本生成图像 69
4.2 利用DiscoGAN探索跨域的关系 72
4.2.1 DiscoGAN架构以及模型公式 73
4.2.2 DiscoGAN的实现 75
4.3 利用PyTorch从边框生成手提包 78
4.4 利用PyTorch进行性别转换 80
4.5 DiscoGAN和CycleGAN的对比 82
4.6 总结 82
5 利用多种生成模型生成图像 83
5.1 迁移学习介绍 84
5.1.1 迁移学习的目的 84
5.1.2 多种利用预训练模型的方法 85
5.1.3 利用Keras对车、猫、狗和花进行分类 86
5.2 利用Apache Spark进行大规模深度学习 90
5.2.1 利用Spark深度学习模块运行预训练模型 91
5.2.2 利用BigDL运行大规模手写数字识别 94
5.2.3 利用SRGAN生成高清晰度图像 98
5.2.4 SRGAN的架构 99
5.3 利用DeepDream生成梦幻的艺术图像 105
5.4 在TensorFlow上利用VAE生成手写数字 107
5.5 VAE在真实世界的比喻 108
5.6 GAN和VAE两个生成模型的比较 111
5.7 总结 111
6 将机器学习带入生产环境 113
6.1 利用DCGAN构建一个图像矫正系统 113
6.1.1 构建图像矫正系统的步骤 115
6.1.2 在生产环境部署模型的挑战 117
6.2 利用容器的微服务架构 118
6.2.1 单体架构的缺陷 118
6.2.2 微服务架构的优点 118
6.2.3 使用容器的优点 119
6.3 部署深度模型的多种方法 120
6.3.1 方法1——离线建模和基于微服务的容器化部署 120
6.3.2 方法2——离线建模和无服务器部署 121
6.3.3 方法3——在线学习 121
6.3.4 方法4——利用托管机器学习服务 121
6.4 在Docker上运行基于Keras的深度模型 121
6.5 在GKE上部署深度模型 124
6.6 利用AWS Lambda和Polly进行无服务器的图像识别并生成音频 127
6.6.1 修改Lambda环境下代码和包的步骤
6.6.2 利用云托管服务进行人脸识别
6.7 总结
Python计算机视觉编程 Jan Erik Solem 著 朱文涛 袁勇 译
高清非扫描版资源,配有详细的书签(我自己整理的),书中每个章节内容简介如下:
第1 章 “基本的图像操作和处理”介绍用来处理图像的基本工具及本书用到的核心
Python 模块,同时涵盖了很多贯穿全书的基础示例。
第2 章 “局部图像描述子”讲解检测图像兴趣点的方法,以及怎样使用它们在图像
间寻找相应点和区域。
第3 章 “图像到图像的映射”描述图像间基本的变换及其计算方法。涵盖从图像扭
曲到创建全景图像的示例。
第4 章 “照相机模型与增强现实”介绍如何对照相机建模、生成从三维空间到图像
特征的图像投影,并估计照相机视点。
第5 章 “多视图几何”讲解如何对具有相同场景、多视图几何基本面的图像进行处
理,以及怎样从图像计算三维重建。
第6 章 “图像聚类”介绍一些聚类方法,并展示如何基于相似性或内容对图像进行
分组和组织。
第7 章 “图像搜索”展示如何建立有效的图像检索技术,以便能够存储图像的表示,
并基于图像的视觉内容搜索图像。
前言 | XV
第8 章 “图像内容分类”描述了图像内容分类算法,以及怎样使用它们识别图像中
的物体。
第9 章 “图像分割”介绍了通过聚类、用户交互或图像模型,将图像分割成有意义
区域的不同技术。
第10 章 “OpenCV”展示怎样使用常用的OpenCV 计算机视觉库Python 接口,以及
如何处理视频及摄像头的输入。
Unity的Tank教程
Unity的Asset Store上面的Tanks!Tutorial文件,文件来源地址https://www.assetstore.unity3d.com/en/#!/content/46209,需要Unity 5.2.0及以上的版本才能支持,压缩包里包含unity项目文件和一个指导的Pdf
全景探秘游戏设计艺术(文字版)
The Art of Game Design A Book of Lenses 一书,中文名 全景探秘游戏设计艺术,资源为本书的英文原版,高清非扫描的文字版,配有详细的书签
3D数学基础:图形与游戏开发(英文原版)
《3D数学基础:图形与游戏开发》一书的英文原版电子档,高清,绝对不是扫描版,配有详细的书签,可用来与中文版互查使用,最后配上中文版的目录以供大家参考下载
第1章 简介
1.1 什么是3D数学
1.2 为什么选择本书
1.3 阅读本书需要的基础知识
1.4 概览
第2章 笛卡尔坐标系统
2.1 1D数学
2.2 2D笛卡尔数学
2.3 从2D到3D
2.4 练习
第3章 多坐标系
3.1 为什么要使用多坐标系
3.2 一些有用的坐标系
3.3 嵌套式坐标系
3.4 描述坐标系
3.5 坐标系转换
3.6 练习
第4章 向量
4.1 向量——数学定义
4.2 向量——几何定义
4.3 向量与点
4.4 练习
第5章 向量运算
5.1 线性代数与几何
5.2 符号约定
5.3 零向量
5.4 负向量
5.5 向量大小(长度或模)
5.6 标量与向量的乘法
5.7 标准化向量
5.8 向量的加法和减法
5.9 距离公式
5.10 向量点乘
5.11 向量叉乘
5.12 线性代数公式
5.13 练习
第6章 3D向量类
……
第7章 矩阵
第8章 矩阵和线性变换
第9章 矩阵的更多知识
第10章 3D中的方位与角位移
第11章 C++实现
第12章 几何图元
第13章 几何检测
第14章 三角网络
第15章 图形数学
第16章 可见性检测
第17章 后记
附录A 简单的数学概念
附录B 参考文献
WINDOWS游戏编程大师技巧(第二版)
WINDOWS游戏编程大师技巧(第二版),配有详细的书签目录
对于这本书,现在的游戏编程一般是基于3D编程,因此本书的内容略显陈旧,但是书中关于Windows编程的部分,关于windows下消息、窗口等等部分,在3D编程中仍需用到,因此,此书可以用以查询,了解windows编程一用,最后附上本书详细的目录,供大家参考是否需要下载此书
第一部分Windows编程基础
第1章学海无涯
1.1历史一瞥
1.2设计游戏
1.3游戏类型
1.4集思广益
1.5设计文档和情节串联图板
1.6使游戏具有趣味性
1.7游戏的构成
1.8常规游戏编程指导规范
1.9使用工具
1.10从准备到完成——使用编译器
1.11示例:FreakOut
1.12小结
第2章Windows编程模型
2.1Windows的起源
2.1.1早期版本的Windows
2.1.2Windows3.x
2.1.3Windows95
2.1.4Windows98
2.1.5WindowsME
2.1.6WindowsXP
2.1.7WindowsNT/2000
2.1.8Windows基本架构:Win9X/NT
2.2多任务和多线程
2.2.1获取线程的信息
2.2.2事件模型
2.3按照微软风格编程:匈牙利符号表示法
2.3.1变量的命名
2.3.2函数的命名
2.3.3类型和常量的命名
2.3.4类的命名
2.3.5参数的命名
2.4世界上最简单的Windows程序
2.4.1总是从WinMain()开始
2.4.2程序剖析
2.4.3选择一个信息框
2.5现实中的Windows应用程序
2.6Windows类
2.7注册Windows类
2.8创建窗口
2.9事件处理程序
2.10主事件循环
2.11产生一个实时事件循环
2.12打开多个窗口
2.13小结
第3章高级Windows编程
3.1使用资源
3.1.1整合资源
3.1.2使用图标资源
3.1.3使用光标资源
3.1.4创建字符串表资源
3.1.5使用.WAV声音资源
3.1.6使用编译器创建.RC文件
3.2使用菜单
3.2.1创建菜单
3.2.2装载菜单
3.2.3响应菜单事件消息
3.3GDI(图形设备接口)简介
3.3.1重拾WM_PAINT信息
3.3.2视频显示基础和色彩(VideoDisplayBasicsandColor)
3.3.3RGB和调色板模式
3.3.4基本文本显示
3.4处理重要事件
3.4.1Windows操作
3.4.2处理键盘事件
3.4.3处理鼠标事件
3.5自行发送消息
3.6小结
第4章WindowsGDI、控件和灵感
4.1高级GDI绘图
4.1.1掀开图形设备描述表的盖头来
4.1.2颜色、画笔和画刷
4.1.3使用画笔
4.1.4使用画刷
4.2点、线、平面多边形和圆
4.2.1绘制点
4.2.2绘制线段
4.2.3绘制矩形
4.2.4绘制圆
4.2.5绘制多边形
4.3深入文本和字体
4.4定时高于一切
4.4.1WM_TIMER消息
4.4.2低层定时操作
4.5使用控件
4.5.1按钮
4.5.2向子控件发送消息
4.6获取信息
4.7T3D游戏控制台程序
4.8小结
第二部分DirectX和2D基础
第5章DirectX基础知识和令人生畏的COM
5.1DirectX基础
5.1.1HEL和HAL
5.1.2更多的DirectX基础类
5.2COM:是微软的杰作,还是魔鬼的杰作
5.2.1COM对象究竟是什么
5.2.2接口标识符和GUID的详细内容
5.2.3创建一个类COM对象
5.2.4COM的简要回顾
5.2.5可运行的COM程序
5.3应用DirectXCOM对象
5.3.1COM和函数指针
5.3.2创建和使用DirectX界面
5.3.3接口查询
5.4COM的前景
5.5小结
第6章初次邂逅DirectDraw
6.1DirectDraw的接口
6.1.1接口的特性
6.1.2组合使用接口
6.2创建DirectDraw对象
6.2.1对DirectDraw进行错误处理
6.2.2顺便提一下接口
6.3与Windows协作
6.4设置模式
6.5色彩的奥秘
6.6创建显示表面
6.6.1创建一个主显示表面
6.6.2关联调色板
6.6.3绘制像素
6.6.4清理资源
6.7小结
第7章高级DirectDraw和位图图形
7.1使用高彩模式
7.1.116位高彩模式
7.1.2获取像素格式
7.1.324/32位真彩色模式
7.2双缓冲
7.3表面动态
7.4页面切换
7.5显存块移动单元(Blitter)
7.5.1使用Blitter进行内存填充
7.5.2从一个表面向另一个表面复制位图
7.6基础裁剪知识
7.6.1将像素按视口裁剪
7.6.2位图裁剪技巧
7.6.3使用IDirectDrawClipper进行DirectDraw裁剪
7.7使用位图
7.7.1载入.BMP文件
7.7.2使用位图
7.7.3载入8位位图
7.7.4载入16位位图
7.7.5载入24位位图
7.7.6总结位图
7.8离屏表面
7.8.1创建离屏表面
7.8.2在离屏表面上进行Blitting
7.8.3设置Blitter
7.8.4色彩键
7.8.5源色彩键
7.8.6目标色彩键
7.8.7使用Blitter(终于!)
7.9位图的旋转和缩放
7.10离散采样理论
7.11色彩效果
7.11.1256色模式下的色彩动画
7.11.2256色模式下的色彩旋转
7.11.3使用RGB模式的技巧
7.12手动色彩变换及查询表
7.13新的DirectX色彩和Gamma控制接口
7.14将GDI和DirectX联用
7.15DirectDraw的庐山真面目
7.15.1主DirectDraw对象
7.15.2关于表面
7.15.3使用调色板
7.16在窗口模式下使用DirectDraw
7.17小结
第8章矢量光栅化及2D变换
8.1绘制线条
8.1.1Bresenham算法
8.1.2算法的速度优化
8.2基本2D图形裁剪
8.2.1利用点斜式计算两条直线的交点
8.2.2利用一般式计算两条直线的交点
8.2.3利用矩阵式计算两条直线的交点
8.2.4裁剪直线
8.2.5Cohen-Sutherland算法
8.3线框多边形
8.3.1多边形数据结构
8.3.2多边形的绘制及裁剪
8.42D平面里的变换
8.4.1平移
8.4.2旋转
8.4.3缩放
8.5矩阵引论
8.5.1单位矩阵
8.5.2矩阵加法
8.5.3矩阵乘法
8.5.4使用矩阵进行变换
8.6平移
8.7缩放
8.8旋转
8.9填充实心多边形
8.9.1三角形和四边形类型
8.9.2绘制三角形和四边形
8.9.3三角形解构详述
8.9.4四边形光栅化的一般性讨论
8.9.5多边形的三角化
8.10多边形碰撞检测
8.10.1接近度、边界球/圆
8.10.2边界盒
8.10.3点包含
8.11深入定时和同步
8.12卷轴和摇镜头
8.12.1页面卷轴引擎
8.12.2均匀平铺(Tile)显示引擎
8.12.3稀疏位图平铺显示引擎
8.13伪3D等轴测引擎
8.13.1方法1:基于单元,全二维
8.13.2方法2:基于全屏,具有一些二维或三维的碰撞网络
8.13.3方法3:采用全三维数学运算,使用一个固定的相机视角
8.14T3DLIB1函数库
8.14.1引擎架构
8.14.2新的游戏编程控制台程序
8.14.3基本定义
8.14.4可用的宏
8.14.5数据类型和结构
8.14.6全局定义
8.14.7DirectDraw接口
8.14.82D多边形函数
8.14.92D基本图元函数
8.14.10数学和误差函数
8.14.11位图函数
8.14.12调色板函数
8.14.13实用工具函数
8.15BOB引擎
8.16小结
第9章DirectInput输入和力反馈
9.1输入循环
9.2DirectInput序曲
9.2.1DirectInput组件
9.2.2设置DirectInput的一般步骤
9.2.3数据采集模式
9.2.4创建主DirectInput对象
9.2.5101键盘
9.2.6读数据过程中的问题:重获取
9.2.7捕捉鼠标
9.2.8使用游戏杆
9.2.9将输入消息化
9.3力反馈
9.3.1力反馈的物理原理
9.3.2设置力反馈
9.3.3力反馈演示程序
9.4编写一个广泛适用的输入系统:T3DLIB2.CPP
9.5小结
第10章用DirectSound和DirectMusic演奏乐曲
10.1在PC上对声音编程
10.2从此有了声音…
10.3数码声音与MIDI比较——音质好且存储省
10.3.1数码声音——从“位”开始
10.3.2合成声音与MIDI
10.3.3MIDI概述
10.4发声硬件
10.4.1波表合成
10.4.2波导合成
10.5数码录音:设备和技术
10.5.1录制声音
10.5.2处理声音
10.6DirectSound中的麦克风
10.7初始化DirectSound
10.7.1理解协作等级
10.7.2设定协作等级
10.8主声音缓冲区与辅助声音缓冲区
10.8.1使用辅助缓冲区
10.8.2创建辅助声音缓冲区
10.8.3把数据写入辅助声音缓冲区
10.9渲染声音
10.9.1播放声音
10.9.2停止播放
10.9.3控制音量
10.9.4调整频率
10.9.5调整声道平衡
10.10用DirectSound反馈信息
10.11从磁盘中读取声音数据
10.11.1.WAV文件格式
10.11.2读取.WAV文件
10.12DirectMusic:伟大的试验
10.13DirectMusic的体系结构
10.14初始化DirectMusic
10.14.1初始化COM
10.14.2创建一个演奏对象
10.14.3给演奏对象增加端口
10.15加载一个MIDI段
10.15.1创建一个加载程序
10.15.2加载MIDI文件
10.16操作MIDI段
10.16.1播放一个MIDI段
10.16.2停止一个MIDI段
10.16.3检查MIDI段的状态
10.16.4释放一个MIDI段
10.16.5关闭DirectMusic
10.16.6一些DirectMusic的实例
10.17T3DLIB3声音和乐曲库
10.17.1头文件
10.17.2类型
10.17.3全局变量
10.17.4DirectSoundAPI封装
10.17.5DirectMusicAPI封装
10.18小结
第三部分核心游戏编程
第11章算法、数据结构、内存管理和多线程
11.1数据结构
11.1.1静态结构和数组
11.1.2链表
11.2算法分析
11.3递归
11.4树结构
11.4.1建立二分查找树(BST)
11.4.2搜索BST
11.5优化理论
11.5.1运用你的头脑
11.5.2数学技巧
11.5.3定点运算
11.5.4循环体展开
11.5.5查找表
11.5.6汇编语言
11.6制作演示
11.6.1预先记录的演示
11.6.2由人工智能控制的演示
11.7保存游戏的手段
11.8实现多人游戏
11.8.1轮流
11.8.2分屏
11.9多线程编程技术
11.9.1多线程编程的术语
11.9.2为何要在游戏中使用线程
11.9.3取得一个线程
11.9.4线程间的消息传递
11.9.5等待合适时机
11.9.6多线程和DirectX
11.9.7高级多线程编程
10.10小结
第12章人工智能
12.1人工智能初步
12.2确定性AI算法
12.2.1随机运动
12.2.2跟踪算法
12.2.3反跟踪:闪避算法
12.3模式以及基本控制脚本的编写
12.3.1基本模式
12.3.2具备条件逻辑处理的模式
12.4行为状态系统建模
12.4.1基本状态机
12.4.2加入更多表现个性的行为
12.5用软件对记忆和学习进行建模
12.6计划树和决策树
12.6.1计划编程
12.6.2实现真正的计划生成器
12.7寻路
12.7.1试探法(TrialandError)
12.7.2轮廓跟踪
12.7.3碰撞规避跟踪
12.7.4路点寻路
12.7.5一个赛车例子
12.7.6可靠的寻路
12.8高级AI脚本
12.8.1设计脚本语言
12.8.2使用C/C++编译器
12.9人工神经网络
12.10遗传算法
12.11模糊逻辑
12.11.1普通集合论
12.11.2模糊集合理论
12.11.3模糊语言变量及其规则
12.11.4模糊流形与成员关系
12.11.5模糊关联矩阵
12.11.6用模糊化的输入处理FAM
12.11.7暖融融
12.12为游戏创造真正的AI
12.13小结
第13章基本物理建模
13.1基本物理学定律
13.1.1质量(m)
13.1.2时间(t)
13.1.3位置(s)
13.1.4速率(v)
13.1.5加速度(a)
13.1.6力(F)
13.1.7多维空间中的力
13.1.8动量(P)
13.2线性动量的物理性质:守恒与传递
13.3模拟万有引力效果
13.3.1模拟重力井
13.3.2模拟炮弹弹道
13.4讨厌的摩擦力
13.4.1摩擦基本概念
13.4.2斜面上的摩擦力(高级)
13.5基本的特殊碰撞反应
13.5.1简单的x,y反弹物理
13.5.2计算任意方向上的平面碰撞反应
13.5.3矢量反射示例
13.5.4线段的交点
13.6实际2D物体间的精确碰撞响应(高级)
13.7解决n-t坐标系统
13.8简单运动学
13.8.1求解正向运动学问题
13.8.2解决反向运动学问题
13.9粒子系统
13.9.1每颗粒子都需要的东西
13.9.2设计粒子引擎
13.9.3粒子引擎软件
13.9.4产生初始条件
13.9.5整合微粒系统
13.10创建游戏的物理模型
13.10.1物理建模的数据结构
13.10.2基于帧的模拟与基于时间的模拟
13.11小结
第14章文字时代
14.1什么是文字游戏
14.2文字游戏如何工作
14.3从外部世界获得输入
14.4语言分析和解析
14.4.1词法分析
14.4.2句法分析
14.4.3语义分析
14.5组成游戏世界
14.5.1表示场景
14.5.2放置物体
14.5.3让事情发生
14.5.4自由移动
14.5.5物品系统
14.6实现视觉、听觉和嗅觉
14.6.1听觉
14.6.2嗅觉
14.6.3视觉
14.7实时响应
14.8错误处理
14.9造访ShadowLand
14.10ShadowLand中使用的语言
14.11编译和运行ShadowLand
14.12小结
第15章综合运用
15.1Outpost的设计初稿
15.1.1游戏背景
15.1.2设计游戏玩法
15.2用于编写游戏的工具
15.3游戏场景:在太空中卷动
15.4玩家控制的飞船:鬼怪号
15.5小行星带
15.6敌人
15.6.1边哨(Outpost)
15.6.2捕食者太空雷
15.6.3战舰
15.7“宝物”
15.8HUD
15.9粒子系统
15.10玩游戏
15.11编译Outpost
15.12结束语
第四部分附录
附录A光盘内容简介
附录B安装DirectX和使用C/C++编译器
附录C数学和三角学回顾
附录DC++入门
附录E游戏编程资源
附录FASCII表
Introduction to 3D Game Programming with DirectX 9.0
Introduction to 3D Game Programming with DirectX 9.0,中文书名为《DirectX 9.0 3D 游戏开发编程基础》,资源是这本书的英文原版,配有详细的书签目录
最后附上其中文目录
目录
第Ⅰ部分 基础知识
必备的数学知识 3
3D空间中的向量 3
向量相等 7
计算向量的长度 7
向量的规范化 8
向量加法 9
向量减法 9
数乘 10
点积 11
叉积 11
矩阵 12
矩阵相等、矩阵数乘和矩阵加法 13
矩阵乘法 14
单位矩阵 15
逆矩阵 15
矩阵的转置 16
D3DX矩阵 16
基本变换 19
平移矩阵 20
旋转矩阵 21
比例变换矩阵 23
几何变换的组合 24
向量变换的一些函数 25
平面(选读) 26
D3DXPLANE 27
点和平面的空间关系 27
平面的创建 28
平面的规范化 29
平面的变换 29
平面中到某一点的最近点 30
射线(选读) 31
射线 31
射线与平面的相交 32
小结 32
第Ⅱ部分 Direct3D基础
第1章 初始化Direct3D 37
1.1 Direct3D概述 37
1.1.1 REF设备 38
1.1.2 D3DDEVTYPE 38
1.2 COM(组件对象模型) 38
1.3 预备知识 39
1.3.1 表面 39
1.3.2 多重采样 41
1.3.3 像素格式 42
1.3.4 内存池 42
1.3.5 交换链和页面置换 43
1.3.6 深度缓存 44
1.3.7 顶点运算 45
1.3.8 设备性能 45
1.4 Direct3D的初始化 46
1.4.1 获取接口IDirect3D9的指针 47
1.4.2 校验硬件顶点运算 47
1.4.3 填充D3DPRESENT_PARAMETER结构 48
1.4.4 创建IDirect3DDevice9接口 50
1.5 例程:Direct3D的初始化 51
1.5.1 d3dUtility.h/cpp 52
1.5.2 例程框架 53
1.5.3 例程:D3D初始化 54
1.6 小结 56
第2章 绘制流水线 58
2.1 模型表示 59
2.1.1 顶点格式 60
2.1.2 三角形单元 60
2.1.3 索引 61
2.2 虚拟摄像机 62
2.3 绘制流水线 63
2.3.1 局部坐标系 64
2.3.2 世界坐标系 64
2.3.3 观察坐标系 65
2.3.4 背面消隐 67
2.3.5 光照 68
2.3.6 裁剪 68
2.3.7 投影 69
2.3.8 视口变换 70
2.3.9 光栅化 72
2.4 小结 72
第3章 Direct3D中的绘制 73
3.1 顶点缓存与索引缓存 73
3.1.1 创建顶点缓存和索引缓存 73
3.1.2 访问缓存内容 76
3.1.3 获取顶点缓存和索引缓存的信息 77
3.2 绘制状态 78
3.3 绘制的准备工作 78
3.4 使用顶点缓存和索引缓存进行绘制 79
3.4.1 IDirect3DDevice9::DrawPrimitive 79
3.4.2 IDirect3DDevice9::DrawIndexedPrimitive 80
3.4.3 Begin/End Scene 81
3.5 D3DX几何体 81
3.6 例程:三角形、立方体、茶壶、D3DXCreate* 83
3.7 小结 87
第4章 颜色 89
4.1 颜色表示 89
4.2 顶点颜色 92
4.3 着色 92
4.4 例程:具有颜色的三角形 93
4.5 小结 95
第5章 光照 97
5.1 光照的组成 97
5.2 材质 98
5.3 顶点法线 100
5.4 光源 102
5.5 例程:光照 105
5.6 一些附加例程 108
5.7 小结 108
第6章 纹理映射 109
6.1 纹理坐标 110
6.2 创建并启用纹理 111
6.3 纹理过滤器 112
6.4 多级渐进纹理 113
6.4.1 多级渐进纹理过滤器 114
6.4.2 使用多级渐进纹理 114
6.5 寻址模式 114
6.6 例程:纹理四边形 116
6.7 小结 118
第7章 融合技术 119
7.1 融合方程 119
7.2 融合因子 121
7.3 透明度 122
7.3.1 Alpha通道 122
7.3.2 指定Alpha来源 123
7.4 用DirectX Texture Tool创建Alpha通道 123
7.5 例程:透明效果 125
7.6 小结 127
第8章 模板 128
8.1 模板缓存的使用 129
8.1.1 模板缓存格式的查询 129
8.1.2 模板测试 130
8.1.3 模板测试的控制 130
8.1.4 模板缓存的更新 132
8.1.5 模板写掩码 132
8.2 例程:镜面效果 133
8.2.1 成像中的数学问题 133
8.2.2 镜面效果实现概述 134
8.2.3 代码解析 135
8.3 例程:Planer Shadows 139
8.3.1 平行光阴影 139
8.3.2 点光源产生的阴影 140
8.3.3 阴影矩阵 141
8.3.4 使用模板缓存防止二次融合 142
8.3.5 代码解析 143
8.4 小结 144
第Ⅲ部分 Direct3D的应用
第9章 字体 149
9.1 ID3DXFont接口 149
9.1.1 创建一个ID3DXFont接口对象 149
9.1.2 绘制文本 150
9.1.3 计算每秒绘制的帧数 151
9.2 CD3DFont 152
9.2.1 创建CD3DFont类的实例 152
9.2.2 绘制文本 152
9.2.3 清理 153
9.3 D3DXCreateText函数 153
9.4 小结 155
第10章 网格(一) 156
10.1 几何信息 156
10.2 子集和属性缓存 157
10.3 绘制 159
10.4 网格优化 159
10.5 属性表 161
10.6 邻接信息 163
10.7 克隆 164
10.8 创建网格(D3DXCreateMeshFVF) 165
10.9 例程:网格的创建与绘制 167
10.10 小结 172
第11章 网格(二) 174
11.1 ID3DXBuffer 174
11.2 XFile 175
11.2.1 加载XFile文件 175
11.2.2 XFile材质 176
11.2.3 例程:XFile 177
11.2.4 生成顶点法线 180
11.3 渐进网格 181
11.3.1 生成渐进网格 182
11.3.2 顶点属性权值 183
11.3.3 ID3DXPMesh接口方法 183
11.3.4 例程:Progressive Mesh 184
11.4 外接体 187
11.4.1 一些新的特殊常量 189
11.4.2 外接体的类型 189
11.4.3 例程:Bounding Volumes 190
11.5 小结 192
第12章 设计一个灵活的Camera类 193
12.1 Camera类的设计 193
12.2 实现细节 195
12.2.1 观察矩阵(取景变换矩阵,View Matrix)的计算 195
12.2.2 绕任意轴的旋转 198
12.2.3 俯仰、偏航和滚动 199
12.2.4 行走、扫视和升降 201
12.3 例程:Camera 202
12.4 小结 205
第13章 地形绘制基础 206
13.1 高度图 207
13.1.1 创建高度图 207
13.1.2 加载RAW文件 208
13.1.3 访问和修改高度图 209
13.2 创建地形几何信息 210
13.2.1 顶点的计算 212
13.2.2 索引的计算 214
13.3 纹理映射 216
13.4 光照 219
13.4.1 概述 219
13.4.2 坐标方格的明暗度计算 220
13.4.3 对地形进行着色 222
13.5 在地形中“行走” 222
13.6 例程:Terrain 226
13.7 一些改进 228
13.8 小结 229
第14章 粒子系统 230
14.1 粒子和点精灵 230
14.1.1 结构格式 230
14.1.2 点精灵的绘制状态 231
14.1.3 粒子及其属性 233
14.2 粒子系统的组成 234
14.2.1 绘制一个粒子系统 238
14.2.2 随机性 243
14.3 具体的粒子系统 243
14.3.1 例程:Snow System 244
14.3.2 例程:Firework 246
14.3.3 例程:Particle Gun 248
14.4 小结 250
第15章 拾取 251
15.1 屏幕到投影窗口的变换 253
15.2 拾取射线的计算 254
15.3 对射线进行变换 255
15.4 射线/物体相交判定 256
15.5 例程:Picking 258
15.6 小结 259
第Ⅳ部分 着色器和效果
第16章 高级着色语言(HLSL)入门 263
16.1 HLSL着色器程序的编制 264
16.1.1 全局变量 266
16.1.2 输入和输出结构 266
16.1.3 入口函数 267
16.2 HLSL着色器程序的编译 268
16.2.1 常量表 268
16.2.2 HLSL着色器程序的编译 272
16.3 变量类型 274
16.3.1 标量类型 274
16.3.2 向量类型 274
16.3.3 矩阵类型 275
16.3.4 数组 277
16.3.5 结构体 277
16.3.6 关键字typedef 277
16.3.7 变量的前缀 278
16.4 关键字、语句及类型转换 279
16.4.1 关键字 279
16.4.2 基本程序流程 279
16.4.3 类型转换 280
16.5 运算符 281
16.6 用户自定义函数 282
16.7 内置函数 284
16.8 小结 286
第17章 顶点着色器入门 287
17.1 顶点声明 288
17.1.1 顶点声明的描述 288
17.1.2 顶点声明的创建 291
17.1.3 顶点声明的启用 291
17.2 顶点数据的使用 291
17.3 使用顶点着色器的步骤 293
17.3.1 顶点着色器的编写与编译 294
17.3.2 顶点着色器的创建 294
17.3.3 顶点着色器的设置 294
17.3.4 顶点着色器的销毁 295
17.4 例程:Diffuse Lighting 295
17.5 例程:Cartoon Rendering 302
17.5.1 卡通着色 303
17.5.2 卡通着色的顶点着色器代码 304
17.5.3 轮廓的勾勒 307
17.5.4 实现轮廓勾勒的顶点着色器代码 310
17.6 小结 312
第18章 像素着色器入门 313
18.1 多重纹理概述 313
18.1.1 启用多重纹理 315
18.1.2 多重纹理坐标 316
18.2 像素着色器的输入和输出 317
18.3 使用像素着色器的步骤 318
18.3.1 像素着色器的编写和编译 318
18.3.2 像素着色器的创建 318
18.3.3 像素着色器的设置 319
18.3.4 像素着色器的销毁 319
18.4 HLSL采样器对象 319
18.5 例程:像素着色器中的多重纹理 321
18.6 小结 329
第19章 效果框架 331
19.1 手法与路径 331
19.2 更多HLSL的内置对象 333
19.2.1 纹理对象 333
19.2.2 采样器对象与采样器状态 333
19.2.3 顶点着色器对象和像素着色器对象 334
19.2.4 字符串 335
19.2.5 注释 335
19.3 效果文件中的设备状态 336
19.4 创建一种效果 337
19.5 常量的设置 338
19.6 使用一种效果 340
19.6.1 效果句柄的获取 341
19.6.2 效果的激活 341
19.6.3 效果的启用 341
19.6.4 当前绘制路径的设置 342
19.6.5 效果的终止 342
19.6.6 一个例子 342
19.7 例程:效果文件中的光照和纹理 343
19.8 例程:雾效 349
19.9 例程:卡通效果 352
19.10 EffectEdit 353
19.11 小结 354
附录 Windows编程入门 355
参考文献 372
Windows DirectX Graphics Documentation
Windows DirectX Graphics Documentation是DirectX SDK的官方说明文档,其网页版为:https://msdn.microsoft.com/en-us/library/ee663301(v=VS.85).aspx
如果你已经安装了DirectX SDK,那么也大可不必下载此文档,该文档在安装目录下的Documentation文件夹里可以找到
Python标准库源码
《Python标准库》一书,原名《The Python Standard Library by Example》,作者Doug Hellmann,中文版书中所有源码,适用于Python2.0以上版本,但是部分在Python3.0以上版本不可用
锐捷win8和win10可用客户端
win8和win10下可用的锐捷客户端版本,亲测可用,版本号4.8.5
Java编程风格 英文非扫描版
Java编程风格电子书,英文原版,Java代码书写的经典指导书,学习Java代码书写风格以及命名规则的圣经
Java编程风格
Java代码编程的风格的介绍以及推荐,很好的给出了编写Java甚至是其他代码的一些良好的编程习惯,对于Java初学者有较好的指导意义
Java编程思想参考答案代码及文档
Java编程思想答案代码,以及答案文档
其中文档是英文版本
Java编程思想(第四版)英文电子书(非扫描版)
Java编程思想第四版英文电子书,有两种版本,分别都配了书签,可供选择
重构:改善既有代码的设计(英文原版和德语版)
软件开发的经典著作,生动阐述重构原理和具体做法,普通程序员进阶到编程高手必须修炼的秘笈
《重构:改善既有代码的设计》一书英文原版,文件中有两个英文版,均配有每章书签,同时有一个德语版本供参考
凝聚型层次聚类的matlab代码
代码说明
代码仅供学习研究,未经允许,请勿擅自商用。
1.输入文件格式
输入的文件要求为N行两列的形式,两列分别对应,输入数据点的X轴坐标和Y轴坐标。
输入文件格式示例如下:
0.821794 -0.0462153
1.03929 0.060835
1.12046 0.0745568
1.02233 0.0514739
2.代码支持的凝聚层次聚类算法
通过简要的修改代码中函数的参数,代码可以支持不同的凝聚方法,支持的凝聚方法如下,默认的为代码本身算法:
单连接算法(默认,最近邻聚类算法,最短距离法,最小生成树算法);全连接算法(最远邻聚类算法,最长距离法);未加权平均距离法;加权平均法;质心距离法;加权质心距离法;内平方距离法(最小方差算法)
3.代码支持的距离(相似度)度量公式
通过简要的修改代码,代码支持计算距离的过程采用不同的距离或相似度度量公式,支持的距离(相似度)公式如下,默认为代码本身才采用的距离公式:
欧氏距离(默认);标准化欧氏距离;马氏距离;布洛克距离(曼哈顿距离,城市街区距离);闵可夫斯基(明可夫斯基)距离;余弦相似度;相关性相似度;汉明距离;Jaccard相似度;切比雪夫距离。
颜色查询工具
基于java开发的颜色查询工具
可以根据RGB值查询其对应的颜色,
也可以指定颜色查询其对应的RGB值
图片坐标获取工具
导入图片,可以通过点击的方式获得图片中点的坐标,
并且可以在图片上添加辅助线,以帮助区分图中各个点
设计模式 可复用面向对象软件的基础
设计模式:可复用面向对象软件的基础
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides经典作品
英文原版文字版书籍,配有完整的目录标签,可以用来对照看中文版
实话说,中文版翻译得真的不咋地,查英文原版有些就很明了了
Java原生支持的音频文件
Java原生支持的音频文件
歌曲名liekkas 很好听
可以用于Java读取音频文件测试
如果需要Java支持更多的音频
建议查阅JMF
Java大学教程 书上源码
Harvey M. Deitel 和 Paul J. Deitel的Java大学教程(Java How to program)原书第九版的书上源码
书的pdf版本我也有上传
Java大学教程适合Java初学者阅读
Java大学教程英文第九版
Java大学教程的第九版
本书是全英文版的pdf高清
带有每章节的书签
并不是扫描版
书上的所讲内容可以通过pdf搜索到
本书是一本适合初学Java的人阅读的教程
可以下载留作备查的资料
MFC拖拽画圆工程(可修改颜色、清空画板)
这是一个简单的MFC单文档程序,实现的主要功能是,在窗口中点击鼠标左键,确定所画圆的圆心,然后通过拖拽鼠标以确定圆的半径,鼠标左键松开后,一个圆形即在窗口画出。在完成该功能的情况下,要求在窗口所画圆不超过10个,并且提供修改画图颜色,以及清空窗口所画视图,显示各圆心坐标的三组对话框实现的功能。
数据结构与算法分析C++版 Clifford A. Shaffer著版本源代码
数据结构与算法分析C++版 Clifford A. Shaffer著的版本的可用的源代码
值得学习
ASCII码表(完整版0-255)
ASCII码表完整版,收录了码值0-255的字符及其码值对照,PDF格式,表格清晰,便于查询和检阅
C++程序设计 谭浩强 扫描版
谭浩强 《C++程序设计》 书的扫描完整版 一共500多页
值得初学C++的人阅读
数据结构与算法分析C++版 Clifford A. Shaffer著
数据结构与算法分析C++版 Clifford A. Shaffer著
最新修改的第三版书稿的英文版
是学习数据结构的好书
NS网络模拟和协议仿真 书上源代码 黄化吉 冯穗力 秦丽姣 陆宏治 人民邮电出版社
人民邮电出版社出版的NS网络模拟和协议仿真一书中的源代码,书本的作者是黄化吉 冯穗力 秦丽姣 陆宏治
凯撒加密程序 C++编写
使用C++面向对象的方法编写的改进版的凯撒加密算法,内附编译好的可执行文件和源代码,以及使用说明书
java实现的动画电子时钟
用java编程实现,采用MediaTracker来监视图像的加载,压缩包中的图片文件,请与编译后的class文件放在一起,如果用的是eclipse请放在工程文件夹的bin文件夹中
EDA教程 VHDL编程必须
VHDL的EDA编程教程
值得学习
本书从VHDL语言发源讲起
一直到VHDL各种实现