我最近一直在尝试进一步提高keijiro为Unity游戏引擎创建的程序化Skybox的功能。在查看着色器后,我发现了一些使我感到困惑的代码。
#define OUTER_RADIUS 1.025
static const float kOuterRadius = OUTER_RADIUS;
可以在here中找到此代码,它是cginclude文件的一部分。该代码还在其他各种声明中使用预处理器指令值,但是对于执行代码,它仅使用kOuterRadius。
据我了解,两者的功能应该非常相似。 我的问题是,将静态const float定义为预处理器指令值的目的是什么?