Shader 入门到放弃
zts_coding
学海无涯,请多指教
展开
-
Shader 知识点 第一篇 基本结构
着色器概述什么是着色器? 着色器Shader —— 运行在图形处理单元(GPU)上的程序,可以对图形硬件的渲染功能进行设置。Unity 使用 ShaderLab 着色语言,同时支持使用 Cg、HLSL、GLSL 编写的着色器程序。Shader "name"{ [Properties] SubShader { } //可以有多个,unity会找到第一个被用户机器...原创 2018-04-10 12:35:07 · 1246 阅读 · 0 评论 -
Shader 知识点 第二篇 3种着色器
着色器类型固定管线着色器(已经淘汰) 顶点片段着色器 表面着色器(最终编译为顶点片段着色器,可以理解为unity封装过的顶点片段着色器)顶点片段着色器顶点片段着色器 —— (1)缺点是不能直接和光照交互 (2)用 CG或HLSL编写,嵌入在 Pass 块中 (3)CG代码必须编写在 CGPROGRAM 和 ENDCG 之间编译指令 编译指令 说明...原创 2018-04-10 23:12:01 · 1459 阅读 · 0 评论 -
渲染设置系列1——LOD
SubShader 指定的 LOD 数值, 如果 LOD 大于 Shader 类的 maximumLOD ,则不能使用这个 SubShader来渲染。所以这个 LOD 设置,是和脚本共同使用的。Shader 类 API页面Unity 内置的着色器都有 LOD 分级(其实不用理这个) LOD分级 对应值 VertexLit 100 Decal、...原创 2018-04-11 11:59:37 · 625 阅读 · 0 评论 -
渲染设置系列2——Queue(其实不是渲染设置而是标签)
渲染队列,这个数值决定了 Unity 在渲染场景物体时的先后顺序。Unity 在渲染物体时,在关闭深度检测的情况下,总是后渲染的物体遮挡住先渲染的物体。这句话的意思是—— 举例来说,一个半透明的物体被不透明物体遮挡,但是关闭深度检测,由于半透明物体是比较后才渲染的,所以看上去是半透明物体遮挡了不透明物体。。。(和实际空间位置不符)Tags{ "Queue" = "Transp...原创 2018-04-11 13:10:59 · 781 阅读 · 0 评论 -
渲染设置系列3——ZTest、ZWrite
深度写开关 ZWrite深度写开关 ZWrite,控制是否将来自对象的片元深度值 z 写入深度缓冲,默认开启。如果绘制不透明物体,设置为 On (默认) 如果绘制半透明物体,设置为 Off 半透明物体,它需要进行深度测试,然后进行alpha混合,但是不必对深度缓冲进行写操作,否则半透明物体后边的不透明物体看上去就是是被半透明物体“挖空”了,并且alpha混合应该也会受到影响...原创 2018-04-11 13:26:42 · 620 阅读 · 0 评论 -
渲染设置系列4——AlphaTest
AlphaTest —— Alpha 测试,是阻止片元被写到屏幕上的最后机会。在最终渲染出的颜色被计算出来之后,可以通过将颜色的透明度,和一个固定值进行比较。 如果该颜色 的透明度 alpha,满足条件,则通过测试,绘制此片元;否则丢弃此片元,不进行绘制。(一般用的时候也会需要一张带 Alpha通道的 纹理贴图。。。)默认情况 , AlphaTest Off 关...原创 2018-04-11 16:08:27 · 2223 阅读 · 0 评论 -
渲染设置系列5——Blend
打回重写 混合模式 —— 决定如何将计算结果(片元)输出到帧缓冲。一般对计算产生的颜色、alpha来和其他东西进行混合 常用来绘制透明、半透明、镂空物体 源因子、目标因子 混合模式操作指令 说明 Blend Off 关闭混合(默认情况?是不是这个?) Blend 源因子 目标因子 计算产生的颜色和源因子相乘,然后两个...原创 2018-04-11 17:03:05 · 731 阅读 · 0 评论 -
渲染设置系列6——ColorMask通道遮罩
ColorMask 可以指定渲染结果的输出通道,而不是通常的 RGBA 四个通道都被写入。可选参数为 RGBA 的任意组合以及 0如果参数为0,那么不会写入任何通道,但是会做一次深度测试,并将深度值写入深度缓冲区。 (这样就会有一个“挖空”后边物体的效果)ColorMask 0ColorMask RGAColorMask RBA...例如Tags{ "Queue"=...原创 2018-04-11 17:24:42 · 4329 阅读 · 0 评论 -
渲染设置系列7——Cull 面的剔除
所有的几何体都包含正面、背面,面的剔除基于大多数网格对象都是封闭的事实,因此不需要绘制背面。 面的剔除操作模式 说明 Cull Back 不绘制背向摄像机的面(默认) Cull Front 不绘制面向摄像机的面 Cull Off 关闭面的剔除操作还有一种类似的,就是角色身上的披风,应该来说是个平面,但是想要两个面都绘制。。。应该不是用...原创 2018-04-11 17:50:30 · 1018 阅读 · 0 评论