我正在尝试实现一个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)
并不能提供所需的叶片移动。有人会建议任何其他可能运行良好的方程吗?
答案 0 :(得分:1)
*插入不推荐使用固定功能管道的标准备注*
我建议使用着色器,然后可以通过统一传递时间参数并相应地调整位置(并正常重新计算)。这样,您还可以针对每个叶子以不同方式偏移动画。
答案 1 :(得分:0)
抱歉,我无法回答你的问题。为了真实地模拟,我相信你需要先进的方法。
对于便宜的实验,我建议您尝试更改x
或y
坐标而不是z
坐标,看看它是什么样的。
另一件事,似乎你用相同的转换改变每个叶子。随机化它们。