计算机图形学被誉为计算机“三浪漫”之一。如果您感到困惑,这个GitHub仓库将帮助您快速入门。该存储库包括多个模型,例如片段着色器(用GLSL编写)、程序纹理生成、光栅化、光照计算和实时光线追踪。所有项目都将使用标准WebGL技术在浏览器中进行图形编码。这种方法利用现代Web开发工具来快速迭代并轻松与他人共享您的工作。并且没有实际编写javascript代码。基本的运行环境要求是node.jsv14和npm。对于初学者,笔者推荐“被子图案”作为入门项目。如何制作被子图案?片段着色器在屏幕上的每个像素上运行,每个像素的颜色由着色器决定。vec4是具有红色、绿色、蓝色和alpha通道的4D向量。核心代码在shaders/quilt.frag.glsl,可以在GPU上运行。在代码中开启注释部分可以获得更丰富的样式。还有哪些图案可以着色?充满《我的世界》风格的海岛地图。使用在实时计算机图形学中非常流行的光栅化方法渲染3D三角形网格,大多数游戏使用的算法相同。追求更真实、模拟真实世界的物体。探索程式化渲染,也称为非真实感渲染。这是一个放弃对现实生活的保真度的图形领域,但在模仿表达风格时允许更具创造性的表达。主要原理是根据亮度强度阈值将其离散化,并以不同的风格对其进行着色,能够模仿漫画艺术风格。“光线追踪”算法能够进行反射,是照片级渲染的黄金标准。计算机上的光线追踪算法跟踪无穷小光线穿过场景的路径,直到它们与表面相交。此方法提供了一种从任何特定位置和方向找到第一个可见对象的简便方法,并且是许多渲染算法的基础。作者EricZhang是哈佛大学的硕士生,主修数学和计算机科学。他的主要研究兴趣是图形学、机器学习、编程语言和系统。高中时,他代表美国获得了两枚IOI金牌,并为美国的高中生写了一本物理书。作者的github也很用心!曾在Nvidia实习,协助实现sota的语义分割系统。作者对音乐也颇有研究。参考资料:https://github.com/ekzhang/graphics-workshop
