小编use*_*682的帖子

使用着色器绘制抗锯齿圆

我是着色器编程的新手.我想用glsl绘制一个圆圈.我使用了一个带有尺寸的点并试图过滤掉半径之外的点.(改变alpha值).代码如下:

片段着色器:

#version 130
varying  vec2 textureCoordinate;
const float circleBorderWidth = 0.08;//for anti aliasing
void main() {
      float d = smoothstep(circleBorderWidth,0.1, 1.0-length(textureCoordinate));
      gl_FragColor = vec4(0.0, 1.0, 0.0, d);
}
Run Code Online (Sandbox Code Playgroud)

顶点着色器:

#version 130
attribute vec4 coord3d;
attribute vec2 varPos;
varying vec2 textureCoordinate;
void
main()
{
        textureCoordinate = varPos;
        gl_FrontColor = gl_Color;
        gl_Position = vec4(coord3d.xyz,1.);
        gl_PointSize = coord3d.w;
}
Run Code Online (Sandbox Code Playgroud)

数据:

float pos[] = {
    -1, -1,
     -1, 1,
     1, 1,
     1, -1,
};

float vertices[]={0.0,0.0f,0.0f,100.0f};
Run Code Online (Sandbox Code Playgroud)

绘制方法:

void drawScene() …
Run Code Online (Sandbox Code Playgroud)

geometry drawing glsl

14
推荐指数
1
解决办法
1万
查看次数

标签 统计

drawing ×1

geometry ×1

glsl ×1