【问题标题】:How to fill the shape, made up of GL_LINE_LOOP如何填充形状,由 GL_LINE_LOOP 组成
【发布时间】:2015-12-23 11:29:45
【问题描述】:

我正在尝试制作水模拟。但我仅限于使用 2D,所以我开始使用正弦波通过 Gl_Line_loop 来制作海洋的边界。但我无法填补它。我尝试将其更改为 Gl_polygon 模式,但我没有得到正确的形状。这是代码:

here is the image of wave, i want to get filled

【问题讨论】:

    标签: c++ opengl line wave sine-wave


    【解决方案1】:

    要对上述内容进行细分,请沿直线指定一个顶部顶点,然后是一个底部顶点,然后绘制一个三角形条带。即对于沿正弦波的每个 (x, y) 位置,发射两个顶点,相同的 x 但 y = 0(底部)。然后渲染一个三角条。

    类似这样的:

    glBegin(GL_TRIANGLE_STRIP);
    for(x=-50;x<=50;x+=inc){
        k = 2 * 3.14 / wavelength;
        y = amplitude * sin(k * x);
        glVertex3f(x, y-35, 0);
        glVertex3f(x, y, 0);
    }
    glEnd();
    

    【讨论】:

    • 你能不能给我建议一下如何让它看起来像水在流动??
    • x 位置的波长角固定为 -50 到 50 为 sin(k * x)。你需要 k * x 随时间变化,所以也许 sin(k * (x + t)),其中 t 从 0 开始,每帧递增少量。
    • 你先生是个天才:'它正在动人……再次感谢:')
    猜你喜欢
    • 2017-03-13
    • 1970-01-01
    • 2019-04-02
    • 2017-03-12
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多