贴段代码试试看

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?

也不支持
在这里插入代码片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饶先宏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值