Skip to content

Readme in Chinese

Zhou edited this page Dec 8, 2021 · 11 revisions

#PURESOFT3D

声明: 这个项目已经永久停止开发。衷心感谢所有给我星星的人。你们给我了真正的幸福感。

嗯……我仍然喜爱这个项目,并且热爱计算机图形学。可是我不年轻了,需要回归家庭。

非常遗憾,这个项目还有太多的不完美,包括但不限于:

  1. 它与VisualStudio深度绑定。
  2. 它与Windows深度绑定。
  3. 它使用了Intel风格的内联汇编,难以移植到其他平台。
  4. 它有一个设计得很糟烂的shader类体系,后期连我自己都懒得碰它。
  5. 它的OBJX文件格式就是一坨屎。
  6. 场景文件以及场景设计器最终也没能实现。
  7. 景深效果的代码最终只停留在我的硬盘里。(截屏图片中的景深效果出自未提交的代码)

怎么说呢,我的生命不长,我妻子的也不长。我不能再让她自己跟自己玩,空耗过这一生了。我的后半辈子不再是我自己的。

中文自述文档

##项目动向头条 我正在为Puresoft3D基于FBX制作一个简易的渲染引擎,目前已经完成过半。其目的可以概括为一下几点:

  • 让Puresoft3D可以渲染更复杂的场景。
  • 测试更多更先进的效果,包括但不限于镜面反射,屏幕空间反射,屏幕空间环境光遮挡等。
  • 使这个项目变得不那么无聊。

##致没时间往下看的朋友们

  • 这是一个基于栅格化的软件渲染器
  • 目前需要VisualStudio2010或更高版本
  • 首次编译之前先运行一次initdirs.bat
  • 你的CPU最好大于等于四核

##概述

探索显卡背后的世界

这是一个软件图形渲染管线项目,它旨在:

  • 满足个人兴趣;
  • 辅助初学者自学。

如果你刚刚学会OpenGL/Direct3D,能渲染一些有趣的场景,但是显卡和图形API对你来说仍然是个黑盒,那么不如来玩一下这个项目,将黑盒打开。

或者如果你是个图形管线的老司机,并且乐于挑战一下我或给我上上课,那么也非常欢迎进入这个项目。“源码面前了无秘密”[1],当然也包括了我所有的愚钝。我不怕出丑,只怕如入无人之境。
[1] 《STL源码剖析》,侯捷。

##想整一把?

若你真想试一下,那么容我简介一下系统要求

  • 这个项目写于VisualStudio 2010 Pro,并在Windows 7 and Vista上测试。由于后天家里要添丁,所以近期实在没有时间把它移植到其他平台。你必须先准备好这套开发环境再来玩。

  • 虽然这个项目与GPU无关,但你必须有一颗强劲的CPU,它毕竟是计算密集型的程序,所以双核是最低要求。我的机器里有一颗2核4线的i5,画上图中的场景只有7帧。我猜一颗4核8线的i7差不多能达到10到14帧速度,那样应该看起来更好些。

在VS里打开项目的slo文件后可以看到6个vcproj,其中'Puresoft3D'是包含了90%图形管线程序的主模块。 更多细节请阅读项目WIKI.

另外有两个名为'test'和'test2'的测试程序vcproj。你可以设定其中一个为启动项,切换到Release模式,然后按F5去生成slo并跑一下[2]。你可能注意到上一段中的'90%'了。剩下的10%在测试程序里 —— shaders,你懂的。
[2] 生成slo之前,请先执行一下项目根目录下的initdirs.bat谢谢。

'libobjx'和'objcvt'是两个辅助工具程序,用于将Wavefront OBJ文件转换为OBJX扩展格式。它们不重要,来自于4年前我的硕士毕设的一部分。我在这个项目里凑合用它们来转换和加载场景。时间太紧张了,我本计划支持FBX,但是小孩要出生了,我必须先凑合一下。请不要花时间去琢磨这两个模块

最后一个vcproj叫'mcemaths',顾名思义,是这个项目的数学计算库。请别介意名字里那个奇怪的前缀,因为这个库也是来自于以前的毕设。数学计算库对每一个渲染程序都很重要,因为绝大部分线性代数计算都在里面实现,但是这个库对你重不重要你自己看,毕竟网上这种库有很多。不过如果你想读本项目的代码,建议还是看一看mcemaths.h,了解该库函数的功能才能扫除理解其他部分代码的障碍

项目WIKI的中文版已经完成,但还没来得及仔细复查。要不,您先凑合一下?

##想说点啥?

我的个人邮箱盼着你的来信,不过我每周只会查阅一到两次。

Clone this wiki locally