nehe第十一课飘动的旗帜waving texture实现原理

本文介绍了一种使用平面网格模拟曲面波动的技术。该方法通过将一个大正方形划分为44×44个小格子,并对每个格子应用正弦函数以创建波动效果。此外,还详细介绍了如何通过循环位移算法使波动向前传播。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我认为这个实现过程最关键的两部分

一是用平面模拟曲面

二实现波动效果

第一部分

for(int x=0; x<45; x++)
{
// Loop Through The Y Plane
for(int y=0; y<45; y++)
{
// Apply The Wave To Our Mesh
points[x][y][0]=float((x/5.0f)-4.5f);
points[x][y][1]=float((y/5.0f)-4.5f);
points[x][y][2]=float(sin((((x/5.0f)*40.0f)/360.0f)*3.141592654*2.0f));
}
}

可以想象成一个大的正方形被分割成44*44个小方格

每一竖条小方格在一个平面上,通过这些小竖条来模拟正弦曲面。

第二部分原文讲得比较清楚了。就是依次把后边的平面位置给前面的,再把最前面的给最后一个。就像循环左移一样。

for( y = 0; y < 45; y++ ) // Loop Through The Y Plane
{
hold=points[0][y][2]; // Store Current Value One Left Side Of Wave
for( x = 0; x < 44; x++) // Loop Through The X Plane
{
// Current Wave Value Equals Value To The Right
points[x][y][2] = points[x+1][y][2];
}
points[44][y][2]=hold; // Last Value Becomes The Far Left Stored Value
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值