编写相机、网格和设备对象的核心逻辑
我非常乐意通过一系列教程和大家分享如何建立所谓的 3D 软件渲染引擎。软件渲染引擎 意味着我们将只使用 CPU 建立一个 3D 引擎,完全不使用 GPU。(请不要忘记毁灭你的 80386?)
我将与你分享 C#、TypeScript 以及 JavaScript 三种版本的代码。在这三者中,你应该可以找到自己喜欢的语言,或者至少比较接近你所喜欢的语言。这样做是为了让你更容易从语法中抽身,把重点放在概念和实现上以及你最喜欢的编程环境中。代码在文章末尾可以下载到。
那么,为什么要建立一个 3D 软件渲染引擎呢?嗯……这只是因为它确实有助于理解现代化的 3D 实现以及 GPU 处理器原理。
事实上,我非常感谢 David Catuhe 在微软内部研讨会中提供的 3D 基础知识。他已经掌握 3D 知识非常之久,矩阵运算就像是硬编码一样刻在了他的脑子里。我在年轻的时候,就一直梦想着能写这样的引擎,但是这对我来说太复杂了。但是最后,你会发现这并不复杂。你只是需要一个人帮你理解基本原理以及最简单的实现方式。
通过本系列教程,你将学习到如何在 2D 屏幕中绘制一些 3D 顶点(X,Y,Z)、如何绘制每个点之间的线段、如何填充一些三角形、处理灯光、材质等。
这第一篇教程就先只告诉你如何显示 8 个顶点组成一个立方体以及如何在 3D 虚拟世界中进行移动。
如果按照完整的系列教程学习,你就会 知道如何建立自己的 3D 软件渲染引擎 !引擎将会描绘一些线框,然后光栅化,再进行高氏着色,最后应用纹理。
点击图片查看阶段演示,在本系列教程中我们将讨论如何从线框到最终的纹理。
点击 运行代码 后,你将看到学习本章节将会实现 8 个点的效果。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论