Unity3D教程宝典之Shader篇:第十一讲剔除及深度测试

转载自风宇冲Unity3D教程学院

Culling阴影面剔除

Culling阴影面剔除是一种优化技术。所有的多边形都有正反两面,而你永远只能看见其中一面,不信的话拿张纸板或者一面镜子看看你能不能同时看到两面。通常多边形面向屏幕里面的背面,我们看不见,所以会将该面剔除。

Cull Off 关闭阴影面剔除

Cull Back 剔除背面

Cull Front 剔除正面

Depth Testing深度测试

Depth Testing:深度测试,也叫深度缓冲。只有最靠近观察者的物体会被绘制。深度即Z,该值越小表示离观察者越近,该值越大表示离观察者越远。

Shader里默认有如下代码

  1. ZWrite On
  2. ZTest LEqual

意思即使Shader里没有写任何关于Depth Testing的代码,Shader也会执行深度测试。

ZWrite:是否此物体的像素深度会被记录(默认记录),

ZWrite On  深度记录(默认On)

ZWrite Off  不记录此深度,通常用于半透明物体,

ZTest:默认是 LEqual。 即当深度小于或者等于 深度最小值时,渲染物体,即渲染最近的物体。

时间: 2024-10-15 20:13:54

Unity3D教程宝典之Shader篇:第十一讲剔除及深度测试的相关文章

Unity3D教程宝典之Shader篇:第二讲Fixed Function Shader

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 Fixed function shader简介:  属于固定渲染管线 Shader, 基本用于高级Shader在老显卡无法显示时的情况.使用的是ShaderLab语言,语法与微软的FX files 或者NVIDIA的 CgFX类似. 例一:显示单一颜色下面我们来看第一个例子,显示单一颜色,注释写得挺详细了,照着格式写即可. //根Shader Shader "Custom/1_1color" { // 属性 Propertie

Unity3D教程宝典之Shader篇:第一讲Shader总篇

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 引言,在Unity3d里,所有的图形绘制都必须通过Shader,即着色器.一般的使用过程中,我们用到的都是unity自带的Shader,即build-in shader.学习Shader后,自己写的Shader能做出很多你想要的特殊效果,增强游戏的画面表现.例如 水的倒影. LOGO的光影闪过等等效果等等. Shader的分类 Shader按管线分类一般分为固定渲染管线与可编程渲染管线 1)固定渲染管线 ——这是标准的几何&光照(Tra

Unity3D教程宝典之Shader篇:第九讲Render Path

转载自风宇冲Unity3D教程学院 Render Path定义Render Path,就是采取的光照流程. Render Path设置可以在Edit-> Project Settings->Player 里设定,见下图.也可以直接在摄像机的Inspector面板里设置. Render Path详细讲解                                    一:Vertex LitVertex Lit即顶点光照,顾名思义, 就是所有的光照计算都是在顶点进行的,因此所有的像素运算效

Unity3D教程宝典之Shader篇:基础讲 基础知识

转载自风宇冲Unity3D教程学院 以下内容不需要入门的时候立刻阅读和理解,建议逐渐深入学习后,不时回来看看即可. 什么是GPU? GPU:Graphic Processing Unit,中文翻译为“图形处理器”.显卡包括(GPU,显存,显卡BIOS,显卡PCB板). 什么是Shader? Shader程序:GPU执行的,针对3D对象进行操作的程序. Shader有哪几种? CG:与DirectX 9.0以上以及OpenGL 完全兼容.运行时或事先编译成GPU汇编代码. HLSL: 主要用于Di

Unity3D教程宝典之Shader篇:特别讲 CG函数

转载自风宇冲Unity3D教程学院 特别讲:CG函数 本讲不需立刻看完,遇到相关函数时来查阅即可.(本文截图来源:Cg教程_可编程实时图形权威指南) E.1  数学函数 E.2 几何函数 E.3 纹理贴图函数 E.4 导数函数 E.5 调试函数 E.1  数学函数 E.2 几何函数 E.3 纹理贴图函数 E.4 导数函数 E.5 调试函数

Unity3D教程宝典之Shader篇:特别讲 常见问题解答

转载自风宇冲Unity3D教程学院 本讲会陆续补充一些问题的解答. 问: (1) TRANSFORM_TEX是做什么的 (2)float4 _MainTex_ST 中的_MainTex_ST变量也没有用到,为啥非要声明一下? 答: (1)简单来说,TRANSFORM_TEX主要作用是拿顶点的uv去和材质球的tiling和offset作运算, 确保材质球里的缩放和偏移设置是正确的. (v.texcoord就是顶点的uv) 下面这两个函数是等价的. o.uv =   TRANSFORM_TEX(v.

Unity3D教程宝典之Shader篇:第二十一讲视差贴图

转载自风宇冲Unity3D教程学院 视差贴图的展示 图一:注意轮胎印中的自阴影,实际上路面只是一个平地 图二:孤岛危机的成功,视差贴图功不可没 图三:视差贴图同样可用于人物,装备及道具 本讲分四个部分一:优点特性 二:基本原理 三:使用方法 四:视差计算 第一部分 视差贴图的优点及特性 上一讲讲了法线贴图.法线贴图,无论是RGB法线贴图还是DXT5nm,都有一个缺点就是.越接近面的水平视角,则画面越不真实.因为使用法线贴图后,凸起的部分只是看起来凸起而已,网格模型却并没有凸起依然是平的.正常来说

Unity3D教程宝典之Shader篇

教程目录 基础讲:Shader学习方法基础讲:基础知识特别讲:常见问题解答特别讲:CG函数 第一讲: Shader总篇第二讲: Fixed Function Shader 第三讲: Vertex&Fragment Shader基础 第四讲: 制作一个美丽的地球第五讲:LOGO闪光效果 第六讲:TexGen第七讲:流程图第八讲:Why CG?第九讲:Render Path第十讲:雾化第十一讲:阴影面剔除及深度测试第十二讲:alpha测试第十三讲:alpha混合第十四讲:Surface Shader

Unity3D教程宝典之Shader篇:第四讲制作一个美丽的地球

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 Vertex and Fragment Shader例子二,制作一个自动旋转的3D地球. 下载美丽的地球工程 原理是 2张贴图,一张地球图,一张云层分布图(1)通过uv.x即纹理坐标的横轴与时间相乘,产生球在移动的效果 (2)通过地球和云的颜色值叠加形成 层叠 的效果.注意:贴图的'Wrap Mode'属性一定要设置成Repeat                              关于Wrap Mode当Wrap Mode为Cl