[英]Add Text/Image to the 3D cube/model rendered in Canvas using Three.js at runtime
[英]Is there a way to insert html elements inside of a 3D image rendered using Three.js?
Framework used: React
3D Image: glb/gltf format
Rendered using: three.js packages
Mission: To insert a number to each of the object and display it above them
方法:我尝试获取画布元素,然后使用添加文本
var parentofCanvas = document.getElementById("untitled.glb");
var childCanvas = parentofCanvas.firstChild;
var context = childCanvas.getContext("webgl");
console.log(childCanvas);
console.log(parentofCanvas.firstChild.nodeName);
console.log(context);
// var text = "Howdy World!";
// context.font = "25px Arial";
// context.fillStyle = "red";
// var x = 50;
// var y = 100;
// context.fillText(text, x, y);
}, []);
其中 x 和 y 是坐标。 我收到一条错误消息,说 fillText 不是函数。 那么,我错过了什么? 有没有其他方法可以在 3D 画布图像中插入/渲染 html 元素?
链接到代码和框: https ://codesandbox.io/s/dreamy-lichterman-lbb4z ? file =/ src/Test.js
(仅供参考:这是 Dreamy-lichterman 的分叉项目)
@react-three/drei 中有一个 Html 组件,可用于在其中插入 HTMl 元素。 以下是沙箱的链接,具有相同的示例和说明(评论): https : //codesandbox.io/s/embed-html-3d-63uep?file=/src/Test.js
可以在以下位置找到文档: https : //github.com/pmndrs/drei#html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.