OpenBVE开发入门与技巧
本文作者默认您已经会使用ObjectViewer等等的开发辅助工具。
一、用代码构建简单模型
1.做一个简单平面
不妨输入这段代码,用ObjectViewer浏览模型。
CreateMeshBuilder
AddVertex, 0, 0, 1
AddVertex, 1, 0, 1
AddVertex, 1, 0, 0
AddVertex, 0, 0, 0
AddFace, 0, 1, 2, 3
SetColor, 255, 0, 0
你会发现你成功地在地平面上建了一个面积为1的红色的正方形。此时,请让我来为你解释你为什么能通过这段代码整出这样一个图形。
第一行的CreateMeshBuilder
用于包含一组以顶点为渲染主体的数据(虽然概念非常模糊,但是读到后面你会更容易明白它的意思)。上述顶点可以通过AddVertex, X, Y, Z
建立。X
、Y
、Z
为空间直角坐标系中的坐标,单位为米,他们所代表的正方向分别为右、上、前。
建立顶点的下一步便是连点成面。我们记第一个AddVertex建立的顶点为0号顶点,第二个为1号顶点,第三个为2号顶点……用AddFace, 0, 1, 2
的指令可以按0号、1号、2号…的顺序连接顶点。当然,可以通过修改AddFace后单元格内数据的顺序来调整顶点的连接顺序。但要注意,默认生成的面为顺时针顺序连点成的面(也就是规定了面的法向量遵循左手螺旋定则);其次,点不共面及面的内角含有优角(角度>180°)容易发生难以估量的显示异常,这样的情况建议用割补法来解决。
你可能会发现你建立了平面却依然没办法让其显示,原来是你还没给这个画上色。SetColor, R, G, B
则是一种最简易的解决办法。R
、G
、B
分别为“RGB”以255为最大值的颜色分量。刷新ObjectViewer,你会成功地看到自己上了这个颜色地平面。
回到最开始讲的那6行代码,让我们重新梳理其含义:在空间中顺时针连接那4各都在地平面上地坐标,形成一个面向天地红色的平面的正方形。
(未完待续…)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Tyex的博客!