【发布时间】:2013-12-16 19:11:26
【问题描述】:
当我运行下面的 JavaScript/WebGL 代码时(请向下滚动),我在开发控制台中看到以下警告消息:
[.WebGLRenderingContext]
PERFORMANCE WARNING: Attribute 0 is disabled.
This has significant performance penalty
下面的代码成功地在画布上绘制了一个白点。但是,我希望警告消失。我需要在下面的代码中进行哪些更改才能使其停止出现?
HTML:
<!DOCTYPE html>
<html>
<body>
<canvas id="canvas" width="100" height="100"></canvas>
</body>
</html>
JavaScript:
var
VERTEX_SHADER_SOURCE = ""+
"void main() {"+
" gl_Position = vec4(0.0, 0.0, 0.0, 1.0);"+
" gl_PointSize = 10.0;"+
"}",
FRAGMENT_SHADER_SOURCE = ""+
"void main() {"+
" gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);"+
"}",
canvas = document.getElementById('canvas'),
gl = canvas.getContext('webgl'),
vertexShader = gl.createShader(gl.VERTEX_SHADER),
fragmentShader = gl.createShader(gl.FRAGMENT_SHADER),
shaderProgram = gl.createProgram();
// Compile the shaders.
gl.shaderSource(vertexShader, VERTEX_SHADER_SOURCE);
gl.compileShader(vertexShader);
gl.shaderSource(fragmentShader, FRAGMENT_SHADER_SOURCE);
gl.compileShader(fragmentShader);
// Create linked program.
gl.attachShader(shaderProgram, vertexShader);
gl.attachShader(shaderProgram, fragmentShader);
gl.linkProgram(shaderProgram);
gl.useProgram(shaderProgram);
// Clear the canvas.
gl.clearColor(0.0, 0.0, 0.0, 1.0);
gl.clear(gl.COLOR_BUFFER_BIT);
// Draw the point.
gl.drawArrays(gl.POINTS, 0, 1);
这是一个最小但完整的示例,因此我正在寻找一个可以明确告诉我要更改哪些内容的答案。 Here is a JSFiddle of the case。我在 Chrome 30.0.1599.101(在 OS X 10.8.5 上)中运行它。
【问题讨论】:
-
要对 webgl 做任何有用的事情,您最终会想要获取属性位置并使用它们(发送顶点、颜色等)。然后警告可能会消失。
标签: javascript html canvas webgl