菜单

视觉和图形教程

相关源文件

目的与范围

本文档概述了Build Your Own X仓库中提供的视觉和图形系统教程。这些教程侧重于从头开始构建图形渲染系统、增强现实应用程序、视觉识别系统和体素引擎。有关游戏开发教程,请参阅游戏开发;有关神经网络实现,请参阅神经网络

Sources: README.md11-13 README.md33-34 README.md389-391

视觉与图形系统概述

视觉与图形系统是专门的软件类别,用于渲染、处理和解释视觉信息。Build Your Own X 仓库提供了从零开始创建四种不同类型视觉系统的教程

Sources: README.md41-53 README.md55-62 README.md384-386 README.md389-391

按语言和系统分类的教程可用性

此表概述了每种视觉图形系统类型提供教程的编程语言

编程语言3D 渲染器增强现实视觉识别体素引擎
C++
C#
Java
JavaScript
Python
TypeScript

Sources: README.md41-53 README.md55-62 README.md384-386 README.md389-391

3D 渲染器

3D渲染器是根据3D场景描述创建2D图像的软件系统。Build Your Own X 仓库包含用于构建多种渲染系统的教程。

3D渲染器架构

Sources: README.md43-48

可用的3D渲染器教程

该仓库提供了多种3D渲染器教程,主要侧重于两种主要的渲染技术

  1. 基于光线追踪的渲染器:

    • 《周末光线追踪》(C++)
    • 《光线追踪导论》(C++)
    • 《构建自己的光线追踪器》(Java/JavaScript)
  2. 基于光栅化的渲染器:

    • 《OpenGL工作原理》(C++)
    • 《光栅化:实用实现》(C++)
    • 《学习如何编写3D软渲染引擎》(C#/TypeScript/JavaScript)

大多数教程提供逐步指南,讲解如何实现核心3D图形概念,例如

  • 向量/矩阵数学
  • 相机变换
  • 光线与物体相交
  • 光照模型
  • 表面着色

Sources: README.md43-52

增强现实

增强现实(AR)系统通常通过移动设备上的摄像头馈送或专用AR硬件,将数字内容叠加到现实世界中。

增强现实管道

Sources: README.md57-61

可用的增强现实教程

Build Your Own X 仓库提供了多个涵盖不同平台的AR教程

  1. 基于Unity的AR教程:

    • 《使用Vuforia和Unity 3D的增强现实应用教程》(C#)
    • 《Unity ARCore》(C#)
    • 《使用Unity的AR传送门教程》(C#)
  2. 基于ARKit的教程:

    • 《ARKit通往颠倒世界的传送门》(C#)
  3. 基于OpenCV的AR:

    • 《使用Python和OpenCV的增强现实》(Python)

这些教程涵盖了创建AR应用的技术,包括

  • 标记识别与追踪
  • 环境表面检测
  • 真实世界坐标系中的3D物体放置
  • AR传送门(创建通往虚拟世界的窗口)
  • 高级AR内容,例如动画角色

Sources: README.md57-62

视觉识别系统

视觉识别系统分析图像或视频中的视觉数据,以识别物体、文本或模式。

视觉识别系统架构

Sources: README.md384-386

可用的视觉识别教程

该仓库包含专注于视觉识别实际应用的专业教程

  1. 车牌识别:
    • 《使用Python机器学习开发车牌识别系统》
  2. 人脸识别:
    • 《使用Tensorflow深度学习构建人脸识别管道》

这些教程逐步讲解了以下过程

  • 创建图像预处理管道
  • 从视觉数据中实现特征提取
  • 将机器学习模型应用于视觉识别任务
  • 为特定应用构建端到端视觉识别系统

Sources: README.md385-386

体素引擎

体素引擎是专门的渲染系统,它使用体素(体积像素)而不是多边形来表示3D空间。

体素引擎架构

Sources: README.md390-391

可用的体素引擎教程

该仓库包含两个主要的体素引擎构建教程

  1. C++体素引擎:
    • 《让我们来制作一个体素引擎》
  2. Java体素引擎:
    • 《Java体素引擎教程》(视频系列)

这些教程涵盖了以下主题

  • 高效的体素数据表示与存储
  • 基于区块的渲染优化
  • 从体素数据生成网格
  • 体素环境中的光照
  • 程序化地形生成

Sources: README.md390-391

与其他系统类别的关系

视觉与图形系统经常与Build Your Own X仓库中涵盖的其他系统类别集成

Sources: README.md11-36

其他资源

视觉与图形系统类别的教程涵盖了从初级到高级的各个级别。以下是一些补充教程的额外资源

资源类型描述最佳搭配
图形编程书籍《基于物理的渲染:从理论到实现》3D渲染器教程
计算机视觉库OpenCV文档视觉识别教程
游戏引擎文档Unity3D AR/VR开发指南增强现实教程
计算机图形学课程在线图形编程课程所有图形教程

Sources: README.md41-53 README.md55-62 README.md384-386 README.md389-391