Unity3D Shader官方教程翻译(四)----Shader语法:SubShader

Unity3D shader脚本 本文只是文档的简单翻译,主要是学习的过程中做些记录,方便以后回顾 Unity中的shader脚本,是用叫做shaderlab的脚本语言来写。这个unity中的shader不只是DX中HLSL写的顶点和像素shader,而应该说是对应着 DX中的Effect脚本,定义了一个完整渲染的状态。 一个文件,只能包含一个unity的shader shader文件的内容: 阅读详情

ShaderLab syntax: SubShader
ShaderLab语法:SubShader


 

Each shader in Unity consists of a list of subshaders. When Unity has to display a mesh, it will find the shader to use, and pick the first subshader that runs on the user's graphics card.

每个在Unity3D的shader都是由一系列的的subshaders组成的。当Unity3D显示一个网格的时候,它会使用第一个被用户显卡支持的subshader。

Syntax

语法

Subshader { [Tags] [CommonState] Passdef [Passdef ...] }

Defines the subshader as optional tags, common state and a list of pass definitions.
定义subshade包含了可选的标签,常见的状态和通道定义列表。

Details

详情

A subshader defines a list of rendering passes and optionally setup any state that is common to all passes. Additionally, subshader specific Tags can be set up.

一个subshader定义了1个渲染通道列表,并有选择地设置了这些通道的通常状态。此外,subshade也可以设置特定的标签。

When Unity chooses which subshader to render with, it renders an object once for each Pass defined (and possibly more due to light interactions). As each render of the object is an expensive operation, you want to define the shader in minimum amount of passes possible. Of course, sometimes on some graphics hardware the needed effect can't be done in a single pass; then you have no choice but to use multiple passes.

当Unity3D选择1个subshader进行渲染的时候,他将优先渲染1个被每个通道所定义的对象(这个对象很可能是由光线交互决定的)。由于渲染每1个物体是个十分昂贵的操作,你得定义Shader可能操作的渲染通道数目尽可能的少。当然有时候某些华丽的效果在显卡上不可能只使用单通道,你就必须得使用多通道了。

Each pass definition can be a regular Pass, a Use Pass or a Grab Pass.

每个通道的定义可以是1个regular Pass, 或 Use Pass  或 Grab Pass.

Any statements that are allowed in a Pass definition can also appear in Subshader block. This will make all passes use this "shared" state.

在一个通道定义中的任何声明,也可以出现在Subshader块。这样做能使所有的通道都能共享这些声明。

Example

// ...
SubShader {
    Pass {
        Lighting Off
        SetTexture [_MainTex] {}
    }
}
// ...

This subshader defines a single Pass that turns off any lighting and just displays a mesh with texture named _MainTex.

这个subshader定义了1个单通道,这个单通道关闭了所有的灯光然后显示了1个名字叫_MainTex的纹理网格。

 

由 www.J2meGame.com原创,转载请说明。
Unity 文档 2018.3 Unity官方手册离线版本.2018.3版本. 对应的有下载及使用说明文章. http://t.csdn.cn/4fpk6 立即下载

相关推荐

nupkg 本地安装_使用Nuget安装离线包nupkg

一:Nuget简介:NuGet 是免费、开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库。当需要分享开发的工具或是库,需要建立一个Nuget package,然后把这个package放到Nuget的站点。如果想要使用别人已经开发好的工具或是库,只需要从站点获得这个package,并且安装到自己的Visual Studio项目或是解决方案里。NuGet能更方便地把一...

weixin_34460380的博客 1万+

unity shader格式

unity shader格式,初学者记录

噗噗噗的博客 650

硬件开发实践:高速 PCB 差分信号与时钟同步优化

由两条互补信号线组成(正负极)接收端只关注两线之间电压差共模噪声对两线同时作用,可被抵消。

2501_93174775的博客 394

着色器和shade

Properties块内的语法都是单行的。每个属性都是由内部名称 开始,后面括号中是显示在检视面板(Inspector)中的名字和该属性的类型。等号后边跟的是默认值。 零基础Unity3D游戏开发系列 第四章:游戏资源导入导出(三)材质与着色器 已经定义好了需要的属性,可以开始写自己的着色器(shader)了 不同的显卡有不同的渲染能力。例如,某些显卡支持片段程序(

luyuncsd123的专栏 3513

新手避坑指南:在MacBook上为PyTorch正确配置MPS环境,跑通第一个YOLOv8训练

本文详细指导新手如何在MacBook上为PyTorch正确配置MPS环境,并成功运行YOLOv8训练。从环境准备、PyTorch安装到YOLOv8配置和性能调优,提供全面的避坑指南和实用技巧,帮助开发者充分利用Mac的GPU加速能力。

weixin_29100399的博客 230

混沌系统在图像加密中的应用(二维离散Hénon混沌映射)

Hénon映射是一种二维离散时间动力系统,由美国数学家Michel Hénon在1976年引入。它是混沌动力系统中的经典模型之一,具有简单的形式和复杂的行为。

weixin_42207434的博客 2490

Unity 3D开发--Shader入门基础

【代码】Unity 3D开发--Shader入门基础。

一江之水 624

最新Codex接入DeepSeek官方API教程(无需cc-switch)

最新Codex接入DeepSeek官方API教程(无需cc-switch)

猿小白的博客 968

Unity3d渲染系列教程二 shader基础(译)

课程目标:顶点转换像素着色Shader属性从顶点着色器传递数据到片段着色器查看编译的shader代码使用tiling 和offset属性从纹理取样 这是渲染的第二部分教程。第一部分讲解了矩阵。现在是时候开始写我们的第一个shader了。这部分的教程是基于Unity 5.4.0b10. Texturing a sphere.在unity3d中创建一个新的场景。使用默认的相机跟平行光就可以了。接下来让...

qingshui37的专栏 2771

CANoe制作网关实现CAN(FD)报文故障注入(报文长度/timeout/信号错误/E2E)2

CANoe制作网关实现CAN报文故障注入(报文长度/timeout/信号错误/E2E) 2.新建CANoe工程 3.透传功能 4.故障注入panel面板 5.CAPL代码 5.1故障注入开始、停止、定时 5.2DLC故障注入 5.3 Timeout故障注入 5.4 信号故障注入

天赐好车的博客 3680

解决群晖NAS无法拉取docker镜像问题

在2024-06-01日以前,使用SSH登录后是可以直接拉取docker镜像的;但是之后当我们使用SSH登录上群晖NAS,使用【sudo -i】切换到超管拉取镜像会提示报错【error pulling image configuration: Get "https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/cf/cff6b68a194a672fd337d8728bfb252071012cce6

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 2万+

Unity3D Shader官方教程翻译(二)

Unity3D Shader官方教程翻译(一) 着色器可以由艺术家定义一个参数列表,这个参数值可以在Unity3D的材质检索器中查看。着色器中属性块定义了这些参数。 Properties { Property [Property ...] } 定义了1个属性块。 括号内的属性定义如下: name ("display name", Range (min, max

胡胜同学 1169

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Unity3D Shader官方教程翻译(一)

Shader Reference 着色参考 Shaders in Unity can be written in one of three different ways: Unity3D着色器,可以写在三种不同的方式之一: assurface shaders, asvertex and fragment shaders and asfixed function s

3G-肖阳 4153

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

Unity3D Shader官方教程翻译(十二)----Shader语法:Pass的标记

ShaderLab syntax: Pass Tags Passes use tags to tell how and when they expect to be rendered to the rendering engine. pass使用标记来告诉渲染引擎在什么时候该如何渲染他们所期望的效果。 Syntax Tags { "TagName1" = "Value1" "T

u010216987的专栏 383

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Unity3D Shader官方教程翻译(十八)----Shader语法 另外一些命令(分类)

ShaderLab syntax: other commands Category 分类 Category is a logical grouping of any commands below it. This is mostly used to "inherit" rendering state. For example, your shader might have multiple

u010216987的专栏 543

Unity3D Shader官方教程翻译(十六)----Shader语法 GrabPass

ShaderLab syntax: GrabPass GrabPass is a special passtype - it grabs the contents of the screen where the object is about to be drawn into a texture. This texture can be used in subsequent pass

roadProgram的专栏 785

Unity3D Shader官方教程翻译(十七)----Shader语法 FallBack

ShaderLab syntax: Fallback After all Subshaders a Fallback can be defined. It basically says "if none of subshaders can run on this hardware, try using the ones from another shader". 在所有Subsha

3G-肖阳 4577
上一篇: Unity3D Shader官方教程翻译(三)----Shader语法:属性
下一篇: Unity3D Shader官方教程翻译(五)----Shader语法:Pass
coding_most
博客等级 码龄15年 13粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值