我是靠谱客的博主 笑点低老师,最近开发中收集的这篇文章主要介绍unity岩浆气泡_Shader教程:使用Unity创建水流岩浆等流动效果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Shader "Custom/Stream" {

Properties {

_MainTex ("Albedo (RGB)", 2D) = "white" {}

_MainTint ("Diffuse Tint", Color) = (1,1,1,1)

_ScrollXSpeed ("X Scroll Speed", Range(0,10)) = 2

_ScrollYSpeed ("Y Scroll Speed", Range(0,10)) = 2

SubShader {

Tags { "RenderType"="Opaque" }

LOD 200

CGPROGRAM

// Physically based Standard lighting model, and enable shadows on all light types

#pragma surface surf Standard fullforwardshadows

// Use shader model 3.0 target, to get nicer looking lighting

#pragma target 3.0

// 将类型转换到CG中的可用类型

sampler2D _MainTex;

fixed4 _MainTint;

fixed _ScrollXSpeed;

fixed _ScrollYSpeed;

// 读取模型数据的结构体,名字有些迷惑人

struct Input {

float2 uv_MainTex;

};

// inout类型是一个输出数据的类型,顶点着色器处理好数据之后传递给片段着色器

// 就是通过inout修饰的参数来传递的,也就是说inout修饰的类型是提供给片段着色器进一步渲染的

void surf (Input IN, inout SurfaceOutputStandard o) {

// 先将UV坐标保存起来(这个值的类型是float2或者fixed2都可以)

float2 scrolledUV = IN.uv_MainTex;

// 可以根据自己的需求来决定滚动方向,此处为xy两个方向偏移

// _Time:是基于Unity的系统内置的时间变量

fixed xScrollValue = _ScrollXSpeed * _Time;

fixed yScrollValue = _ScrollYSpeed * _Time;

// fixed2(x,y):这个就不用过多解释了,将xy合并成一个二元的数据类型

scrolledUV += fixed2(xScrollValue,yScrollValue);

// tex2D(sampler2D,fixed2)官方定义叫:二维纹理查询

// 给出一张图和纹理坐标计算出颜色

half4 c = tex2D (_MainTex, scrolledUV)* _MainTint;

o.Albedo = c.rgb;

o.Alpha = c.a;

ENDCG

FallBack "Diffuse"

最后

以上就是笑点低老师为你收集整理的unity岩浆气泡_Shader教程:使用Unity创建水流岩浆等流动效果的全部内容,希望文章能够帮你解决unity岩浆气泡_Shader教程:使用Unity创建水流岩浆等流动效果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部