从“1”开始3D编程
微软图形系统研发专家教你从“1”开始3D编程,透彻理解3D世界的数学几何原理,轻松掌握3D编程技能。

作者:徐星

丛书名:清华科技大讲堂

定价:49.8元

印次:1-1

ISBN:9787302548041

出版日期:2020.07.01

印刷日期:2020.06.28

图书责编:黄芝

图书分类:零售

电子书
在线购买
分享
内容简介
作者简介
前言序言
资源下载
查看详情 查看详情 查看详情

本书推导解释了3D世界的1的具体含义,包括3D编程最常使用的5个坐标1的意义。对于透视投影的3D坐标1,推导了用户使用的透视投影变换。原创性地提出了一个透视投影的一般模型。基于这个一般模型做了一些数学算法上的改进,得到了基于透视除法的透视投影。此外,也分析了模型视图变换,窗口变换,纹理映射等对3D世界的1的影响。对于正交投影,则分析了基于正交投影的Skia的顶点坐标,纹理坐标特点,一些高级的3D编程概念如光线追踪,延迟渲染,阴影纹理等。

徐星,2007年硕士毕业于武汉大学无线电物理专业,工作后专注在操作系统的图形基础框架的开发。目前就职于Intel公司,从事Chromium图形系统的研发工作,是Chromium committer。

前言 本书源起于十年前作者从事Android图形编程时,对3D图形系统单位1的思考。2010年,是各大手机品牌和手机设计厂商热火朝天地定制Android界面的一年。在这股界面定制浪潮中,出现了很多3D桌面。当时作者所在的团队负责优化一个开源的3D桌面。这个3D桌面是一个六棱柱,棱柱的每个侧面都贴上了应用程序的图标。为了优化这个3D桌面,我们短暂地学习了OpenGL接口,也学会了编写3D的“Hello World”程序,但是在计算六棱柱坐标的时候碰到了问题。利用几何知识计算六棱柱坐标很简单,但是在应用了透视投影、模型视图变换、视口变换之后,我们不知道3D桌面里的六棱柱坐标是怎么计算出来的。具体到3D图形编程,六棱柱的计算问题可以描述为: ①3D程序里面,用户输入的顶点纹理坐标的单位1是什么,是窗口上的一个像素吗?或者说,如何定义顶点坐标和各种变换,将3D场景输出到整个窗口?②透视投影使用的视景体和投影矩阵是怎么得到的?3D编程接口的书籍里面并不容易找到这个问题的答案。 直到几年后,作者开始研究学习Chromium图形系统,重新思考总结这个问题,才意识到,学习3D编程和学习一门编程语言是有区别的。 在学习一门新的语言,例如C/C++或者其他语言的时候,一般都能很快地去编写一个“Hello World”程序,甚至实现一些更加复杂的功能。而对于3D编程,作者的感受是,看了图形学的书,学习了OpenGL/Vulkan编程接口,但是真正实战编程的时候,却发现不会写,也很难理解他人源码的设计逻辑。学习3D编程和学习一门编程语言的区别在于,3D编程的难点不是接口和语言本身,而...

暂无课件

样章下载

暂无网络资源

扫描二维码
下载APP了解更多

目录
荐语
查看详情 查看详情
目录

第1章3D程序分析方法

1.1输入顶点数据

1.1.1描述顶点

1.1.2传递顶点

1.1.3绑定顶点缓冲区

1.2输入MVP数据

1.3输入纹理

1.3.1创建并传递纹理

1.3.2绑定纹理

1.4输出帧缓冲

1.5数据处理过程

1.6TensorFlow JS的输入输出

1.7Vulkan的输入输出

1.8GL和Vulkan的线程模型

1.9源码下载和编译

小结

第2章3D图形学基础

2.1符号和约定

2.2向量的基本运算

2.3齐次坐标

2.3.14×4齐次矩阵

2.3.2平行线相交

2.4顶点、三角形、片元

2.5光栅化原语

2.6视景体

2.7光照模型

小结

第3章透视投影

3.1左右手坐标系

3.23D坐标和坐标系

3.33D流水线

3.4小孔成像

3.5模型变换和世界变换的意义

3.6透视投影的几何模型

3.6.1眼睛坐标到投影坐标

3.6.2投影坐标到NDC坐标——xy分量

3.6.3眼睛坐标到NDC坐标——xy分量

3.6.4眼睛坐标到NDC坐标——z分量

3.6.5裁剪

3.6.6透视投影的几何模型

3.6.7几何模型的算法分析

3.7透视投影的透视除法模型

3.7.1眼睛坐标到裁剪坐标——xy分量

3.7.2眼睛坐标到NDC坐标——zw分量

3.7.3透视除法

3.7.4裁剪

...

本书推导解释了3D世界的1的具体含义,包括3D编程最常使用的5个坐标1的意义。对于透视投影的3D坐标1,推导了用户使用的透视投影变换。原创性地提出了一个透视投影的一般模型。基于这个一般模型做了一些数学算法上的改进,得到了基于透视除法的透视投影。此外,也分析了模型视图变换,窗口变换,纹理映射等对3D世界的1的影响。对于正交投影,则分析了基于正交投影的Skia的顶点坐标,纹理坐标特点,一些高级的3D编程概念如光线追踪,延迟渲染,阴影纹理等。