没有绘制出点
来源:2-4 绘制一个点
armin12138
2022-12-21
const ctx = document.getElementById('canvas') const gl = ctx.getContext('webgl') // 着色器 // 创建着色器源码 const VERTEX_SHADER_SOURCE = ` void main() { // 要绘制的点的坐标 gl_Position = vec4(0.0, 0.0, 0.0, 1.0) // 点的大小 gl_PointSize = 10.0 } ` // 顶点着色器 // gl_Position vec4(0.0, 0.0, 0.0, 1.0) x, y, z, w齐次坐标 (x/w, y/w, z/w) // gl_FragColor vec4(1.0, 0.0, 0.0, 1.0) r, g, b, a const FRAGMENT_SHADER_SOURCE = ` void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) } ` // 片元着色器 // 创建着色器 const vertexShader = gl.createShader(gl.VERTEX_SHADER) const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER) gl.shaderSource(vertexShader, VERTEX_SHADER_SOURCE) // 指定顶点着色器的源码 gl.shaderSource(fragmentShader, FRAGMENT_SHADER_SOURCE) // 指定片元着色器的源码 // 编译着色器 gl.compileShader(vertexShader) gl.compileShader(fragmentShader) // 创建一个程序对象 const program = gl.createProgram() gl.attachShader(program, vertexShader) gl.attachShader(program, fragmentShader) gl.linkProgram(program) gl.useProgram(program) // 执行绘制 // 要绘制的图形是什么,从哪个开始,使用几个顶点 gl.drawArrays(gl.POINTS, 0, 1)
WebGL: INVALID_OPERATION: useProgram: program not valid
WebGL: INVALID_OPERATION: drawArrays: no valid shader program in use
控制台报了两个警告,请问老师是哪里有问题
写回答
2回答
-
顶点和片元着色器缺少分号,这个得加上
012022-12-21 -
armin12138
提问者
2022-12-21
已解决,忘了加分号
00
相似问题