首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

webgl虚线
EN

Stack Overflow用户
提问于 2013-03-11 06:17:18
回答 2查看 3K关注 0票数 5

有人能告诉我如何在不使用Three.js或任何其他工具包的情况下在WebGL中绘制虚线吗?只是简单的WebGL。我对WebGL非常陌生,似乎找不到这个问题的答案。

EN

回答 2

Stack Overflow用户

发布于 2013-03-11 08:12:02

在WebGL (或OpenGL ES)中没有原生点绘线,但如果在VBO中包含了顶点属性,则使用片段着色器可以轻松实现该效果。

代码语言:javascript
运行
复制
precision highp float;
varying float LengthSoFar; // <-- passed in from the vertex shader
const vec3 Color = vec3(1, 1, 1);
const float NumDashes = 10.0; // 10 dashes for every 1 unit in LengthSoFar

void main()
{
    float alpha = floor(2.0 * fract(LengthSoFar * NumDashes));
    gl_FragColor = vec4(Color, alpha);
}

另一种方法是查找1D纹理。到目前为止的length属性实际上只是一个1D纹理坐标。

票数 3
EN

Stack Overflow用户

发布于 2013-03-12 01:49:01

我在过去做过的一件事是创建一个包含路径的点的顶点缓冲区,然后使用

代码语言:javascript
运行
复制
gl.drawArrays(gl.LINES, 0, vertexCount);

使用gl.LINES自然会跳过路径的每隔一段,如果路径点足够频繁,就会产生虚线效果。它简单易懂,但在适当的情况下有效。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15328350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档