码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Unity笔记(7):Shader【着色器】


    SSS笔记:shader、shake、shoot

    前篇回顾:

    角色的动画与移动

    Unity笔记(5):制作[2D]角色连帧图动画_代码骑士的博客-CSDN博客

    1、下载组件

    2、创建管线资源

     点击左侧小加号

     创建

     删除管线渲染器(因为默认生成的是3D的) 

    新建2D渲染器

     将渲染器拖入管线资源渲染列表栏中

     打开编辑,项目设置

    选择graphics,将管线资源拖入

    3、创建一个shader graph 在shader文件右键,创建材质

     将材质拖给角色

     

    新建一个2DTexture改名为MainTex 将maintex结点拖入空白处,创建新的结点sampleTexture2D

     连接结点

     

     

     点击结点,选择渲染图片,点击参考图选择Quad

    保存

     

    返回界面看到图片发生变化

     

    右键添加sample noise结点

     

    再添加combine结点

     

    再创建新结点multiply

     

     连接

     

     

     参考图,可以看到噪声已经加到上面了 

     新建结点step

    连接

     

    修改参数可以看到如下变化

     

     添加变量取名fade

    拖出并连接

     保存,进入场景可以看到角色在不断变化

     修改材质上面的参数,图片也会发生变化

     

    将mode改为slider,增加一个滑轮

     

     界面

    增加节点position

     

    space改为object

     

     连接

    增加一个scale变量(float)

     

    默认值改为40,拖出并连接

     目前的节点连接图

    目前所做的一切都是对材质的着色和渲染

     新建结点

     

    在拖出一个fade创建新结点substract

    连接

     

    新建结点substract

     连接

    再创建新结点add

     

    连接

     

    新建结点multiply

    连接

     

     新建结点multiply、color

     连接

     可以看到,结点的规律:从右向右数量依次递减,很像树形结构,并依次做加法计算。

    右键颜色结点并点击成为参数

    点击color参数修改模式为HDR

     

    可以调节颜色亮度

      

     材质栏也可以修改炫光

     点击相机,勾选

    点击管线资源勾选hdr

     

    添加volume组件

     

    点击new

     添加bloom

     勾选Intensity调节亮度

     

     非常炫酷

     

     将材质拖到其他物体同样能完成渲染

     

    接下来通过脚本实现控制材质的变化:

    点击空格发生材质变化:

    代码:

    1. using UnityEngine;
    2. public class Dissolve : MonoBehaviour
    3. {
    4. Material material;//获取材质组件
    5. bool isDissolving = false;
    6. float fade = 1f;
    7. // Start is called before the first frame update
    8. void Start()
    9. {
    10. material = GetComponent().material;
    11. }
    12. // Update is called once per frame
    13. void Update()
    14. {
    15. if (Input.GetKeyDown(KeyCode.Space))
    16. {
    17. isDissolving = true;
    18. }
    19. if (isDissolving)
    20. {
    21. fade -= Time.deltaTime;
    22. if (fade <= 0f)
    23. {
    24. fade = 0f;
    25. isDissolving = false;
    26. }
    27. material.SetFloat("_Fade", fade);
    28. }
    29. }
    30. }

     脚本拖拽到角色即可:

    so cool!

     

    场景:

     步骤:

     

     

     接下来还会更新shake、shoot等内容,一起进步吧 

  • 相关阅读:
    Linux_系统信息_uname查看内核版本、内核建立时间、处理器类型、顺便得到操作系统位数等
    StarRocks 面试题及参考答案详解(万字详解)
    卷积神经网络(CNN)的组成结构以及其优点
    线程创建方式
    音视频学习 - QT6.3.1创建QAudioSink+ ffmpeg项目进行音频解析及播放
    (2023 最新版)IntelliJ IDEA 下载安装及配置教程
    C Primer Plus(第六版)16.18 编程练习 第5题
    流程中心系统版本对应问题解决
    小样本学习(Few-shot Learning)
    html、css、京东移动端静态页面,资源免费分享,可作为参考,提供InsCode在线运行演示
  • 原文地址:https://blog.csdn.net/qq_51701007/article/details/126442104
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号