2

我一直在尝试使用官方的 three.js 包来渲染图像,three通过npm使用. 到目前为止,运气并不好。canvasnpm

我相信这应该是可能的,因为节点画布(https://github.com/Automattic/node-canvas)是一个全栈画布渲染器,我只是不知道如何修复这个库和three.js之间的桥梁使它们一起工作以进行服务器端渲染

这是我失败的方法:

通过遵循旧的 github 帖子,我设法修改了three.js文件的开头,如下所示:

var Canvas = require('canvas');

var self = self || {}; // File:src/Three.js

var canvasWidth = 1024;
var canvasHeight = 1024;

var window = {
    innerWidth: canvasWidth,
    innerHeight: canvasHeight
};

var document = {
    createElement: function(name) {
        if (name == "canvas") {
            return new Canvas(canvasWidth, canvasHeight);
        }
    }
};

现在当我使用画布渲染器渲染东西时,我没有收到任何错误。

renderer = new THREE.CanvasRenderer();

不知道如何管理这个东西来输出文件,或者渲染任何东西。

任何帮助都会受到重视。

4

1 回答 1

0

您使用的库似乎提供 toDataURL()

所以你应该能够做这样的事情

renderer.render();

fs.writeFile('image.png', canvas.toDataURL(), function(){
   // done
})

于 2016-03-09T09:07:32.260 回答