模拟unity自带地形的grass

编程入门 行业动态 更新时间:2024-10-26 14:35:23

模拟unity<a href=https://www.elefans.com/category/jswz/34/1769640.html style=自带地形的grass"/>

模拟unity自带地形的grass

 有一个项目地形是整个Mesh,项目想加入模拟Terrain中飘动草的效果。研究了一下grass,第一:那些grass有飘动的效果,应该是在一个面上作了个位点偏移shade;第二:grass一直保持朝向摄像机。  后来上网总结了一下,下面是一些代码。

关于小草有飘动的效果:加入如下shade的材质,放在Quad上:

Shader "Custom/Grass" {Properties {_MainTex ("Grass Texture", 2D) = "white" {}_TimeScale ("Time Scale", float) = 1}SubShader{Tags{"Queue"="Transparent" "RenderType"="Opaque" "IgnoreProject"="True"}Pass{Tags{"LightMode"="ForwardBase"}ZWrite OffBlend SrcAlpha OneMinusSrcAlphaCull OffCGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"sampler2D _MainTex;half _TimeScale;struct a2v {float4 vertex : POSITION;float4 texcoord : TEXCOORD0;};struct v2f {float4 pos : SV_POSITION;float2 uv : TEXCOORD0;};v2f vert(a2v v){v2f o;float4 offset = float4(0,0,0,0);offset.x = sin(3.1416 * _Time.y * clamp(v.texcoord.y-0.5, 0, 1))  * _TimeScale;o.pos = UnityObjectToClipPos(v.vertex + offset);o.uv = v.texcoord.xy;return o;}fixed4 frag(v2f i) : SV_Target{return tex2D(_MainTex, i.uv);}ENDCG}}FallBack Off
}
第二:使小草正面朝向摄像机:代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class GrassFollow : MonoBehaviour {public Camera m_Camera;public Transform [] m_GrassObjs;//剩下的grass,跟着做同样动作public Vector3 Normal;//面法线  Quaternion direction;Vector3 m_qua;public Vector3 Qua{get{return m_qua;}set{m_qua.y  = value.y ;m_qua.x = value.x;}}void Start(){direction = Quaternion.FromToRotation(new Vector3(0, 0, 1), Normal);}void Update(){if(m_Camera==null){return;}Qua = (m_Camera.transform.rotation * direction).eulerAngles;transform.eulerAngles = Qua;foreach (Transform child in m_GrassObjs ){child.rotation = transform.rotation;}}
}
上面代码把camera放上,就有朝向效果。


更多推荐

模拟unity自带地形的grass

本文发布于:2023-06-22 05:21:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/828302.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自带   地形   unity   grass

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!