请选择 进入手机版 | 继续访问电脑版

开源计算机图形学社区(Open Source Computer Graphics Community) |OpenGPU Forum (2007-2013)| OpenGPU Project

 找回密码
 注册
搜索
查看: 930|回复: 4

请问:用shader做飘动的旗帜,法线如何计算? [复制链接]

Rank: 9Rank: 9Rank: 9

注册时间
2011-11-12
积分
351
发表于 2017-8-25 10:41:44 |显示全部楼层
请教一下各位老师,在用 vertex shader 渲染旗帜飘动或植物摆动的效果时,用时间值计算曲线或纹理查询来对顶点的位置进行波动,就可以实现,但问题是这个顶点的法线要如何计算呢?
是不是需要再计算出周围的点的位置,来确定该点的法线?那至少要额外计算4次,才能确定,感觉这个方法效率有问题。
你们是怎么做的呢?望指点,谢谢.
金属星球 www.metalstar.net
独立原创赛车模拟游戏项目《极速时刻》

Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28

注册时间
2007-6-11
积分
29720
发表于 2017-8-29 15:23:28 |显示全部楼层
先算面法线,然后平均共享面法线计算顶点法线,计算完了之后储存为GPU Buffer,用的时候拿出来。

使用道具 举报

Rank: 9Rank: 9Rank: 9

注册时间
2011-11-12
积分
351
发表于 2017-8-29 20:23:59 |显示全部楼层
Jedimaster 发表于 2017-8-29 15:23
先算面法线,然后平均共享面法线计算顶点法线,计算完了之后储存为GPU Buffer,用的时候拿出来。 ...

感谢回复,不过,您说的是在cpu计算所有的点与法线,再提交到顶点缓冲进行渲染吧?我的想法是最好能在渲染时,计算顶点坐标与法线。不知道现在的游戏都是怎么做的。

使用道具 举报

Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28

注册时间
2007-6-11
积分
29720
发表于 2017-8-31 08:54:18 |显示全部楼层
johnny_sun 发表于 2017-8-29 20:23
感谢回复,不过,您说的是在cpu计算所有的点与法线,再提交到顶点缓冲进行渲染吧?我的想法是最好能在渲 ...

又是一个GPU入魔的主。

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

想要所谓“渲染时”,不就是用GPU计算功能生成新的缓冲么,然后再来用于渲染。

使用道具 举报

Rank: 4

注册时间
2017-6-9
积分
21
发表于 3 天前 |显示全部楼层
HLSL 中可以用ddx ddy 来计算屏幕空间xy方向的偏导数来重建法线,像一些fft海面渲染很多也是用这个来计算法线的

使用道具 举报

最近看过此主题的会员

您需要登录后才可以回帖 登录 | 注册

‹‹
我的工具栏

关于我们|手机版|Archiver|开源计算机图形学社区(Open Source Computer Graphics Community) | OpenGPU Project | OpenGPU Forum (2007-2013)

GMT+8, 2017-9-25 01:44 , Processed in 0.057687 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部