我正在创建一个3D应用程序,它使用用C ++编写的节点插件生成3D对象(顶点,法线,索引等),我需要传递给我的webGL窗口(我使用的是Three.js)。我的申请包含在Electron中。
将大型数据数组(我的3D对象包含多个多边形)从C ++(Node addon)传输到渲染器前端的最有效方法是什么?理想情况下,如果我可以在C ++中分配一些堆内存并且可以从电子渲染器线程访问它来创建Three.Js对象,我会很喜欢它。这甚至可能吗?
现在我在C ++中分配缓冲区,通过v8将它们传递给Node(主线程),然后使用Electron的MainWindow.webContents将这些数据发送到渲染线程,然后创建我的三个用于在webGL中渲染的.js对象。这似乎效率低下,所以我希望有更好的方法。
我正在考虑的替代方案是让C ++代码创建一个文件,然后让前端读取文件。