![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
shaderlab 入门与精通
文章平均质量分 82
zyq20130118
这个作者很懒,什么都没留下…
展开
-
ShaderLab基础(渲染管线)
在上一节通过简单的几步操作,就将3d场景显示在在2维屏幕里了。在这里可以将场景渲染到一张贴图里,如何实现呢? 1. 在Tex目录通过如下方式新建一个RenderTexture,取名为HelloRender, 建好后如下图所示 2. 将Main Camera的TargetTexture属性设置为HelloRender,设置好后,如下图所示 然后原创 2016-10-12 16:06:30 · 472 阅读 · 0 评论 -
ShaderLab基础(SubShader)
1.SubShader 打开HelloShader如下图 上一节讨论了Shaderlab属性,这一小节将讨论SubShader,SubShader称作为子着色器。真正渲染物体是通过SubShader实现的。在HelloShader 代码中删除SubShader后,代码变成如下图所示: 运行程序发现物体变成如下图所示: 2.细节 1.原创 2016-10-10 16:58:02 · 442 阅读 · 0 评论 -
ShaderLab基础(属性)
1. 打开上一次课新建的Custom/HelloShader ,接下来分析这个ShaderLab中的内容: 从这个文件可以看出 Shader是定义一个Shader的关键字,”Custom/HelloShader”是这个Shader的名字然后是大括号{}用于定义Shader的内容,因此Shader的定义格式如下: Shader “Name” { } 接下来分析{}中的内原创 2016-09-30 11:14:33 · 625 阅读 · 0 评论 -
ShaderLab基础(Hello world 程序)
第一个 ShaderLab程序Hello World 作为shaderlab的入门,还是和学习其他的语言一样,先写一个Hello Wrold程序。 1.首先启动Unity程序,然后将会弹出如下界面(图1) 图1 2.然后单击Create new Project 将会弹出如下界面(图2)原创 2016-09-29 18:08:25 · 659 阅读 · 0 评论 -
ShaderLab基础(阴影面剔除)
在上二节学习了subshader的Tags,这一节将会对CommonState进行学习Commonstate包含许多命令,在后面的课程里主要是针对阴影面剔除,Ztest,alpha test,alphalblend命令进行学习,这节将会对阴影面剔除经行学习。 打开场景1.scene,在这个场景里有一个cube物体,这个cube物体是六面体。一共有6个面,每个面有2个三角形,一共12个三原创 2016-10-17 17:44:03 · 785 阅读 · 0 评论 -
ShaderLab基础(深度测试)
这小节首先复习一下渲染管线,渲染管线的流程如下: 渲染管线分为应用程序阶段,几何阶段,光栅化阶段。其中光栅化阶段首先是图元装配是根据索引组成图元,并完成裁剪,然后进行光栅化,光栅化实际上是将图元对应屏幕坐标。Pixel Operation是计算每个像素的值,Pixel Operation 主要包含以下操作: 1),深度检测 2),像素颜色计算 3),Blending 深原创 2016-10-20 16:46:24 · 1515 阅读 · 0 评论 -
ShaderLab基础(Pass定义)
SubShader的语法包含 Tags ,CommonState,PassDef,Tags与CommonState在前面章节进行了学习,本小节将讨论PassDef,PassDef有三种形态:固定管线,可编程Shader,SurfaceShader。 固定管线是为了支持老一代能力有限的GPU提供支持。对Shader的约束性比较高。下面是固定管线的一个例子。 从上面例子可以看出原创 2016-10-20 16:54:53 · 2025 阅读 · 0 评论