计算机图形学的研究层次
可以大致按下面层次分:
5 可玩的游戏等各种应用程序
----------------------------------------
4 游戏引擎等面向应用的接口
----------------------------------------
3 directX 3d <-- ★ 图形接口/图形引擎/图形函数库 他们的工作都一样,就是你提交数
3 directX Draw 据,它完成绘制和显示工作。这样的程序可以使用CPU来完成计算工作,
3 openGL 也可以使用GPU。给GPU执行代码,需要使用驱动程序来翻译一下。
----------------------------------------
2 HAL(硬件抽象层)
----------------------------------------
1 DDK驱动程序 <-- ATI 和NVIDIA
----------------------------------------
0 各类显卡 <-- ATI 和NVIDIA
各个研究层次的分析
0 和1 主要是ATI 和NVIDIA
2和1的一部分 有专门的硬件驱动工程师负责
3 分软件和硬件加速,做软件渲染的话,需要掌握基本的图形算法(如画线),还要决定你的API是依 赖于哪种操作系统(或是跨操作系统)的。做硬件加速,你得了解图形加速的一些GPU指令,并学习DDK,为你的显卡编写一个使用你的低层图象函数库驱动。做这个还是有用的,比如做手机上的3D游戏有很多就用软三维。这个也是我现在研究的内容,正在看PicoGL的源代码。
4 浙江大学的有做基于光线跟踪的底层API(无硬件加速)。如果你的算法弄的比较好,还可以实现即时的光线跟踪。当然在这个层次上的选择其实非常多,比如你的图象低层是基于图象合成和视点替代技术的,这样可以让你使用的简单的几幅图象就可以还原出复杂的场景静态和动态信息,目前在计算机图形学上也是一个研究的方向,这个我们常见的是 Spherical Harmonic 和 HDRSH Lighting。 需要对多种图形API都很熟悉,能很好的把撑它们的异同,从而设计合适的接口。设计模式能灵活的运用。好的引擎必然有一个简洁高效的组织结构。engine不同于应用,性能要求是很重要的。
5 现在国内做的最多了
关于图形学的学习
学习opengl最好的去处是 opengl官网和 nehe.gamedev.net 红宝和蓝宝书
关于游戏编程 www.flipcode.net 上有很多的资料
计算机图形(3D的),多用SCI查查别人的论文看看,有空看别人的源代码。