unity-shader-草grass实现
title:unity-shader-草grass实现
categories:Unity3d-Shader
tags:[unity,shader,grass,草,geometryshader]
date:2019-05-2002:37:16
comments:fal
unity-shader-草grass实现
前篇
草体结构
多个⾯⽚组成草体结构
传统的⽅式,即将模型数据从CPU传递给GPU,GPU再根据这些数据进⾏渲染的⽅式在渲染⼤规模的草体时,往往会忽略单个草体的模型
细节。因为单个草体的建模如果过于细致,则渲染⼤⽚的草地就需要传递很多多边形,从⽽造成性能的下降。
因此,⼀个渲染⼤⽚草地的⽅案往往需要满⾜以下条件:
单个草的多边形不能过多,最好⼀棵草只⽤⼀个quad来表⽰
从不同的⾓度观察,草都必须显得密集
草的排布不能过于规则,否则会不⾃然
综上,渲染草体时的经典结构——星形就出现了
星型结构可以减⼩从不同⾓度看到⾯⽚,防⽌看到的知识⾯⽚的侧⾯(观察⽅向与⾯⽚平⾏,也就啥都看不到)
顶点动画
在加上顶点动画,让看起来有风吹的效果
if(.y>0.5){
float4translationPos=
float4(sin(_Time.x*_TimeFactor*Pi),0,sin(_Time.y*_TimeFactor*Pi),0);
+=translationPos*_StrengthFactor;
}
判断草⾯⽚的哪些顶底需要做动画,⽤的是uv中的v值>0.5(opengl,dx是反过来的),所以⾯⽚顶部顶点的v值要⼤于0.5
本文发布于:2022-11-25 01:14:36,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/15429.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |