UnityShader从入门到放弃(一)UnityShader的结构

UnityShader——基础篇之UnityShader基础 Unity ShaderUnity 为研发者提供的高层记得渲染抽象层,Unity 希望以这种方式来让开发者更加轻松的控制渲染,见下图:在 Unity 中,所有的 Unity Shader 都是使用 ShaderLab 来编写的ShaderLab 是 Unity 编写 Unity Shader种说明性语言,它使用了些嵌套在花括号内部的**语义&&(syntax。 阅读详情
Shader "Luoxiaoxiao/Shader_1"{//指定Shader的名字 不要求与脚本名一致
      
	  Properties{
	  	  //属性  UnityShader中的类型
		  _Color("Color",Color)=(1,1,1,1)
		  _Vector("Vector",Vector)=(1,2,3,4)
		  _Int("Int",Int)=325
		  _Float("Float",Float)=4.5
		  _Range("Range",Range(1,11))=6//Rang本质是Float类型的 只不过是增加了一个范围的限制
		  _2D("Texture",2D)="white"{}//指定一个图片
		  _Cube("Cube",Cube)="white"{}//立方体纹理 --天空盒
		  _3D("Texture",3D)="balck"{}//3D的纹理
	  }
	  //SubShader可以有很多个  根据显卡的能力  自动选择能够实现的SubShader  上边的效果优于下边的效果
	  SubShader{
	      //至少有一个Pass
	      Pass{
		  	  //在这里编写Shader代码
			  CGPROGRAM
			  //使用CG语言编写Shader代码
			  //属性在使用时要重新定义一遍
			  fixed4 _Color;//Color本质是一个4个值得  在CGPROGRAM中要定义成fixed4类型的  编译时会自动取到Color的默认值
			  float4 _Vector;
			  float _Int;
			  float _Float;
			  float _Range;
			  sampler2D 2D;//2D类型的要定义成sampler2D
			  samplerCube _Cube;
			  sampler3D _3D;
			  //在任何使用float 的地方都可以使用half、fixed代替 
			  //float4 = half4 = fixed4............
			  //三者之间的区别在于 精度不同 所占用的显存不同  根据需要使用相应的精度可以节约资源
			  //float 32位进行存储  常用语位置的定义
			  //half  16位进行存储 -6W - +6W  用的较少
			  //fixed 11位进行存储 -2  - +2 常用于颜色的定义
			  ENDCG
		  }
	  }

	  Fallback"VertexLit"
}
一个UnityShader脚本由Shader名、Properties、一个或者多个SubShader、Pass块、Fallback组成,其中Properties中定义一些属性,如颜色、纹理等,控制Shader实现效果的代码在Pass块的CGPROGRAM和ENDCG间。当所定义的Shander不能被所运行的设备所支持时,会回滚到Fallback后所定义的Shader。

UnityShader快速入门(1)UnityShader结构 UnityShader快速入门(1)UnityShader结构 1. 简介 1.1 什么是shader Shader的中文翻译是着色器,是类面对GPU编程语言的总称。 Shader其实就是段代码,这段代码的作用是告诉GPU具体怎样去绘制模型的每个顶点的颜色以及最终每个像素点的颜色。 更具体的讲: GPU流水线上–些可高度编程的阶段,而由着色器编译出来的最终代码是会在GPU.上运行的(对于固定管线的渲染来说,着色器有时等同于–些特定的渲染设置); 有些特定类型的着色器,如顶点着色器、片元着色器等 阅读详情

相关推荐

UnityShader学习资料推荐

UnityShader学习资料推荐 图形学是涉及内容比较多的学科,不仅对编程能力有要求,而且对数学以及美术方面都需要有定的了解。下面根据个人的学习经历,给大家推荐些资料。 程序员编码类 第部分:书籍类 UnityShader入门精要 (扫描版-高清) 书籍链接: https://pan.baidu.com/s/1eRMJIF4 密码: x1

那远远的云端 1万+

Unity劝退教程--从入门放弃01》

unity初识 unity是什么? **简单来说:unity款游戏引擎!** 安装unity 打开 unity官网。 创建unity ID 使用邮箱或其他方式进行注册。 点击下载Unity ,可以选择从Hub下载,或者下载与自己电脑相匹配的unity版本。 下载完成之后我们会看到如下图标: 打开Unity Hub 选择登录Unity ID,在设置中对编辑器安装路径语言等进行设置,并激活许可证,不激活许可证 unity 无法正常打开使用。 完成上述操作之后,就可以在Hub面板选择新建我们的unit

newperso的博客 370

UnityShader入门放弃()将法线的颜色填充给物体

在定义UnityShader中的属性的时,常需要使用到语义。如:声明物体的顶点位置是需要使用PISITION语义,这个语义会告诉计算机,这个变量取到的是物体顶点的位置信息,如果没有语义的话,我们将无法获取到物体的顶点信息,将无法渲染这个物体。下边的代码是将模型各个顶点的法线的颜色付给模型,同时练习下语义的使用。 Shader "Luoxiaoxiao/Shader_3"{ SubShad

IT_break的博客 1157

UNITY开发VR从入门放弃---VR自学手册

如何快速学习VR开发,以及HTCvive的使用。

qq_41853937的博客 3万+

Unity入门放弃》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+Terrain+Prefab+预制体+Collider+Rigidbody+立钻哥哥++OK++)

Unity入门放弃》 版本 作者 参与者 完成日期 备注 YanlzVR_Unity_V01_1.0 严立钻 2020.04.26 ...

VRunSoftYanlz的博客 1万+

图形学与unity shader笔记————从入门放弃回 从与渲染无关的东西开始

图形学与unity shader笔记————从入门放弃回 从与渲染无关的东西开始 今天2019年4月3日,在这个多云的日子,我的手绘屏出了问题,连不上电脑了,同时我的全局光照的书也到货了,于是终于开始更新鸽了很久的shader笔记,算是对自己已经点亮了的渲染科技做个总结,并且如果有新的科技被点亮了也会更新到笔记。 以及本人才疏学浅,难免有错漏之处_(:з」∠)_ 巧妇...

ac139178的博客 593

Unity3D 从入门放弃(四)----打飞碟

Unity3D 从入门放弃(五)—–打飞碟填坑计划的万恶之源 写在开头: 本来感觉应该是不会写博客的,而且也不是很擅长写 博客。但在后来,突然醒悟到,博客这个东西,实际上并不是给别人看的(感觉也不会有人看),更重要的,是给自己个提示,个记录。只有把原始森林中所有的危险地点全部都标记下来,下次来的时候才不会重蹈覆辙。 该说的就这么多,要赶紧填坑了。 打飞碟 程序规则:写个用鼠

MyCodecOdecoDecodE的博客 1137

UnityShader入门精要学习笔记

最后次修订是2022.8.30.转载自早期Excel笔记。

qq_34738754的博客 855

UnityShader入门精要》UnityShader基础

UnityShader指的是ShaderLab文件——硬盘上以.shader作为文件后缀的文件 UnityShader对比传统shader的优缺点: (1)传统shader只能编写特定类型的shader,例如顶点着色器和片段着色器只能独立写在份文件中,UnityShader可以在个文件里写顶点着色器和片段着色器。 (2)传统shader无法在shader(顶点着色器,片段着色器)中设置些渲染设置,例如是否开启混合,深度测试,模板测试等,需要在另外的代码中自行设置,UnityShader可以在sha

qq_33187521的博客 518

UnityShader入门精要》学习2

UnityShader入门精要》第三章--UnityShader 基础

zaizai1007的博客 459

UnityShader快速入门(2)UnityShader的形式

UnityShader快速入门(2)UnityShader的形式 1. 简介 UnityShader最重要的任务是:指定各种着色器所需的代码 而代码的编写形式有以下三种 2. 长子:顶点/片元着色器 在Unity中我们可以使用CG/HLSL语言来编写顶点/片元着色器(Vertex/Fragment Shader)。 它更复杂也更灵活。 它写在Pass语句块内,格式如下 Shader "Unlit/MyFirstShader" { Properties { _Color("Color", Color)

买烤麸烤饼儿的博客 412

UnityShader入门放弃()表面着色器和顶点、片元着色器

1.表面着色器:表面着色器是Unity特有的种着色器代码类型,表面着色器定义在SubShader中。表面着色器需要编写的代码量很少,Unity会自动处理些细节。但是表面着色器的本质和顶点、片元着色器是样的,当我们定义个表面着色器的时候,Unity会在背后将其转换成个顶点、片元着色器。虽然使用表面着色器Unity会做很多的处理工作,使开发更为简单,但是其带来的缺点也是很明显的,如:灵活性很

IT_break的博客 4433

码农小白 Unity 3D篇 初识Unity 3D

码农小白 Unity 3D篇初始Unity 3D1、unity 3D简介2、unity的几大优势3、创建项目4、unity界面![在这里插入图片描述](https://img-blog.csdnimg.cn/20200312212427471.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0...

OutsideSystem的博客 555

unity入门教程(非常详细)从零基础入门到精通,看完这篇就够了

在新建完成后会在创建的目录下生成相关工程文件如图所示:Assets: 资源(场景脚本模型)Library: 库(系统)Logs: 日志Packages: 导入的包ProjectSettings: 工程设置Temp: 临时文件(文件过大可以删除部分缓存)UserSettings: 设置。

Innocence_0的博客 2456

Unity Shader初涉之 -- 布尔值控制Shader使用哪种计算

最近开始学习Shader,深深被它的功能所折服,而在使用时会产生个需求,能不能用个布尔值去控制Shader的运算逻辑,可以让他展示两套不同的表现形式,在翻看有关Shader的书籍时看到了这部分,特此记录: using UnityEngine; using UnityEditor; using System; public class CustomShaderGUI : Sha

IYN的博客 5645

unity shader学习---屏幕后处理

边缘检测,高斯模糊,Bloom

qq_39542170的博客 5156

UnityShader学习教程之<毛玻璃效果解析>

毛玻璃是很多项目需要的效果,以下是毛玻璃的效果代码:Shader "Custom/WaterBlur" { Properties { _blurSizeXY("BlurSizeXY", Range(0,15)) = 2 } SubShader { Tags { "IgnoreProjector"="True"

xiongwen_li的博客 5170
上一篇: 约瑟夫环问题
下一篇: UnityShader从入门到放弃(二)表面着色器和顶点、片元着色器
白色的皮卡丘
博客等级 码龄10年 16粉丝 13原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值