Three.js 行在 Canvas 渲染器中不起作用,但在 WebGL 渲染器中起作用
我想在非 WebGL 浏览器上使用 Canvas 渲染器,在其他浏览器上使用 WebGL。 我的代码在 webGL 渲染器上运行良好,但在画布渲染器上则无法显示 THREE.Line。
//Edges
var edgeMat = new THREE.LineBasicMaterial({
color: 0x000000,
opacity: 0.6
} );
for (var edgeId in graph.edgesl) {
var nodeInId = graph.edgesl[edgeId];
var nodeOutId = graph.edgesr[edgeId];
var edgeGeom = new THREE.Geometry();
edgeGeom.vertices.push(new THREE.Vertex(nodes[nodeInId].position));
edgeGeom.vertices.push(new THREE.Vertex(nodes[nodeOutId].position));
var drawingLine = new THREE.Line( edgeGeom , edgeMat );
//Store In, Out node ID
drawingLine.inNodeId = nodeInId;
drawingLine.outNodeId = nodeOutId;
nodes[nodeInId].edges.push(drawingLine);
nodes[nodeOutId].edges.push(drawingLine);
//Meshes additionally need also dynamic flag enabled (to keep internal typed arrays).
drawingLine.dynamic = true;
scene.addObject(drawingLine );
edges.push(drawingLine);
}
有人对此有什么想法吗?
谢谢你!
I would like to use Canvas renderer on non WebGL browsers and WebGL on others.
My code works fine with webGL renderer but with canvas renderer the THREE.Line doesn't shows.
//Edges
var edgeMat = new THREE.LineBasicMaterial({
color: 0x000000,
opacity: 0.6
} );
for (var edgeId in graph.edgesl) {
var nodeInId = graph.edgesl[edgeId];
var nodeOutId = graph.edgesr[edgeId];
var edgeGeom = new THREE.Geometry();
edgeGeom.vertices.push(new THREE.Vertex(nodes[nodeInId].position));
edgeGeom.vertices.push(new THREE.Vertex(nodes[nodeOutId].position));
var drawingLine = new THREE.Line( edgeGeom , edgeMat );
//Store In, Out node ID
drawingLine.inNodeId = nodeInId;
drawingLine.outNodeId = nodeOutId;
nodes[nodeInId].edges.push(drawingLine);
nodes[nodeOutId].edges.push(drawingLine);
//Meshes additionally need also dynamic flag enabled (to keep internal typed arrays).
drawingLine.dynamic = true;
scene.addObject(drawingLine );
edges.push(drawingLine);
}
Anyone has any ideas for this?
Thank You!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从 r45
scene.addObject(drawingLine);
必须现在scene.add(drawingLine);
这里同样的问题:
Three.js 在 render() 上不缩放或旋转网格
From r45
scene.addObject(drawingLine);
must be nowscene.add(drawingLine);
Same issue here:
Three.js not scaling or rotating Mesh on render()