javascript - 使用 Node Canvas 在服务器端渲染 Three.js?

标签 javascript node.js canvas three.js node-canvas

我一直在尝试使用官方的 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/

相关文章:

javascript - 无法使用递归求解所有情况的幂和

javascript - Gsheet 由于脚本而超时

javascript - <!-- 在 JavaScript 中是什么意思?

mysql - 如何在 sequelize 中编写嵌套的 select 语句?

node.js - NestJS e2e 测试模拟 Session 装饰器

javascript - 用数学旋转矩形

javascript - 有什么办法可以缩短我的自定义函数的代码吗?

javascript - Expressjs中间件中定义的静态变量

javascript - 如何清除 Canvas ?

javascript - 鼠标事件到 ipad 兼容性的触摸事件