nehe第十一課飄動的旗幟waving texture實現原理

我認爲這個實現過程最關鍵的兩部分

一是用平面模擬曲面

二實現波動效果

第一部分

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
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章