Xungerrrr's Blog

Learn About CG

Compute Graphics - Homework 1

Word count: 1.2kReading time: 4 min
2019/03/04 Share

谈谈自己对计算机图形学的理解。

我对计算机图形学的理解是,计算机图形学是一门利用计算机对二维或三维图形进行表示、处理、计算、显示和交互的学科。通过各种建模方法,在计算机中建立几何图形的模型,这是图形的表示过程。通过渲染技术,将图形模型转换成显示器的栅格形式,或者是转换成全息图像形式,这是图形的处理、计算和显示过程。通过各种输入工具,改变图形的状态,这是交互过程。这些都是计算机图形学研究的范畴。

什么是OpenGL?OpenGL ES?Web GL?Vulkan?DirectX?

  • OpenGL是一个API(Application Programming Interface,应用程序编程接口),是跨编程语言及跨平台的接口,包含了一系列可以操作图形、图像的函数,用于渲染2D和3D图形。更确切地说,OpenGL是一个规范,规定了每个函数的用法和输出值,具体的实现一般由显卡厂商完成。
  • OpenGL ES(OpenGL for Embedded Systems)是OpenGL规范的子集,用于嵌入式设备的图形渲染。相比于OpenGL,OpenGL ES去除了一些非必要的特性,是OpenGL的简化版本。
  • WebGL是一种绘图标准,将JavaScript和OpenGL ES结合在一起,使得网页可以调用系统显卡进行硬件加速渲染,从而在浏览器中流畅地显示3D图形。
  • Vulkan是另一种跨平台的绘图应用程序接口,提供了许多比OpenGL更加先进的特性,性能比OpenGL要更好,是OpenGL的替代者。
  • DirectX是由微软开发的多媒体编程接口,提供了显示、声音、输入、网络等API,功能十分丰富,不只是一个图形编程接口,用于Windows系统多媒体应用开发。

gl.h glu.h glew.h的作用分别是什么?

  • gl.h是OpenGL 1.1的基础头文件,包含了OpenGL 1.1的功能。如果需要使用新功能,需要添加OpenGL的扩展库。
  • glu.h是OpenGL Utilities库,包含了一些方便的函数,但是已经过时,现在一般不用。
  • glew.h是OpenGL Extension Wrangler Library,用于使用OpenGL的扩展功能,其中包含了gl.h。OpenGL版本众多,因此编译的时候无法将函数的位置确定下来,需要在运行时查询。借助glew.h,可以在运行时根据硬件方便地管理OpenGL的函数指针,定位函数的位置。

使用GLFW和freeglut的目的是什么?

创建OpenGL上下文、创建显示窗口和处理用户输入,在每个系统上都有不一样的操作。作为一个跨平台API,OpenGL将这部分功能抽象出去,因此需要我们去手动处理。使用GLFW或者freeglut,可以方便地创建OpenGL上下文、定义窗口参数和处理用户输入,而不需要使用操作系统复杂的API,节省编程时间和难度。

结合上述参考链接,选择一个SIGGRAPH 2017/2018上你最喜欢的专题,介绍该专题是做什么的,使用了什么CG技术?

我对SIGGRAPH 2018中的Computational photos and videos专题比较感兴趣。这个专题做的是计算摄影方面的研究,目的是利用有限的图片信息,计算出场景的深度信息,也就是生成三维的场景。这个专题中有两篇研究论文。第一篇是Synthetic Depth-of-Field with a Single-Camera Mobile Phone,实现了利用单个手机摄像头计算出照片的景深信息,得到类似于单反镜头的背景虚化效果,由Google Research团队发表,目前已用于Google Pixel系列手机中的人像模式功能。第二篇是Stereo Magnification: Learning view synthesis using multiplane images,利用双镜头拍摄的两张照片,就可以生成一个动画,模拟出在三维场景中运动的场景。该专题运用了CG中的建模和渲染技术,都是先计算出场景的景深信息,构建出场景的模型,然后渲染成高真实度的照片和动画。两篇论文都涉及到基于图像的渲染技术(Image-based rendering)。

参考链接

[1] 什么是计算机图形学?
[2] 什么是OpenGL
[3] SIGGRAGPH Conference Content
[4] SIGGRAPH 2018专题与论文集合
[5] SIGGRAPH 2018论文集
[6] SIGGRAPH 2018:VR凉凉?逛完展你就知道了
[7] SIGGRAPH 2018 不能错过的八大精彩
[8] SIGGRAPH 2017 有啥有意思的 project?
[9] SIGGRAPH 2017:一窥AR/VR最新趋势

CATALOG
  1. 1. 谈谈自己对计算机图形学的理解。
  2. 2. 什么是OpenGL?OpenGL ES?Web GL?Vulkan?DirectX?
  3. 3. gl.h glu.h glew.h的作用分别是什么?
  4. 4. 使用GLFW和freeglut的目的是什么?
  5. 5. 结合上述参考链接,选择一个SIGGRAPH 2017/2018上你最喜欢的专题,介绍该专题是做什么的,使用了什么CG技术?
  6. 6. 参考链接