【发布时间】:2015-12-23 11:29:45
【问题描述】:
我正在尝试制作水模拟。但我仅限于使用 2D,所以我开始使用正弦波通过 Gl_Line_loop 来制作海洋的边界。但我无法填补它。我尝试将其更改为 Gl_polygon 模式,但我没有得到正确的形状。这是代码:
【问题讨论】:
标签: c++ opengl line wave sine-wave
我正在尝试制作水模拟。但我仅限于使用 2D,所以我开始使用正弦波通过 Gl_Line_loop 来制作海洋的边界。但我无法填补它。我尝试将其更改为 Gl_polygon 模式,但我没有得到正确的形状。这是代码:
【问题讨论】:
标签: c++ opengl line wave sine-wave
要对上述内容进行细分,请沿直线指定一个顶部顶点,然后是一个底部顶点,然后绘制一个三角形条带。即对于沿正弦波的每个 (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();
【讨论】: