3D场景中能否只对主角3D对象启用光照其他场景元素不启用光照来提升性能同时又兼顾显示效果?

比如我场景里有一个桌球,和一张台球桌,我想对台球启用光照,而台球桌则不启用光照。
我之所以想只对台球启用光照而不对桌子启用光照是因为当屏幕分辨过高时光照像素计算非常耗性能(这个我试过在我ipad上全部启用光照的话帧率只有31左右,而不启用光照则是满帧),因此我想能不能做到只对小物体做启用光照,而对场景里占面积大的物体就使用光照贴图,这样既能提高小物体比如桌球这种球类的表现细节同时又不至于太过影响游戏的性能。

目前我用的cocos2dx 3.4版本,我发现好像做不到这样,通过设置光照mask的方法根本做不到,现在只能要么所有元素全启用光照要么全不启用。

当然可以分别对不同的物体施加不同的光照,但是这对提升性能并没有什么卵用。

有什么办法可以做到只对部分元素启用光照而其他元素不启用光照呢?

自己先顶一下免得沉了

在CCMeshCommand的第519行改为如下code估计能满足你的需求,这样不使用光,lightmask可以设为0:
if (hasAmbient)
{
ambient.x /= 255.f; ambient.y /= 255.f; ambient.z /= 255.f;
glProgram->setUniformLocationWith4f(glProgram->getUniformLocationForName(“u_color”), _displayColor.x * ambient.x, _displayColor.y * ambient.y, _displayColor.z * ambient.z, _displayColor.w;
}

谢谢!
你是cocos团队的吗?我觉得这应该算是个bug了,建议弄成能运行某些模型使用光照而某些模型不使用任何光照!