我即将把一个大型的C++项目(某种类型的Library Project,它完全没有GUI)移植到Android上.它实际上是一个Visual C++项目,但它将作为中间步骤移植到Linux.我知道Android并不是一个"完整"的Linux,也没有声称提供所有POSIX功能,但我也知道在Android上有很多使用NDK的"POSIXish功能".
现在我的实际问题是:
与完整的POSIX集相比,哪些是Android上最不重要/最重要的功能?因此,在从Visual C++移植到Linux GCC时,我可以牢记这一点.
我试图在谷歌上找到一些东西,但没有发现任何真正有用的东西,只是在这里和那里有一些东西提到Android上有一些POSIX功能......
我必须在OpenGL中为不同的对象使用两个不同的着色器程序.
我发现我必须glUseProgram()
在不同的着色器程序之间切换,但没有太多信息.
如果我有两个不同的着色器程序用于不同的对象,那么生成和绑定VAO和VBO如何为每个着色器程序(如何以及何时)工作?
我在glsl片段着色器中做了一些东西,得到了一些奇怪的结果.我用于计算的代码现在应该并不真正相关,但对于某种"调试",我会根据变量所在的范围显示颜色.
编码为:(阴影是一个浮点数)
if(shadow == 0.0f)
{
vFragColor = vec4(1.0f, 0.0f, 0.0f, 0.0f);
}
else if(shadow == 1.0f)
{
vFragColor = vec4(0.0f, 1.0f, 0.0f, 0.0f);
}
else if(shadow < 1.0f && shadow > 0.0f)
{
vFragColor = vec4(0.0f, 0.0f, 1.0f, 0.0f);
}
else if(shadow < 0.0f)
{
vFragColor = vec4(1.0f, 0.0f, 1.0f, 0.0f);
}
else if(shadow > 1.0f)
{
vFragColor = vec4(0.0f, 1.0f, 1.0f, 0.0f);
}
else
{
vFragColor = vec4(1.0f, 1.0f, 1.0f, 0.0f);
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,不应该在最后输入"else",因为代码在检查任何可能的值之前.但是,对于我得到一些奇怪结果的区域,我想做那种"调试",代码进入"else"语句.
有谁知道这会怎么样?我根本不明白这一点......