GS
发布后还能修改吗?
#version 400
uniform double psize;
uniform dvec2 pfrom;
layout(lines) in;
layout(points, max_vertices = 256) out;
out VS_OUT {
vec4 vColor;
}vs_out;
void main()
{
float x, u;
int outcount;
int i, j, last, limcount;
u = float(gl_in[0].gl_Position.x);
u *= float(psize);
u += float(pfrom.x);
if (u > 0.0 && u < 4.0) {
x = 0.5;
last = 0;
limcount = 0;
/*
输出像素之前先迭代若干次,
这个次数跟细分网格的y相关,
这样可以在不同的y输入时输出的
迭代位置所经过的迭代次数不一样
*/
for (i = 0;i<512 * (1.0 + gl_in[0].gl_Position.y);i++) {
x = u * x * (1.0 - x);
}
outcount = 0;
for (i = 0;i<2000;i++) {
float y;
x = u * x * (1.0 - x);
y = ((x * 2 - 1.0f) - float(pfrom.y)) / float(psize);
if (y > -1.0 && y < 1.0) {
float xx, yy;
xx = gl_in[0].gl_Position.x;
yy = float(y);
gl_Position = vec4(xx, yy, 0.0f, 1.0f);
/*每绘制一次累加0.1到当前像素*/
vs_out.vColor = vec4(gl_in[0].gl_Position.y/10.0, 0.01f, 0.0f, 1.0f);
EmitVertex();
outcount ++;
if (outcount > 250)
break;
}
}
}
gl_Position = vec4(0, 0, 0.0f, 1.0f);
vs_out.vColor = vec4(1.0f, 1.0f, 1.0f, 1.0f);
EmitVertex();
EndPrimitive();
}
代码类型不支持opengl shader?
也不支持
在这里插入代码片