目前该问题的解决方法是使用以下代码来重新设置颜色管理:
AFRAME.utils.takeScreenshot = function (renderer, camera, options) {
// 重置颜色管理
renderer.gammaOutput = true;
renderer.gammaFactor = 2.2;
renderer.toneMappingExposure = 1.0;
renderer.toneMappingWhitePoint = 1.0;
renderer.setRenderTarget(options.target);
renderer.render(options.scene, camera);
renderer.setRenderTarget(null);
// 返回截图
var dataURL = renderer.domElement.toDataURL('image/png');
if (options.callback) {
options.callback(dataURL);
} else {
return dataURL;
}
};
将该代码放入你的项目中,在需要截图的位置调用AFRAME.utils.takeScreenshot
方法即可。