【发布时间】:2019-12-22 18:12:53
【问题描述】:
WebGL。我尝试通过WebGL Programming Guide book(第 2 章)画一个点。但我得到的是细长的矩形而不是正方形(Google Chrome v79.0.3945.88 和 Firefox v71.0):
为什么会这样?这是我的代码:
function main(){
const canvasId = "my-canvas";
const canvas = document.getElementById(canvasId);
if(!canvas){
console.log(`Canvas element with id = '${canvasId}' not found.`);
return;
}
const gl = canvas.getContext("webgl");
if(!gl){
console.log(`Can't to get WebGL context.`);
return;
}
gl.clearColor(0.0,1.0,1.0,1.0);
gl.clear(gl.COLOR_BUFFER_BIT);
const vshader_src = `
void main() {
gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
gl_PointSize = 10.0;
}`;
const fshader_src = `
void main() {
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}`;
if(!initShaders(gl, vshader_src, fshader_src)){
console.log(`Can't initialize shaders.`);
return;
}
gl.drawArrays(gl.POINTS,0,1);
}
我的这个例子的完整代码来源是here(在src/code/lib/子目录下有书中用到的辅助文件)。
【问题讨论】:
-
教程中的代码似乎和你的例子不一样rodger.global-linguist.com/webgl/ch02/HelloPoint2.js
标签: javascript webgl