我一直在尝试使用官方的 Three.js 包 three
来渲染图像。上npm
通过使用canvas
包在 npm
。到目前为止,运气还不太好。
我相信这应该是可能的,因为 node-canvas ( https://github.com/Automattic/node-canvas ) 是一个全栈 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);
}
}
};
现在,当我使用 Canvas 渲染器渲染内容时,我没有收到任何错误。
renderer = new THREE.CanvasRenderer();
不知道如何管理这个东西来输出文件,或者渲染任何东西。
感谢任何帮助。
最佳答案
您使用的库 seems to provide toDataURL()
所以你应该能够做这样的事情
renderer.render();
fs.writeFile('image.png', canvas.toDataURL(), function(){
// done
})
关于javascript - 使用 Node Canvas 在服务器端渲染 Three.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35822912/