飞翔之歌
本帖最后由 飞翔之歌 于 2021-5-2 19:13 编辑

关于《一些奇怪的知识》:这个系列专门讲一些在模组开发中你并不需要直接操作但又有着重要作用的一些知识—比如本篇所提的OpenGL。



OpenGL:你可以把它理解为一个的库。但更准确的说,它是一个规范

OpenGL定义了一系列的接口与方法,以用于的3D绘图。

注意:OpenGL是一个C库,也就意味着它没有自动垃圾回收机制。你需要手动清理内存垃圾—幸好MOJANG已经帮我们实现了。

以上是对OpenGL的一个简要概述。

OpenGL中,大部分图形都由一个个三角形构成,而一个三角形有三个顶点。一般,我们通过指定顶点的位置,颜色等属性来对图形进行操作。正射投影,位移,旋转都是通过对顶点位置进行改变实现的。(当然,MC这么个四四方方的游戏图形当然是由正方形构成的)
在MC中,OpenGL一次获得4个顶点,并按照顺序连接成一个矩形,再给矩形上色

OpenGL渲染一个图形可以分为这么几个步骤
获得顶点输入—>组装图形—>进行光栅化—>给图形上色

这个模式被称为固定管线

它在核心模式中不受支持

当然,MC使用的是可编程管线

关于管线(Pipe):你可以理解为工厂的流水线,给它一个输入,它还你一个结果

LWJGL:全程Light Weight Java Game Library,轻量Java游戏库,它为Java提供了比OpenGL这样的对于开发游戏必要的库。

LWJGL不等于OpenGL:前者只是利用JNI技术对后者在Java环境下的一个封装

关于着色器(即可编程管线)由于Mojang的更新准备专门写一篇。





一九五三
好像还是看不懂

2503610040
好棒,哈哈哈哈哈哈哈精彩绝伦

脏鬼鬼
其实渲染步骤可以更详细。然后上色->光栅化这个说法不对,是先光栅化再上色的。可编程管线中,所谓上色这个步骤其实是在片元着色器里执行的,通常情况下一个片元等于一个像素,所以要先光栅化确定片元再“上色”。

你看看你那帅样
666666666666666666666666666

兜兜风aa
完成任务