【发布时间】:2018-03-21 23:38:22
【问题描述】:
我想用 webgl 画出完美的线条。我没有在渲染器上下文中设置任何东西。我应该启用或设置什么或给canvas.getContext 提供什么选项来帮助我画一条看起来不错的线?我认为使用线性和其他东西(我不知道)给我一条不像楼梯的线。
canvas = document.getElementById('canvas');
canvas.height = window.innerHeight;
canvas.width = window.innerWidth;
gl = canvas.getContext('webgl2',{
antialias: true,
depth: false,
stencil: false
});
gl.viewport(0,0,canvas.width,canvas.height);
array = {
pos: {
numComponents: 2,
data: [-0.03, -1 , 0.03, 1],
},
};
Program = twgl.createProgramInfo(gl, [
`#version 300 es
precision highp float;
in vec2 pos;
void main(){gl_Position = vec4(pos, 0.0 , 1.0);}`,
`#version 300 es
precision highp float;
out vec4 Color;
void main(){Color.xyz = vec3(0.0) ; Color.a = 1.0;}
`
]);
Attrib = twgl.createBufferInfoFromArrays(gl, array);
obj = {
type: gl.LINES,
programInfo: Program,
bufferInfo: Attrib,
//count: 1
};
requestAnimationFrame(() => twgl.drawObjectList(gl, [obj]));
<canvas id="canvas"></canvas>
<script src="https://twgljs.org/dist/3.x/twgl.min.js"></script>
提前致谢。
【问题讨论】:
-
您好,很遗憾,您的问题似乎不是很详细。为了获得一些帮助,您应该提供一些代码。向我们展示您迄今为止所做的尝试。也请考虑阅读Helpcenter中的Asking guidelines。
-
我没有看到 星星。画布是否抗锯齿取决于浏览器。您可以请求它不抗锯齿,它不会但要求它抗锯齿允许浏览器忽略您的请求。您可以使画布的大小大于显示的大小。您还可以创建自己的抗锯齿帧缓冲区并将其解析到画布上。但是,您应该知道 WebGL2 仅支持 1 像素宽的行。对于其他任何事情,您需要draw lines yourself using triangles。
标签: html5-canvas webgl webgl2 twgl.js