网站图片修改/百度推广排名怎么做的

网站图片修改,百度推广排名怎么做的,网页小游戏列表,网站推广120Shader初学者的学习笔记 第一天 Unity Shader的结构 文章目录 Shader初学者的学习笔记前言一、Unity Shader结构二、Unity Shader结构解析① Properties② Tags③ RenderSetup(可选状态)④ Name⑤ [Tags]⑥ [RenderSetup]⑦ 顶点着色器和片元着色器的代码 (Unity最聪明的孩子)…

Shader初学者的学习笔记

第一天 Unity Shader的结构


文章目录

  • Shader初学者的学习笔记
  • 前言
  • 一、Unity Shader结构
  • 二、Unity Shader结构解析
    • ① Properties
    • ② Tags
    • ③ RenderSetup(可选状态)
    • ④ Name
    • ⑤ [Tags]
    • ⑥ [RenderSetup]
    • ⑦ 顶点着色器和片元着色器的代码 (Unity最聪明的孩子)
    • ⑧ Fallback
  • 总结


前言

由于看完Unity Shader入门精要后发现自己看了就忘,于是想着写博客来记录一下入门精要这本书里面的我觉得需要记录的内容,如果学的比较扎实的话,之后会对一些好的Shader进行学习,每天一篇


一、Unity Shader结构

Shader "Shader name"
{Properties{Name ("display name", propertyType) = DefaultValue				①}SubShader{[Tags][RenderSetUp]													③Pass{[Name][Tags][RenderType]//顶点着色器和片元着色器										⑦}}SubShader{...}FallBack "Diffuse"}

二、Unity Shader结构解析

① Properties

Properties语义块中包含了一系列的属性,这些属性会出现在材质面板中;

Name ("display name", PropertyType) = DefaultValue
EX:
//单独的数字
_Int ("Int", Int) = 2
_Float ("Float", Float) = 1.5
_Range ("Range", Range(1.0, 5.0)) = 3.0
//四维向量
_Color ("Color", Color) = (1, 1, 1, 1)
_Vector ("Vector", Vector) = (2, 3, 6, 1);
//Textures 纹理类型的属性定义稍微复杂,默认值嘶通过一个字符串后跟一个花括号来指定的,字符串里面要么是空,要么是内置的纹理名称:white, black
_2D ("2D", 2D) = "" {}
_Cube ("Cube", Cube) = "white" {}
_3D ("3D", 3D) = "black" {}

Name:如果我们需要在Shader中访问这些属性,就需要使用各个属性的名字;
display name则是出现在材质面板上的名字
PropertyType指定了属性的类型

② Tags

Tags {"TagName1" = "Value1", "TagName2" = "Value2"}
标签类型说明
Queue控制渲染顺序,指定该物体属于哪个渲染队列,通过这种方式可以保证所有的透明物体可以在所有不透明物体的后面被渲染
RenderType对着色器进行分类,例如这是一个不透明的着色器,或是一个透明的着色器,这可以被用于着色器替换功能
DisableBatching一些SubShader在使用Unity的批处理功能时会出现问题,例如使用了模型空间下的坐标进行顶点动画,这是可以通过该标签来直接指明是否对该SubSahder使用批处理
ForceNoShadowCastingCasting控制使用该SubShader的物体是否会投射阴影
IgnoreProjector如果该标签为True,那么使用该SubShader的物体将不会受Projector的影响,通常用于半透明物体

注意:以上的这些标签之恩在SubShader中声明,但是不能在Pass中声明

③ RenderSetup(可选状态)

状态名称设置指令解释
CullCull Back /Front/ OFF设置剔除模式;剔除背面/正面/关闭剔除
ZTestZTest Less Greater/ LEqual? GEqual / NotEqual/ Always设置深度测试时使用的函数
ZWriteZWrite On / Off开启/ 关闭深度写入
BlendBlend SrcFactor DscFactor开启并设置混合模式

注意:如果在SubShader里面设置了渲染状态后,将会应用到所有的Pass,如果我们不想这样,可以在Pass语义块中单独进行上面的设置

④ Name

我们可以在Pass中单独定义该Pass的名称,通过这个名称,我们可以使用UsePass命令来直接使用其他的Unity Shader中的Pass,但是需要注意的是:由于Unity内部会把所有的Pass的名称转化为大写字母的表示.因此,使用UsePass命令时必须使用大写形式的名字.

Ex:
UsePass "MyShader/MYPASSNAME

⑤ [Tags]

我们在上面说过,SubShader中的Tags与此处的标签不同:此处的这些标签也用于告诉渲染引擎我们希望怎样渲染该物体

标签类型说明
LightMode定义该Pass在Unity的渲染流水线中的角色
RquireOptions用于指定当满足某些条件时才能渲染该Pass,它的值是一个用空格分隔的字符串

⑥ [RenderSetup]

我们在上面也说过,如果需要单独设置每一个Pass的渲染状态,就可以不用在SubShader中设置渲染状态,例如:在进行双面渲染时,我们希望在第一个Pass中剔除正面来对背面渲染,在第二个Pass中剔除背面来对正面进行渲染,这是就应该在Pass语义块中进行单独设置.因此这块的状态名称与SubShader里面的状态名称是共用的.

⑦ 顶点着色器和片元着色器的代码 (Unity最聪明的孩子)

在今天这一部分我们先不介绍顶点着色器和片元着色器,因为会在之后着重介绍,其实除了这两个着色器之外,还有表面着色器等,由于我们在这本书中着重讲的是顶点着色器和片元着色器,所以这块就这样写.
顶点着色器要做的事情就是将在模型空间的顶点,先转换到模型空间,在变换到观察空间,经过裁剪空间的计算,对裁剪平面的图元进行剔除,保留裁剪空间内的图元.
一句话总结:
顶点着色器的最基本的任务就是把顶点坐标从模型空间转换到裁剪空间中(逐顶点).
在片元着色器中,我们通常也可以得到该片元在屏幕空间的像素位置(逐片元).

⑧ Fallback

在每一个SubShader语义块的后面,可以是一个Fallback命令,它用于告诉Unity,如果上面的所有SubShader在这块显卡上都不能运行,那么就用这个低级的shader吧!!!
事实上,Fallback还会影响阴影的投射,在渲染阴影纹理时,Unity会在每一个Unity Shader中寻找一个阴影投射的Pass,通常情况下,我们不需要自己专门实现一个Pass,这是因为Fallback使用的内置Shader中包含这样一个通用的Shader,因此,为每一个Unity Shader正确设置Fallback是非常重要的.


总结

以上就是今天我总结的内容了,就是将Unity Shader的大致结构进行一个分析理解,方便之后对代码的学习理解.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/74078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java SE】抽象类/方法、模板设计模式

目录 1.抽象类/方法 1.1 基本介绍 1.2 语法格式 1.3 使用细节 2. 模板设计模式(抽象类使用场景) 2.1 基本介绍 2.2 具体例子 1.抽象类/方法 1.1 基本介绍 ① 当父类的某些方法,需要声明,但是又不确定如何实现时&#xff…

深度学习:从零开始的DeepSeek-R1-Distill有监督微调训练实战(SFT)

原文链接:从零开始的DeepSeek微调训练实战(SFT) 微调参考示例:由unsloth官方提供https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen2.5_(7B)-Alpaca.ipynbhttps://colab.research.google.com/git…

流畅如丝:利用requestAnimationFrame优化你的Web动画体验

requestAnimationFrame 是前端开发中用于优化动画性能的 API。它允许浏览器在下一次重绘之前执行指定的回调函数,通常用于实现平滑的动画效果。 1.作用 优化性能:requestAnimationFrame 会根据浏览器的刷新率(通常是 60Hz,即每秒…

【pytest框架源码分析五】pytest插件的注册流程

前文介绍到pytest整体是运用插件来实现其运行流程的。这里仔细介绍下具体过程。 首先进入main方法 def main(args: list[str] | os.PathLike[str] | None None,plugins: Sequence[str | _PluggyPlugin] | None None, ) -> int | ExitCode:"""Perform an i…

IoTDB日志提示Too many open files

问题 时序数据库 IoTDB 1.3.3 版本 IoTDB 执行查询操作失败,日志打印提示 Too many open files。通过命令查看打开文件数,结果如下: [root0002 DataReceiver]# lsof|grep 28347|wc -l DataNode 55444 [root0002 DataReceiver]# lsof|g…

prometheus 添加alertmanager添加dingtalk机器人告警

1、dingtalk创建机器人,目前我们采用加白名单的方式校验 2、定位到如下图 test结果如下

C 语 言 --- 操 作 符 2

C 语 言 --- 操 作 符 2 移 位 操 作 符定 义原 码 补 码 和 反 码左 移&#xff08;<<&#xff09;右 移&#xff08;>>&#xff09;算 术 右 移逻 辑 右 移 按 位 与、按 位 或、和 按 位 异 或按 位 与按 位 或按 位 异 或 逻 辑 反 操 作负 值 操 作按 位 取 反…

基于Spring Boot的公司资产网站的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

零碳工厂能源管理系统的核心技术与应用实践

零碳工厂能源管理系统是一种高效的解决方案&#xff0c;旨在优化能源使用并减少碳排放&#xff0c;以帮助工厂实现低碳或零碳的生产目标。以下是该系统的详细构成和功能&#xff1a; 1. 核心组件 传感器和监测设备&#xff1a;用于实时监测工厂内的能源使用情况&#xff0c;包…

美摄接入DeepSeek等大模型,用多模态融合重构视频创作新边界!

今年以来&#xff0c;DeepSeek凭借其强大的深度推理分析能力&#xff0c;在AI领域掀起新的热潮。美摄科技快速响应市场需求&#xff0c;迅速接入以DeepSeek、通义千问、商汤、文心一言为代表的大模型&#xff0c;为企业视频创作生产带来全新体验。 传统视频创作面临着同质化、…

【yolo】yolo训练报错,以及解决方案

背景&#xff1a; 刚刚&#xff0c;写了《【yolo】yolo推理报错&#xff0c;以及解决方案》&#xff0c;马上训练就遇到类似的报错。 我对我标注的图像进行了300轮的训练&#xff0c;但是训练完300轮后&#xff0c;报错了。。。 报错信息 300 epochs completed in 0.085 hou…

理解线性动力学中的模态叠加法

线性动力学中的模态叠加方法 模态叠加法是线性动力学中一种有价值的工具&#xff0c;可以有效地确定频域或时域中的系统响应。对于某些类型的线性动力学分析&#xff0c;有必要使用此方法&#xff0c;因此了解该过程对于获得准确的结果至关重要。在本博客中&#xff0c;我们将…

报错 - redis - Unit redis.service could not be found.

报错&#xff1a; Unit redis.service could not be found.Could not connect to Redis at 127.0.0.1:6379: Connection refused解决方法&#xff1a; 检查状态、有必要的话 重新安装 Linux 上查看状态 systemctl status redis显示以下内容&#xff0c;代表正常服务 出现下面…

CMS网站模板定制设计与安全评估

内容概要 现代CMS&#xff08;内容管理系统&#xff09;作为网站建设的核心载体&#xff0c;其模板架构与安全防护体系的协同设计已成为企业数字化转型的关键环节。随着网络攻击向量日益复杂化&#xff0c;基于HTTPS协议的端到端加密部署不仅成为基础安全配置&#xff0c;更直…

【React】useEffect、useLayoutEffect底层机制

目录 useEffect不设置依赖设置空数组&#xff0c;无依赖设置多个依赖返回值是一个函数总结useEffect的使用环境useEffect 中发送请求错误示例用.then获取数据在useEffect创建一个函数 总结 useLayoutEffectuseLayoutEffect 和useEffect区别执行时机&#xff1a;浏览器渲染的关系…

深度解析学术论文成果评估(Artifact Evaluation):从历史到现状

深度解析学术论文成果评估(Artifact Evaluation)&#xff1a;从历史到现状 引言 在计算机科学和工程领域的学术研究中&#xff0c;可重复性和可验证性越来越受到重视。随着实验性研究的复杂性不断增加&#xff0c;确保研究成果可以被其他研究者验证和构建变得尤为重要。这一需…

游戏MOD伴随盗号风险,仿冒网站借“风灵月影”窃密【火绒企业版V2.0】

游戏MOD&#xff08;即游戏修改器&#xff09;是一种能够对游戏进行修改或增强的程序&#xff0c;因其能够提升游戏体验&#xff0c;在玩家群体中拥有一定的市场。然而&#xff0c;这类程序大多由第三方开发者制作&#xff0c;容易缺乏完善的安全保障机制&#xff0c;这就为不法…

QT二 QT使用generate form 生成常用UI,各种UI控件

一 。没有使用general form 和 使用 general form 后&#xff0c;file层面和代码层面的不同比较 file层面的不同 代码层面的不同&#xff0c; 在 使用了general form之后&#xff0c;在主界面的构造方法中&#xff0c;使用ui->setupUi(this),就完成了所有UI的处理。 而之…

从PGC到AIGC:海螺AI多模态内容生成系统架构一站式剖析

海螺AI&#xff1a;基于多模态架构的下一代认知智能引擎 海螺AI核心模型架构基础模型&#xff1a;abab-6.5语音模型&#xff1a;speech-01 视频生成管线关键子系统快速接入海螺AI 蓝耘MaaS平台什么是MaaS平台&#xff1f;支持的大模型蓝耘搭载海螺AI的优势 实战应用教程如何注册…

二分查找上下界问题的思考

背景 最近在做力扣hot100中的二分查找题目时&#xff0c;发现很多题目都用到了二分查找的变种问题&#xff0c;即二分查找上下界问题&#xff0c;例如以下题目&#xff1a; 35. 搜索插入位置 74. 搜索二维矩阵 34. 在排序数组中查找元素的第一个和最后一个位置 它们不同于查找…