Gray-Scott模型生成图纹的问题

qq_15560419 2017-03-31 12:59:19
反应扩散方程算法(其中a就是U,b就是V):
for (int x = 0; x < WIDTH; x++)
{
for (int y = 0; y < HEIGHT; y++)
{
float a = GS_Grid[x][y].a;
float b = GS_Grid[x][y].b;
//更新
GS_Grid[x][y].a = a +
((GS_DA*GS_Laplacian(x, y, GS_U)) -
(a*b*b) +
(GS_FEED*(1 - a)))*GS_DT;
GS_Grid[x][y].b = b +
((GS_DB*GS_Laplacian(x, y, GS_V)) +
(a*b*b) -
((GS_KILL + GS_FEED)*b))*GS_DT;

}
}

使用OpenGL glut 管理窗口,将算法得到的U、V值应用到纹理矩阵中:

for (i = 0; i < HEIGHT; i++) {
for (j = 0; j < WIDTH; j++) {
//c = ((((i & 0x8) == 0) ^ ((j & 0x8)) == 0)) * 255;//黑白方块交替

//int c = max(min(texNext[i][j].a - texNext[i][j].b, 1), 0);
c = floor((GS_Grid[i][j].a - GS_Grid[i][j].b) * 255);

GS_Pix[i][j][0] = (GLubyte)c;
GS_Pix[i][j][1] = (GLubyte)GS_Grid[i][j].a*255;// floor(GS_Grid[i][j].a * 255);
GS_Pix[i][j][2] = (GLubyte)GS_Grid[i][j].b * 255;// floor(GS_Grid[i][j].b * 255);
GS_Pix[i][j][3] = (GLubyte)255;
}
}

其中laplace GS_Grid[WIDTH][HEIGHT] = {};
GLubyte GS_Pix[WIDTH][HEIGHT][4]; //纹理数据
那么问题来了:使用glTeXImage2D并且纹理参数为GS_Pix,但是并没有得到什么图灵斑图,是不是哪里出了问题,请大神指教。。。???
...全文
532 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_15560419 2017-04-01
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
百度网页和百度图片搜相关关键字。
已找到问题所在 ,,。。
赵4老师 2017-03-31
  • 打赏
  • 举报
回复
百度网页和百度图片搜相关关键字。

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧