我正在与 minko 合作,并且似乎在使用 Android 时遇到了一个小问题。我设法为 linux64、Android 和 html 编译了修改后的代码(基于 Minko 提供的教程)。我只需加载和旋转 4 个 .obj 文件(提供的海盗文件和在 turbosquid 上找到的 3 个文件仅用于演示目的)。
在 linux64 和 html 版本中查看了正确的结果,但在 Android 版本中,尽管二进制文件是从相同的 c++ 代码生成的,但它却有一个“红色”的光。
这里有一些图片来证明这个问题:
linux64:
安卓版本:
http://tinypic.com/r/23mn0p3/8
(无法链接 html 版本,但它接近 linux64 版本。)
以下是与灯光相关的部分代码:
// create the spot light node
auto spotLightNode = scene::Node::create("spotLight");
// change the spot light position
//spotLightNode->addComponent(Transform::create(Matrix4x4::create()->lookAt(Vector3::zero(), Vector3::create(0.1f, 2.f, 0.f)))); //ok linux - html
spotLightNode->addComponent(Transform::create(Matrix4x4::create()->lookAt(Vector3::zero(), Vector3::create(0.1f, 8.f, 0.f))));
// create the point light component
auto spotLight = SpotLight::create(.15f, .4f); //ok linux and html
// update the spot light component attributes
spotLight->diffuse(4.5f); //ori - ok linux - html
// add the component to the spot light node
spotLightNode->addComponent(spotLight);
//sets a red color to our spot light
//spotLightNode->component<SpotLight>()->color()->setTo(2.0f, 1.0f, 1.0f);
// add the node to the root of the scene graph
rootNode->addChild(spotLightNode);
正如您所看到的,color()->setTo
它已被关闭并适用于除 Android 之外的所有设备(清理和重建)。知道这里问题的根源是什么吗?
任何指针将不胜感激。
谢谢。