24小时热门版块排行榜    

查看: 593  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

cln116

捐助贵宾 (知名作家)

[求助] 如何将数组传入Shader,并计算其Shader中的纹理坐标已有1人参与

刚接触GLSL和shader不久,很多东西不熟悉,希望大家不吝赐教。

目前的想法是把速度数组存入图像中,顶点数量为M*M,图像数组为float speedImage[M][M][4],其中speedImage[j][0]、speedImage[j][1]、speedImage[j][2]分别为顶点(i, j)的 x、y、z轴方向的速度;将图像作为2D纹理传入shader,进而修改shader中的对应顶点的光照。

主要问题是如何在Shader中计算顶点(i,j)对应的速度图像的纹理坐标。曾经尝试过使用gl_VertexID,但是计算结果有问题。拜托各位了。

*注:如果能帮助本人有效解决问题,除了金币,还可以给予一定的资金作为酬谢。
回复此楼
披荆斩棘中前进。
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

木叶清风

木虫 (正式写手)

【答案】应助回帖

★ ★ ★
cln116: 金币+3, ★★★很有帮助, 我试试,谢谢。 2015-03-13 16:47:31
引用回帖:
3楼: Originally posted by cln116 at 2015-03-12 16:58:52
另外看到有的Demo中采用的是纹理坐标,即:gl_MultiTexCoord0赋值给gl_TexCoord,这里的:gl_MultiTexCoord0是否受到triangle的影响?...

我觉得最简单的就是你把相邻两行的四个像素点当成两个三角形绘制,这样多好取位置
www.cvdelver.com
4楼2015-03-13 13:06:46
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

木叶清风

木虫 (正式写手)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
cln116: 金币+3, 有帮助, 我也在考虑这两种方式,都尝试一下吧,也许VBO效率更高。 2015-03-12 16:56:14
第一,得看你的triangle的index是怎么排列的,理论上来说你的这种做法完全是没有问题的;
第二,还可以考虑直接用vbo
www.cvdelver.com
2楼2015-03-12 16:14:49
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

cln116

捐助贵宾 (知名作家)

引用回帖:
2楼: Originally posted by 木叶清风 at 2015-03-12 16:14:49
第一,得看你的triangle的index是怎么排列的,理论上来说你的这种做法完全是没有问题的;
第二,还可以考虑直接用vbo

另外看到有的Demo中采用的是纹理坐标,即:gl_MultiTexCoord0赋值给gl_TexCoord[n],这里的:gl_MultiTexCoord0是否受到triangle的影响?
披荆斩棘中前进。
3楼2015-03-12 16:58:52
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见