Unity入门之--UnityShader基础

[Unity] ShaderGraph实现完美倒影 or 平面镜反射效果 阅读详情

ShaderLab

Unity提供了ShaderLab专门为Shader服务。

UnityShader结构

Shader "Unlit/NewUnlitShader"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            // make fog work
            #pragma multi_compile_fog

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                UNITY_FOG_COORDS(1)
                float4 vertex : SV_POSITION;
            };

            sampler2D _MainTex;
            float4 _MainTex_ST;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                UNITY_TRANSFER_FOG(o,o.vertex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                // sample the texture
                fixed4 col = tex2D(_MainTex, i.uv);
                // apply fog
                UNITY_APPLY_FOG(i.fogCoord, col);
                return col;
            }
            ENDCG
        }
    }
}

1、Properties语义块中包含了一系列属性(property)
在这里插入图片描述

SubShader

每一个Unity Shader文件可以包含多个SubShader语义块,但最少一要有一个。当Unity需要加载这个UnityShader时,Unity会扫描所有的SubShader语义块,然后选择第一个能够在目标平台上运行的SubShader。如果都不支持的话,Unity就会使用Fallback语义指定的Unity Shader。

SubShader中定义了 一系列Pass以及可选的状态([RenderSetup])和标签([Tags])设置。 每个
Pass定义了一次完整的渲染流程, 但如果Pass的数目过多, 往往会造成渲染性能的下降。

状态设置
在这里插入图片描述
SubShader的标签
在这里插入图片描述
Pass的标签
在这里插入图片描述

Fallback

紧跟在各个 SubShader 语义块后面的,可以是一个 Fallback 指令。它用于告诉 Unity, "如果
上面所有的 SubShader 在这块显卡上都不能运行,那么就使用这个最低级的 Shader 吧!”

【Unity Shader】关于Stencil的理解小记 写在前面:本文只介绍Stencil最基本的三种参数:Ref Comp Pass ,其他的略略带过。 碎碎念:之前用过Stencil,但是没有完全理解,原因在于虽然理解了每项的意思,但是实际的使用效果不如人意,最后得出的结果纯靠运气试出来的。昨晚按照渲染流程走了一遍,豁然开朗,感觉自己好瓜皮qaq Stencil简介 Stencil是模板测试的意思,通常写在Pass里面最开头,CGPROGRAM之前。 stencil完整语法格式如下: stencil{ Ref referenceValue ReadM. 阅读详情

相关推荐

Unity shader入门精要学习笔记-初级篇(unityshader简单制作/unity基础光照/基础纹理/透明效果)

一、unityshader简单制作 1.顶点/片元着色器 基本结构 shader ”MyShader“ {//命名 Properties{ Name{"display name",PropertyType}=DefaultValue//属性名字:Name 显示名字:display name 类型:PropertyType 默认值:DefaultValue }6 SubShader{ [Tags]//可选的标签,仅可在subshadeer中声明 ...

louxiasang的博客 1101

Shader基础编程_Grayshader

Shader "Custom/GrayShader" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 100 Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag

weixin_44286627的博客 525

AllIn1Shader 1.95.unitypackage

AllIn1Shader 1.95.unitypackage

Unity 镜面反射

正如我上面所写,为了将反射与镜面反射一起使用,您需要将探头放置在面向相机的位置。在项目视图中创建“ProbeController”,输入以下脚本,并将Reflection Probe组件附加到附加对象上。从层次视图中选择“创建”→“3D 对象”→“平面”。将“反照率”颜色设置为“灰色”和“金属”,将“平滑度”设置为“1”。选择附加了反射探针的对象,然后从检查器中将类型更改为“实时”。在这里,我们将使用脚本自动将反射探针定位在相机的另一侧。为了也反射地板上的物体,我们需要使用反射探针组件。

我知道你很急,但是路要一步步走 2299

unity3D 镜面反射shader

unity实现镜面反射

保姆级教程:2026版Windows电脑换新,微信QQ聊天记录无损搬家(附路径修改避坑指南)

本文提供2026版Windows电脑换新时微信QQ聊天记录无损迁移的保姆级教程,涵盖最新版微信/QQ的存储路径修改和避坑指南。通过详细步骤和实战技巧,确保数据迁移过程中不丢失任何珍贵对话记录和文件,特别适合需要保留完整聊天记录的用户。

weixin_42629815的博客 2481

unity shader入门精要_UnityShader入门精要—基础光照

UnityShader入门精要—基础光照(此文为易于理解的演讲配合文档,设计到专业词汇和解释可能不当)一:物体接受光照并显示到摄像机的物理过程1.光源发射光2.物体与光交互发生“散射”以及“吸收”两个结果​ 散射:不改变光本身的物理属性(颜色,密度等),只改变光的方向。但是散射根据最终结果的不同方向又分为两类,到物体内部,这种现象称之为“折射”或“透射”,另一种方向为为散射到物体外部,即反射。...

weixin_39651735的博客 306

今天出一个candence 17.4 allego的安装教程

7、安装完成,接下来进行补丁更新,找到Hotfix_SPB17.40.035_wint.iso软件 ,右击鼠标选择装载。6、因为之前选择的定制安装,这一步不知道具体要安装啥,因此都勾选,点击NECK,接下来等待安装完成。后面经过仔细对比,发现是前面更新补丁时选择了F盘,F盘是candence安装包,不是补丁。8、在破戒大师里选择安装更新补丁,并找到刚才装载的安装包里的程序,点击下一步。3、打开破戒大师,找到安装candence进行如下图选择,点击下一步。有耐心的人可以重新卸了再装一边,我就不卸了,直接装。

hcvinh的博客 2726

UnityShader入门精要-unity shader基础

Unity中的shader assets-create-shader创建,共有四个模板可供选择: standard surface shader 包含标准光照模型的表面着色器模板 unlit shader 不包含光照但包含雾效的基本顶点片元着色器 imageeffect shader实现屏幕后处理效果的基本模板 computeshader 旨在利用GPU并行性进行一些与常规渲染流水线无关的计算 Unity Shader 的结构 Properties属性 在properties中的定义会显示在

weixin_58624886的博客 2104

TSMC 40nm LP工艺下,新手画版图最容易踩的5个坑(附Cadence避坑指南)

本文详细解析了TSMC 40nm LP工艺下版图设计的5个常见陷阱,包括MOS管尺寸转换、DNW隔离、Guard Ring设计、金属布线和DRC检查。通过Cadence实战技巧和设计规则优化,帮助新手工程师规避典型错误,提升版图设计效率和质量。

weixin_26800111的博客 457

PCI-Express、MiniPCIe、ExpressCard接口转换说明/引脚互换关系

通过引脚PIN互换可以在PCI-Express、MiniPCIe、ExpressCard之间切换不同的接口;提供接口引脚表和标准尺寸图。

tech34的博客 7123

UnityShader入门精要笔记(5)——Unity中的基础光照

Unity中的基础光照 一、一些基础定义 着色:根据材质属性(如漫反射属性等)、光源信息(如光源方向、辐照度等),使用一个等式去计算沿某个观察方向的出射度的过程。这个等式称为光照模型。 高光反射:表示物体表面是如何反射光线的 漫反射:表示有多少光线会被折射、吸收和散射出表面。 将进入摄像机的光线分为4个部分(C为符号,后面的小写单词为下标): 自发光(emissive)部分:用Cmissive来表示。用于描述当给定一个方向时,一个表面本身会向该方向发射多少辐射量。需要注意的是,如果没有使用全局光照(gl

weixin_39677098的博客 266

SPME/IP PPT详解

什么是中间件?它是操作系统与应用程序之间的一块代码,它对于应用程序提供了一些标准接口,屏蔽了应用程序与底层的一些交互,上层应用程序只要和中间件进行交互就可以了,这样就可以达到一个解耦的目的。SOMEIP其实是一个中间件,它是操作系统与应用程序之间的一段代码,它是可以运行在TCP/IP之上的,可以在很多平台上使用,可以适配较多的操作系统,可以提供很多接口。经过序列化之后,在网络上传输的是一些101010这样的二进制流。SOME/IP可以承接应用层的一些数据,进行打包放到传输层。

usstmiracle的博客 619

UnityShader入门精要--Unity中的基础光照

基础光照模型、Phong、BlinnPhong 代码实现 、内置函数介绍

weixin_58624886的博客 1318

996引擎 - 读写变量性能测试

单轮100万次读写,取3轮平均耗时(毫秒),有效读取率均为100%,数值越小性能越优。

灵台方寸山斜月三星洞 244

[系统安全] 一.什么是逆向分析、逆向分析基础及经典扫雷游戏逆向

娜璋AI安全之家于2020年8月18日开通,将专注于Python和安全技术,主要分享Web渗透、系统安全、CVE复现、威胁情报分析、人工智能、大数据分析、恶意代码检测等文章。真心想把自己近十年的所学所做所感分享出来,与大家一起进步。 系统安全系列作者将深入研究恶意样本分析、逆向分析、攻防实战等,通过在线笔记和实践操作的形式分享与博友们学习,希望能与您一起进步。第一篇文章先带领大家学习什么是逆向分析,然后详细讲解逆向分析的典型应用,接着通过OllyDbg工具逆向分析经典的游戏扫雷,再通过Cheat Engin

杨秀璋的专栏 2万+

【UnityShader入门精要】第三章 Unity Shader基础

给我们的Shader起个名字。

2301_76929844的博客 481

31、自然语言生成中的流畅度评估

本博客探讨了自然语言生成(NLG)中流畅度评估的重要性和方法。文章详细介绍了流畅度的定义及其影响因素,包括句法结构、词汇选择、语义一致性和段落组织。同时,讨论了自动评估和人工评估两种主要方法,并以机器翻译、自动摘要和对话系统为例分析了流畅度评估的应用场景。最后,文章提出了提升流畅度的技术策略以及未来研究方向,为相关领域的研究者和开发者提供了有价值的参考。

h9j8k7l6m5n的博客 273

[UnityShader入门精要读书笔记]04.Unity Shader基础

Unity Shader是Unity为开发者提供的高级层的渲染抽象层。 在Unity中,所有的Shader都是使用ShaderLab来编写,它使用了一些嵌套在花括号内部的语义来描述一个UnityShader文件结构。 Properties语句块中定义了着色器所需的各种属性,这些属性将会出现在材质面板中。一个UnityShader的基础结构如下: properties语义块仅是为了...

songtianqi123的专栏 200

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Unity shader入门精要学习笔记-基础篇(渲染流水线/unityshader基础/数学基础)

什么是shader:着色器 性能的瓶颈:(bottleneck)流水线中决定最后生产速度的是最慢的工序所需要的时间 渲染流水线: 输入:一个虚拟摄像机、一些光源、一些shader以及纹理 最终目的:生成(渲染)一张二维纹理 工作任务:一个三维场景--生成(渲染)-->一张二维纹理 or 一系列的顶点数据、纹理-->图像 渲染流程3阶段:应用阶段、几何阶段、光栅化阶段 应用阶段(CPU): 1.摄像机的位置、视锥体、场景中包含模型、使用光源 ...

louxiasang的博客 573

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

UnityShader入门精要学习 6 :Unity中的基础光照(待总结)

标准光照模型 标准光照模型的基本方法是: 把进入到摄像机内的方法分为四个部分,每个部分使用一种方法来计算他的贡献度。四个部分分别为: 自发光 高光反射 漫反射 环境光 光照模型的计算: 通常来说有两种选择 —— 逐像素光照和逐顶点光照,分别在片元着色器和顶点着色器中进行 在Unity中实现漫反射光照模型 常用CG函数 - saturate(x) 实践 - 逐顶点漫反射光照 Shader "U...

qq_42896549的博客 292

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【UnityShader入门精要学习笔记】第六章(1)Unity中的基础光照

在上文中我们了解了,光照我们通常用辐照度来描述其强度,并可以用光源方向l和法线向量n的夹角余弦值cosθcos\thetacosθ来描述光的辐照度。在光线发射过程中会发生吸收和散射两种现象。为了模拟光照,我们通常用光照模型对光线进行计算着色。在标准光照模型中,通常存在四类光线:自发光——材质自身的发光值,环境光——反射光照的间接光照,通常用全局变量来表示,漫反射——与辐照度类似,反射光线的强度与表面法线和光源方向之间的夹角的余弦值成正比;

milu_ELK的博客 1449

[UnityShader入门精要读书笔记]08.Unity中基础光照

光线由光源发出后,就会与一些物体相交。通常,相交的结果有两个,散射和吸收。 散射只改变光线的方向。光线在物体表面经过散射后,有两种方向:一种会散射到物体内部,这种现象被称为折射或者透射;另一种将会散射到外部,这种现象称为反射。 为了区分这两种不同的散射方向,我们在光照模型中使用了不同的部分来计算它们:高光反射和漫反射。 高光反射部分表示物体表面是如何反射光线的,而漫反射部分则表示有多少光...

songtianqi123的专栏 244

unity 2020 怎么写shader使其接受光照?_UnityShader入门精要笔记6:基础光照模型B

路漫漫其修远兮,吾将上下而求索。——《离骚》笔记当前使用的Unity版本:“2019.3.3”笔记当前Unity最新的版本:“2020.1.0.Alpha 25”1.概述在基础光照模型A中,我们编写兰伯特光照模型,以及更深切的体会了一下逐顶点和逐像素的区别,在本篇当中,我们首先要把之前的兰伯特漫反射光照模型的一些问题解决掉,然后再提出新的光照模型。对于笔记有任何问题或者疑问,以及笔记中所出现的任何...

weixin_39839968的博客 713

《Shader 入门精要》学习笔记 茵蒂克丝

笔记直达目录

zaizai1007的博客 572

《Unity Shader入门精要》读书笔记第一章——shaderlab语义

这个系列主要是通过阅读《Unity Shader入门精要》之后的一些感想,给读者一些启发。 联系邮箱:glasirius@gmail.com ShaderLab是Unity结合CG和HLSL的一些语义,开发出来的可编程管线语言,主要优势是能基于Unity实现跨平台。 整体上来看,跟脚本语言有些类似,例如CG外的部分大小写不敏感,不需要分隔符等等。 所以,可以当成类似JavaScript学习,...

Last Order 746
上一篇: 计算机图形学--基于物理的计算机动画入门
下一篇: Unity Shader的形式
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值