图形编程项目

2020-08-19 20:01:37

**图形编程项目**摩根士丹利(Morgan McGuireIntroduction====The)著**学习3D计算图形学的最好方法是将一本好的教科书与动手编程项目相结合。本页上的项目是为配合[_Graphics Codex_](https://graphicscodex.com),)设计的,这是一本交互式和综合性的绘图书籍,售价10美元。我根据威廉姆斯学院、布朗学院和麻省理工学院的图形学教学经验设计了这些项目。这些项目教授许多不同的3D图形技能:-基于物理的照片真实感渲染![](cloud10.jpg width=300 edge=1)-蒙特卡罗光线跟踪-计算实体几何-过程性3D建模-GPU实时渲染-游戏引擎编程-它们还教授一些软件工程技能:-程序设计-C++编程-版本控制-高性能CPU和GPU编程如果您已经使用过。以及常见的计算机科学数据结构和算法。阅读资料和项目将教给你progress.Projects====The项目所需的最基本的数学和计算机科学知识,链接如下。本着_Graphics Codex_和开放源码的精神,我会在创建它们时提供它们,并将根据读者的反馈进行更新。新的基于GPU的项目将继续出现在底部。[cubes](../cubes/index.html):了解开发框架、3D坐标系和场景格式,然后自己制作场景。_50行,5小时_[网格](../mesesh/index.html):为数学形状、眼镜和程序地形生成新的3D模型作为索引三角形网格。_100条线,5小时_[几何图形和设计](../geo-design/index.html):将网格扩展到体素、L系统、地形、模型实例化或六角网格行星的设计密集型练习。_250行,20小时_[光线](../ray/index.html):使用光线相交、主光线和阴影光线、材质以及直接光实现您自己的渲染器。_100行,11小时_[路径](../path/index.html):编写一个具有蒙特卡罗积分、重要性采样和高吞吐量CPU编程的照片级真实感路径跟踪器。_100行,9小时_[渲染器设计](../ender-design/index.html):使用参与媒体、景深、运动模糊、色度抖动、自适应采样或您自己的BVH扩展路径。_100-300行,20小时_[GPU](../gpu/index.html):使用球体跟踪、带符号距离函数和计算立体几何体,在GLSL中编写_实时_GPU光线跟踪器。_65行,6小时__即将到来:_等值面:行进立方体、等值面、样条线、L系统、紧急系统高级建模:噪波、流体、腐蚀、细分曲面、体素硬件API:栅格化、顶点缓冲区、像素和顶点着色器延迟着色:直接评估微面模型、阴影贴图、粒子系统交互:碰撞检测和响应、物理集成、贴花、游戏、UI";L。时间估计是根据140名大学生的平均时数计算的。超过6小时的项目可以由双人或小团队完成,也可以由个人在数周内完成。有些项目还必须在无人值守的情况下运行很长时间才能产生结果。设计项目是单个主题的顶峰项目。它们强调设计你自己的问题解决方案的结构,一个人可以在一个月内完成,或者一个小团队在两周或更多周内完成。每个项目都描述了它自己对其他项目的依赖关系和阅读章节。它们按照列出的顺序设计得很好,但有很大的跳跃自由。Platform and Support Code====The[推荐工具](../Tools/)文档解释了如何为这些项目设置开发环境。这些项目为*C++*11、[*OPENGL*](https://www.opengl.org/)4.1、*GLSL*410和[*G3D*](https://casual-effects.com/g3d)10(或更高版本))提供了明确的实施建议。因为它结合了好的开发工具和OpenGL驱动程序,所以我也推荐[*Microsoft Visual Windows2017 on*Studio*](https://www.visualstudio.com/en-us/products/free-developer-offers-vs.aspx)*10。图形开发人员应该使用独立的GPU,而不是低端笔记本电脑中嵌入的GPU。我在我的课程中使用[*NVIDIA GeForce*](https://www.amazon.com/s?k=geforce+2060)2060 GPU