发明名称 |
一种屏幕空间镜头水珠实时渲染方法 |
摘要 |
本发明公开了一种计算机视觉特效,具体涉及一种屏幕空间镜头水珠实时渲染方法,导入场景纹理、随机数噪声纹理Texture_RandomNoise和噪声纹理Texture_SimplexNoise,获取水珠可以在屏幕上出现的多个随机位置,再计算光线折射的偏移量,对水珠曲面进行光纤折射渲染出水珠。简化了水珠曲面生成算法,利用Simplex噪声实时生成随机水珠边缘曲线,能够在屏幕空间实时渲染出视觉效果好的屏幕水珠特效,而不需要高度的水珠纹理,因此渲染效果不受高度纹理分辨率的限制,即便是在普通配置的计算机上也能渲染出高质量的屏幕水珠。 |
申请公布号 |
CN102930588B |
申请公布日期 |
2015.05.20 |
申请号 |
CN201210350426.0 |
申请日期 |
2012.09.20 |
申请人 |
四川川大智胜软件股份有限公司;四川大学 |
发明人 |
叶万方;邵鑫;陈楷民;张赐;唐传奇 |
分类号 |
G06T15/00(2011.01)I;G06T15/06(2011.01)I |
主分类号 |
G06T15/00(2011.01)I |
代理机构 |
成都信博专利代理有限责任公司 51200 |
代理人 |
卓仲阳 |
主权项 |
一种屏幕空间镜头水珠实时渲染方法,其特征在于包括以下步骤:用着色语言渲染到场景纹理Texture_Scene,将Texture_Scene传入屏幕水珠渲染PASS_WaterDropRender;向Pass_WaterDropRender导入一张随机数噪声纹理Texture_RandomNoise和一张Simplex噪声纹理Texture_SimplexNoise;通过对随机噪声纹理Texture_RandomNoise的噪音值采样计算,获取水珠可以在屏幕上出现的多个随机位置;每个随机位置的坐标作为水珠的屏幕中心点O,生成水珠在屏幕上的随机边界曲线;简化水珠曲面;计算光线折射的偏移量,对水珠曲面进行光线折射,通过与屏幕坐标相对应的背景纹理颜色值渲染出水珠内的颜色值;所述生成水珠在屏幕上的随机边界曲线,是利用Simplex噪声纹理的Texture_SimplexNoise来生成,在屏幕空间中设定遍历到一个UiVj像素点B,屏幕中心点O与UiVj像素点B的线段为UiVj像素段OB,则UiVj像素段OB经过边界曲线的点为边界曲线点P,边界曲线点P到屏幕中心点O的长度OP通过以下方法得到:设一基准点A,其与屏幕中心点O的线段OA平行于Y轴,且方向指向Y轴正方向,从线段OA开始,将水珠边界曲线等分为N份,通过UiVj像素段OB和基准点A到屏幕中心点O的线段OA,利用夹角公式<img file="FDA0000669946840000011.GIF" wi="442" he="141" />来计算UiVj像素段OB属于哪个等分区,采用<img file="FDA0000669946840000012.GIF" wi="404" he="134" />计算分区索引Index,其中Δβ表示每个等分区的夹角,即<img file="FDA0000669946840000013.GIF" wi="200" he="132" />得到Index的情况下,将Simplex噪声纹理Texture_SimplexNoise中像素位置颜色的红色分量的值Texel_Red取出,将Texel_Red乘以一个缩放因子θ得出边界曲线点P到屏幕中心点O的长度OP;依次取N为不同份时,算出不同边界曲线点P到屏幕中心点O的长度OP并通过Simplex噪声纹理将具有不同长度OP的边界曲线点P连续起来得出水珠的随机边界曲线。 |
地址 |
610045 四川省成都市武侯区武科东一路七号 |