设置
下面是用于开发和测试示例代码的设置。
环境
示例代码是使用以下环境开发和测试的。
Linux manjaro 4.9.135-1-MANJARO
OpenGL渲染器字符串:GeForce GTX 970/PCIe/SS2
OpenGL版本字符串:4.6.0 NVIDIA 410.73
g++ (GCC) 8.2.1 20180831
Panda3D 1.10.1-1
材料
每个搅拌机用于建造的材料磨坊场景.鸡蛋有两种纹理。第一个纹理是法线贴图,第二个是漫反射贴图。如果一个对象使用它的顶点法线,就使用“平蓝”法线贴图。通过在所有模型的相同位置有相同的贴图,着色器可以被一般化,减少了重复代码的需要。
Panda3D
示例代码使用Panda3D作为着色器之间的粘合剂。这对下面的技术没有真正的影响,这意味着你可以把你在这里学到的东西应用到你选择的堆栈或游戏引擎中。Panda3D确实提供了一些便利。我已经指出了这些,所以你可以找到你的堆栈提供的同等便利,或者自己复制它,如果你的堆栈没有提供同等的东西。
为了演示程序的目的,更改了三个Panda3D配置。你可以在config.prc。改变的配置是GL-坐标系默认值,纹理-关闭电源-2,和纹理-自动供电-2 1。请参考Panda3D配置有关更多详细信息,请参见手册中的页面。
Panda3D默认为z向上的右手坐标系,而OpenGL使用y向上的右手坐标系。GL-坐标系默认值使您不必在着色器内部的两者之间进行转换。纹理-自动供电-2 1如果系统支持,允许我们使用不是二次方的纹理尺寸。这在SSAO和其他屏幕/窗口尺寸相关技术中非常有用,因为屏幕/窗口尺寸通常不是2的幂。纹理-关闭电源-2如果系统只支持2次方的纹理大小,那么我们的纹理就缩小到2次方。