B站ICE27182用Python在CMD窗口手搓3D引擎

项目地址 GitHub - ICE27182/Python-3D-renderer
视频地址 3D渲染引擎 但是CMD窗口且纯Python ///_哔哩哔哩_bilibili

佬友能从技术角度介绍一下这个项目么?

以下为简介搬运

python3D渲染-无第三方库 这个东西终于是做完了
历史
BV1md4y137b7
BV1og411e7aL
BV1QG4y1h7Z2
BV1BY411C7qB (bug)
BV1CN411F7QF(bug)
BV1Bh411u738 (bug)
BV1xM4y1s7cv
BV1Sk4y137jm
BV1kj411r7nw (真1.0版本)
BV1Hb4y1V7MF
BV1g64y1W7NV
BV19N4y1x73o
BV1jt4y1d7oC
BV1fm411X73Z
BV19z421R7o4
无第三方库意味着你python学好了也能写出来

渲染器程序3000+行 png解码器500+行 负责调用渲染 计算物理等等的陈序也有800+行 不过其中也有不少是冗余的 原因后面会说

从最早是刚开始学python没多久就开始想做这个了 2022年9月初写的第一个代码 已经一年半了

当时想法就是什么都不学 尽量避免看现有方案之类的 就纯靠自己想 怎么把单纯的一堆3维点坐标变成能看的画面

甚至靠高中数学学了的向量自己琢磨出了一些矩阵的概念 当然 当时不知道那是矩阵 只是发现用几个向量和一个向量点乘可以让它旋转

但是很快就遇到了不少问题 一个就是无法进入任何物体 只能在外面看它 (参考p7) 其它还又比如光照 物体遮挡 三角形等问题

然后就看了javidx9的视频 当然 他是用C++写的 当时很明显没学过 但是因为原理方面的东西讲的挺细的 cpp勉强能猜一些意思 就解决了这些问题 当然 不少方法还是相当粗暴的(所以自己想的时候把它直接排除了) 把1.0写了出来 期间发现了函数调用的性能损耗是真的厉害 当中有一次改直接快了60多倍 自此就对性能非常在意

2 Likes

搞七捻三快问快答

1 Like

没有视频吗?

快问快答搞七捻三

报意思,已经更新视频地址

6 哇