当前位置: 首页 > article >正文

Unity-Shader简介

Shader 简述

shader是cpu与gpu通信的桥梁,一般用于material的塑造中

material由贴图与shader组成,shader会控制该material对光的反射,折射等性质,从而影响渲染效果

Stand Surface Shader基本格式

Shader "Custom/S"
{
    Properties
    {
        _Color ("Color", Color) = (1,1,1,1)
    }
    SubShader
    {
        pass
        {    
            CGPROGRAM
        
            ENDCG
        }
    }
    FallBack "Diffuse"
}

1、指定shader的名字

这里的名字包含路径,方便在material中选择我们所写的shader

名字可以与shader的文件名不一致

Shader "Custom/S"

2、Properties类

定义需要用到的属性格式为:脚本中的变量名(“在unity面板中显示的变量名”,变量类型)=初值

Properties
{
    _Color ("Color", Color) = (1,1,1,1)
    _MainTex ("Albedo (RGB)", 2D) = "white" {}
    _Glossiness ("Smoothness", Range(0,1)) = 0.5
    _Metallic ("Metallic", Range(0,1)) = 0.0
}

3、SubShader与FallBack

SubShader可看作是shader的子类。一个shader文件中可以有多个SubShader,运行时会从第一个SubShader开始,若能够执行,则Shader体现为第一个SubShader的效果,若不可执行则会顺延至第二个SubShader重复此过程,,直至找到第一个可以执行的SubShader。

若均不可执行,此Shader会与FallBack中所选Shader效果保持一致

逻辑类似于switch case与default类似

1)SubShader

可插入不同的编写shader的语言,这里以CG语言为例

SubShader
{
    pass
    {
        CGPROGRAM  
        //CG语言编写的内容    
        ENDCG
    }
}

2)FallBack

直接在后面写备用shader的名字

FallBack "Diffuse"

备用shader为一个名为Diffuse的shader


http://www.kler.cn/a/350557.html

相关文章:

  • 31、【OS】【Nuttx】OSTest分析(1):stdio测试(一)
  • K8s学习
  • JSON数据格式的序列化和反序列化jackson针对首字母小学的字段返回序列化后第2个大写字母也变成小写的问题处理
  • 海云安开发者安全智能助手D10荣膺 “ AI标杆产品 ” 称号,首席科学家齐大伟博士入选2024年度 “ 十大杰出青年 ”
  • Flink (九):DataStream API (六) Process Function
  • 蓝桥杯 Python 组知识点容斥原理
  • 滑动窗口经典例题
  • 【CSS in Depth 2 精译_046】7.1 CSS 响应式设计中的移动端优先设计原则(下)
  • 奖金——Topsort
  • 基于STM32的自学习走迷宫智能小车设计
  • 空间限域效应
  • Java基础14-网络编程
  • 基于springboot学生成绩管理系统
  • linux系统,不定时kernel bug :soft lockup的问题
  • android studio导入外部项目
  • 24/10/12 算法笔记 汇聚层
  • mysqlRouter读写分离
  • 常用分布的数学期望、方差、特征函数
  • linux下编译鸿蒙版boost库
  • 【2021】知识图谱导论(陈华钧)——阅读思考与笔记
  • 常见网络协议的介绍、使用场景及 Java 代码样例
  • 《深度学习》循环神经网络RNN 结构及原理解析
  • 应急响应处置流程Windows篇
  • LLM - 使用 Neo4j 可视化 GraphRAG 构建的 知识图谱(KG) 教程
  • GO 语言协程知识点学习笔记
  • 进程通信——管道