css - 当在 css 中设置 Canvas 大小时,WebGL 损坏了上下文

标签 css webgl

在 WebGL 页面中,当我用像
这样的好旧方法对 Canvas 大小进行硬编码时
一切看起来都很棒。但是将大小部分移动到 css 会产生非常像素化的图像,因为它以非常小的尺寸渲染然后放大。我想这是因为我在页面加载时初始化了 webgl 上下文,但 css 稍后生效,所以 webgl 认为控件比实际小。无论我的猜测是对还是错,我该如何解决?

最佳答案

在初始化 webgl 上下文之前,我设法使用以下代码解决了这个问题。

canvas.width = canvas.clientWidth;
canvas.height = canvas.clientHeight;
this.gl = canvas.getContext("webgl"); 
... 

所以看起来 WebGL 会根据宽度和高度初始化上下文,同时可以说它应该根据客户端尺寸进行初始化。

关于css - 当在 css 中设置 Canvas 大小时,WebGL 损坏了上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19846585/

相关文章:

javascript - 程序无效且属性设置不正确

jquery - 过滤器反转在 IE (Internet Explorer) 中不起作用

CSS3 透视 : Visualising the view pyramid

jquery - 使用 JQuery Mobile 时包含 jqueryUI.js 时 HTML div 会隐藏

html - float hack 不会使滚动条出现..?

javascript - Three.js Raycaster 与球体的碰撞检测

javascript - 如何检测滚动条的一侧?

opengl - WebGL 和 OpenGL 是否使用相同的着色语言?

opengl-es - 在 OpenGL 着色器中在 main 之外进行计算是否合理?

javascript - 如何在 webgl 中从前/左/上向量创建投影矩阵