中文第一计算机图形学社区OpenGPU 版权所有2007-2018

 找回密码
 注册

扫一扫,访问微社区

搜索
查看: 1560|回复: 4

请问:用shader做飘动的旗帜,法线如何计算?

[复制链接]
发表于 2017-8-25 10:41:44 | 显示全部楼层 |阅读模式
请教一下各位老师,在用 vertex shader 渲染旗帜飘动或植物摆动的效果时,用时间值计算曲线或纹理查询来对顶点的位置进行波动,就可以实现,但问题是这个顶点的法线要如何计算呢?
是不是需要再计算出周围的点的位置,来确定该点的法线?那至少要额外计算4次,才能确定,感觉这个方法效率有问题。
你们是怎么做的呢?望指点,谢谢.
发表于 2017-8-29 15:23:28 | 显示全部楼层
先算面法线,然后平均共享面法线计算顶点法线,计算完了之后储存为GPU Buffer,用的时候拿出来。
 楼主| 发表于 2017-8-29 20:23:59 | 显示全部楼层
Jedimaster 发表于 2017-8-29 15:23
先算面法线,然后平均共享面法线计算顶点法线,计算完了之后储存为GPU Buffer,用的时候拿出来。 ...

感谢回复,不过,您说的是在cpu计算所有的点与法线,再提交到顶点缓冲进行渲染吧?我的想法是最好能在渲染时,计算顶点坐标与法线。不知道现在的游戏都是怎么做的。
发表于 2017-8-31 08:54:18 | 显示全部楼层
johnny_sun 发表于 2017-8-29 20:23
感谢回复,不过,您说的是在cpu计算所有的点与法线,再提交到顶点缓冲进行渲染吧?我的想法是最好能在渲 ...

又是一个GPU入魔的主。

任何游戏都是做模型出动画的时候这些都是已经计算好的。

想要所谓“渲染时”,不就是用GPU计算功能生成新的缓冲么,然后再来用于渲染。
发表于 2017-9-22 10:12:32 | 显示全部楼层
HLSL 中可以用ddx ddy 来计算屏幕空间xy方向的偏导数来重建法线,像一些fft海面渲染很多也是用这个来计算法线的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|小黑屋|Archiver|手机版|中文第一计算机图形学社区OpenGPU

GMT+8, 2018-2-25 21:16 , Processed in 0.052402 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表