Как заполнить форму, составленную из GL_LINE_LOOP
Я пытаюсь сделать симуляцию воды. Но я ограничен в использовании 2D, поэтому я начал с создания границы моря с помощью синусоиды через Gl_Line_loop. но я просто не могу его заполнить. Я попытался изменить его на режим Gl_polygon, но тогда я не получил правильную форму. вот код:
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();