用于 webgl 渲染器的 canvas 元素的three.js dom id

Posted

技术标签:

【中文标题】用于 webgl 渲染器的 canvas 元素的three.js dom id【英文标题】:three.js dom id of canvas element used for webgl renderer 【发布时间】:2013-03-28 06:22:03 【问题描述】:

我想获取由three.js自动创建的canvas元素的id。

另外,我会同样高兴(也许更高兴)能够在构造期间传递预先存在的画布元素 ID。

经过研究,我尝试了这个:

renderer = new THREE.WebGLRenderer(  canvas: my_canvas  );

没有成功(它来自一个相当古老的构建,但希望它能工作)。也许自 2 年前以来某些参数语法发生了变化?

(my_canvas 是画布的id,也尝试过传递上下文,没有运气)

我终于尝试了:

document.getElementsByTagName('canvas');

它什么也没返回...这是一个令人困惑的问题,也是导致我在这里发帖的众所周知的稻草。

任何见解表示赞赏,谢谢! (我现在有投票权)

【问题讨论】:

使用renderer.domElement获取渲染器创建的画布对应的DOM元素。 另外,您可以将画布传递给 WebGLRenderer,请参见此处:mrdoob.github.com/three.js/docs/57/#Reference/Renderers/… => 根据文档(和源代码),这似乎是您所做的,它应该可以工作跨度> 请采纳答案。 【参考方案1】:

如果您查看three.js/src/renderers/WebGLRenderer.js(位于文件的最顶部)中的最新版本(r57),您会发现您实际上可以将画布参数传递给渲染器。如果你没有通过一个,那么就会为你创建一个。您可能需要发布一些不起作用的代码或更好的 jsfiddle,以便我们查看问题。

【讨论】:

【参考方案2】:
var canvas = document.getElementById("canvasID");
renderer = new THREE.WebGLRenderer( canvas: canvas );

【讨论】:

以上是关于用于 webgl 渲染器的 canvas 元素的three.js dom id的主要内容,如果未能解决你的问题,请参考以下文章

Webgl笔记

GISER&&PainterWebGL渲染初体验

Unity-UI(UGUI详解)02.1 Canvas组件、Visual组件

Unity-UI(UGUI详解)02.1 Canvas组件、Visual组件

在移动设备上支持 Canvas 和 WebGL (three.js)?

《WebGL编程指南》基础篇