在OpenGL中用风实现树叶的运动

时间:2014-07-02 13:29:28

标签: opengl

我正在尝试实现一个OpenGL程序,该程序将显示树叶随风的移动。作为起点,我编写了以下idle()函数

zh=0;

void idle()
 {
  double t=glutGet(GLUT_ELAPSED_TIME)/1000.0;
  zh=sin(t);
  glutPostRedisplay();
 }

用于形成我尝试使用

的叶子的顶点
glVertex3f(x,y,z+zh);

使用zh=sint(t)并不能提供所需的叶片移动。有人会建议任何其他可能运行良好的方程吗?

2 个答案:

答案 0 :(得分:1)

*插入不推荐使用固定功能管道的标准备注*

我建议使用着色器,然后可以通过统一传递时间参数并相应地调整位置(并正常重新计算)。这样,您还可以针对每个叶子以不同方式偏移动画。

答案 1 :(得分:0)

抱歉,我无法回答你的问题。为了真实地模拟,我相信你需要先进的方法。

对于便宜的实验,我建议您尝试更改xy坐标而不是z坐标,看看它是什么样的。

另一件事,似乎你用相同的转换改变每个叶子。随机化它们。