Unity3D Shader官方教程翻译(二)

【Unity3D Shader编程】之十 深入理解Unity5中的Standard Shader(二)&屏幕油画特效的实现 本系列文章由@浅墨_毛星云 出品,转载请注明出处。   文章链接: http://blog.youkuaiyun.com/poem_qianmo/article/details/49556461 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 本文工程使用的Unity3D版本: 5.2.1  概要:本文讲解了Unity中着色器编译多样化的思路,并对Standar 阅读详情

ShaderLab syntax: Shader

ShaderLab语法:Shader


 

Shader is the root command of a shader file. Each file must define one (and only one) Shader. It specifies how any objects whose material uses this shader are rendered.

Shader是一个shader的文件的根命令。每个文件必须定义一个(只有一个) Shader。它指定有哪些物体的材质使用这个shader进行渲染。

 

Syntax

语法
 

Shader "name" { [Properties] Subshaders [Fallback] } Defines a shader. It will appear in the material inspector listed under name. Shaders optionally can define a list of properties that show up as material settings. After this comes a list of SubShaders, and optionally a fallback.

Shader "name" { [Properties] Subshaders [Fallback] } 定义了一个着色器。它的名字将会出现在Unity3d材质检索器中并以定义的name显示。Shader可以为设定材质的列表有选择地定义属性显示。在此之后可以定义一个SubShaders列表,及一个可选的返回值(Fallback指当该Shader无法工作时候,返回一个可以正常工作的备用渲染处理)。

 

Details

细节

Properties 属性

Shaders can have a list of properties. Any properties declared in a shader are shown in the material inspector inside Unity. Typical properties are the object color, textures, or just arbitrary values to be used by the shader.

着色器可以有一个属性列表。在着色器中声明的任何属性都将在Unity3D材质检索器中显示。典型的属性是对象的颜色,纹理,或一个将要在渲染中使用的任意值。

 

SubShaders & Fallback  子着色器及备用渲染处理

Each shader is comprised of a list of sub-shaders. You must have at least one. When loading a shader, Unity will go through the list of subshaders, and pick the first one that is supported by the end user's machine. If no subshaders are supported, Unity will try to use fallback shader.

每个着色器由一系列的子着色器组成。你必须至少指定一个子着色器。当加载一个shader时候,Unity3D将通过subshaders列表,并在列表中选择第一个可以被最终用户机器所支持的子着色器。如果没有一个子着色器被支持,Unity3D将尝试使用备用的着色器进行渲染处理[Fallback]。

Different graphic cards have different capabilities. This raises an eternal issue for game developers; you want your game to look great on the latest hardware, but don't want it to be available only to those 3% of the population. This is where subshaders come in. Create one subshader that has all the fancy graphic effects you can dream of, then add more subshaders for older cards. These subshaders may implement the effect you want in a slower way, or they may choose not to implement some details.

不同的显卡具有不同的功能。这就给游戏开发商提出了一个永恒的问题,你想你的游戏,在最新的硬件上表现得十分出色,但不希望它仅仅提供给那些仅占人口3%的人使用。这就是subshaders的意义。创建一个Subshader给那些牛B的显卡使用,同时创建更多的Subshader给老式显卡使用,让你的游戏兼容最多的显卡。这些subshaders可以实现不同的效果在不同的显卡上。

Examples

Here is one of the simplest shaders possible:

这是1个最简单的Shader例子

// colored vertex lighting
Shader "Simple colored lighting" {
    // a single color property 只有1个颜色属性
    Properties {
        _Color ("Main Color", Color) = (1,.5,.5,1)
    }
    // define one subshader 定义1个子着色器
    SubShader {
        Pass {
            Material {
                Diffuse [_Color]
            }
            Lighting On
        }
    }
} 

This shader defines a color property _Color (that shows up in material inspector as Main Color) with a default value of (1, 0.5, 0.5, 1). Then a single subshader is defined. The subshader consists of one Pass that turns on vertex lighting and sets up basic material for it.

这个shader定义颜色属性的默认值(1,0.5,0.5,1)_Color(将在Unity3D的材质检索器中作为主要颜色属性显示)。然后一个单一的subshader定义。该subshader组成一个渲染通道,打开顶点照明,并设置了它的基本材质属性。

 

由www.J2meGame.com精心原创,转载请说明。

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

相关推荐

基于PLC的立体车库控制系统设计

本文介绍了基于西门子S7-1511-1PN PLC和KTP700 Basic PN HMI的立体堆垛式停车场自动化控制系统。系统通过PLC逻辑控制滑台运动,配合传感器实现车辆存取自动化,包含初始化、入库、出库和安全保护程序。程序采用模块化设计,分为安全互锁、动画显示、模式切换等六个功能模块,运用边沿触发、定时器和多级联锁确保安全。HMI界面提供模式切换、车位选择、状态显示和手动控制功能。该系统具有模块化、安全性和可扩展性特点,可应用于多车位立体停车场场景。

sxs3030787796的博客 1266

Unity引擎书籍

Unity相关的书籍国内倒是有些,但是从我大学几年看的书来看,仅仅个别还不错,大部分还是和其他计算机书籍一样。。。github下载地址:Unity-Books高级Unity游戏开发(Advanced Unity Game Development)3D游戏资产开发管道初探(Beginning 3D Game Assets Development Pipeline)Unity in Action: 用...

游戏开发、游戏引擎开发、逆向破解爱好者 3402

避坑指南:RK3568双网口RMII模式DTS配置常见错误与调试技巧

本文详细解析了RK3568双网口RMII模式DTS配置中的常见错误与调试技巧,涵盖时钟配置、PHY识别、复位时序等关键问题。通过实战案例和系统化调试方法,帮助开发者快速解决百兆以太网连接不稳定、PHY识别失败等典型问题,提升开发效率。

weixin_42549037的博客 345

Visual Studio打开Unity Shader就报错,标红,解决办法,VS发送请求时出错解决方法

Visual Studio打开Unity Shader就报错,这是因为少了扩展。点最上方的扩展->管理扩展->联机,正常情况会看到这个界面,在搜索框输入ShaderlabVS,下载,关闭VS重启就好了。

m0_50401435的博客 3513

PX4代码解析(1)

前言 做pixhawk飞控有一段时间了,但在学习过程中遇到许多困难,目前网上找不到比较完整的PX4学习笔记,我打算结合自己理解,写写自己对PX4源码的理解,不一定对,只是希望与各位大佬交流交流,同时梳理一下无人机知识。 目前打算分享以下几个内容:代码架构;通信协议;姿态解算算法,控制算法。先这样,后面想到再加。本章先来聊聊px4代码结构 一、代码整体结构 既然要聊px4代码结构,那就先把px4代码结构图放出来,因为px4源码仍然在不断更新迭代,因此老版本与新版本目录结构可能有些不同,我的代码解析参考版本为V

qq_36903625的博客 1万+

Android SurfaceFlinger——概述(一)

对于系统渲染流程的理解是指导 SurfaceFlinger 设计的核心思想,从 Android 4.1 一直到 Android 9.0 都没有太大的变化。只要抓住这五个核心思想,我们阅读 SurfaceFlinger 的难度就会下降不少。下面看一下 SurfaceFlinger 的体系和 Skia 以及 View的绘制流程的关系。framework 面向开发者所有的 View 是便于开发的控件,里面仅仅只是提供了当前 View 各种属性以及功能。

小旭的专栏 2584

UnityShaderBook_Chapter9

有关shadow caster部分 下图修改base pass中只是接受阴影

special_sal的专栏 319

wflow模型hbv

毛管水的处理 😄 快速流的处理 K4是为了产生基流的 找到了令人激动的kenematic模块 😄

m0_46268055的博客 781

macro redefinition警告或错误的解决方法

Windows下使用VS2008编译时经常遇到macro redefinition警告或错误,如: c:\programme\microsoft sdks\windows\v6.0a\include\ws2def.h(91) : warning C4005: 'AF_IPX'

射击与移动 3万+

利用自己的域名和cloudflare实现邮件转发(无限邮箱注册cursor使用账号) 保姆级图文

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!发现你走远了@mzh原创作品,转载必须标注原文链接欢迎关注『发现你走远了』 专栏,持续更新中欢迎关注『发现你走远了』 专栏,持续更新中『未完待续』

MZH 414

微信小程序 - {“errMsg”:”requestPayment:fail banned”} 微信小程序调用wx.requestPayment支付失败返回错误(uniapp微信小程序微信支付报错)

{“errMsg”:”requestPayment:fail banned”},微信小程序调用wx.requestPayment报错requestPayment:fail banned,uni-app微信小程序wx.requestPayment支付报错requestPayment:fail banned,拉起小程序支付报错,iPhone苹果ios真机微信支付报错,Android安卓手机微信支付报错,支付报错,商户配置,签名验证,uniapp 小程序支付微信支付一场,设置过b2b类目,确认了商户号相关功能正常

🏆 前端领域优质创作者 3353

Unity3D Shader官方教程翻译(二)(ShaderLab)

原文地址:点击打开链接 ShaderLab syntax: Shader   ShaderLab语法:Shader   Shader is the root command of a shader file. Each file must define one (and only one) Shader. It specifies how any objects

w6316485的博客 476

云原生监控:Prometheus+Grafana监控Nginx实战

在云原生环境中,应用的高可用性和性能优化至关重要。Nginx作为一款广泛使用的高性能Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器,对其进行有效的监控能够及时发现潜在问题,保障服务的稳定运行。本文章的目的是详细介绍如何使用Prometheus和Grafana构建一套完整的监控系统来监控Nginx,范围涵盖从环境搭建、数据采集、存储到可视化展示的整个流程。

AI云原生与云计算技术学院 1575

Unity3D Shader官方教程翻译(一)

Unity3D Shader官方教程翻译 Shader Reference 着色参考 Shaders in Unity can be written in one of three different ways: Unity3D着色器,可以写在三种不同的方式之一: assurface shaders, asvertex and fragm

roadProgram的专栏 918

efm32 入门.pdf

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

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Unity3D Shader官方教程翻译(三)

Unity3D Shader官方教程翻译(三) 1、Shader语法:Pass 1个Pass块可以使一个几何物体被一次渲染。 Pass { [Name and Tags] [RenderSetup] [TextureSetup] } 最基础的pass命令包含有1个可选的渲染设置命令列表,及1个可选的可用纹理列表。 Name and tags 一个Pass 可以

胡胜同学 2162

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Unity】Shader官方教程翻译

·原创:Unity3DShader官方教程翻译(二十八)---Unity3D 10/27·原创:Unity3d中C#使用指针(Unsafe)的办法 10/23·原创:Unity3DShader官方教程翻译(二十七)---GLSL着色 10/23·原创:Unity3DShader官方教程翻译(二十六)---Shader编 10/22·原创:Unity3DShader...

weixin_34029680的博客 179

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Unity3D Shader官方教程翻译(四)

Unity3D Shader官方教程翻译(四) 1、Shader语法:Pass的雾化处理 雾化混合产生像素的颜色是依据于常量颜色(这个常量颜色是基于摄像头的距离的)。雾化不会改变像素的alpha值,仅仅是改变它的rgb分量。 指导:雾化是一种模拟自然界中雾气对场景物体视觉效果产生影响的图形绘制技术。此技术从视点到物体逐渐将物体的绘制颜色淡化,直至背景色。通过雾化处理可较好

胡胜同学 1175

Unity3D Shader官方教程翻译Unity3D 的渲染管道

该文章出自【狗刨学习网】:http://www.gopedu.com/ Unity's Rendering Pipeline Shaders define both how an object looks by itself (its material properties) and how it reacts to the light. Because lighting calc

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值