Shader
来源:互联网 发布:软件质量保证计划书 编辑:程序博客网 时间:2024/06/02 09:52
Shader分类
Shader按管线分类一般分为固定渲染管线与可编程渲染管线
1. 固定渲染管线 这是标准的几何&光照(Transforming&Lighting)管线,功能是固定的,它控制着世界,视,投影变换及固定关照和纹理混合.T&L管线可以被渲染状态控制,矩阵,光照和采制参数.功能比较有限,基本所有的显卡都能正常运行.
2. 可编程渲染管线 对渲染管线中的顶点运算和像素运算分别进行编程处理,而无须像固定渲染管线那样套用一些固定函数,取代设置参数来控制管线.
Unity3D三种Shader对比
三种Shader共同点:
- 都必须从唯一一个跟Shader开始
- Properties参数部分,作用及用法完全相同
- 具体功能都在SubShader里(
SubShader
子shader,Shader会自上而下运行第一个硬件能支持的SubShader,主要作用是对不同硬件的支持. - 都可以打标签,例如Tags{“RenderType”=”Opaque”} LOD 200 以及Lighting On等
- 都可以Fallback
- 都可以处理基本的功能,例如光照反射(Dissfuse)以及镜面反射(Specular).但是Vertex and Fragment和Surface都能实现Fixed function实现不了的高级功能,例如基于uv计算的效果等等.
三种Shader不同点
- Fixed function shader以及Vertex and Fragment Shader在Subshader下面还有Pass{},但是Surface Shader,由于已经将具体内容打包在光照模型了,不能加Pass{},加了会报错.
- Fixed function shader每句代码之后没有分号,但是V&F shader以及Surface shader每句代码之后都必须加分号
- 核心结构不通
|Fixed function shader|Vertex and Fragment Shader|Surface Shader|
|Material{} 以及SetTexutre[MainTex]{}|
的核心是
CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"ENDCG
CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" ENDCG
采用unity自带光照模型Lambert,只需要一个表面处理函数surf即可CGPROGRAM #pragma surface surf Lambert ENDCG
0 0
- shader
- shader
- shader
- Shader
- Shader
- shader
- shader
- shader
- Shader
- shader
- Shader
- shader
- Shader
- shader
- Shader
- Shader
- Shader
- Shader 轮廓发光shader
- DB2表清空数据的四种方法
- 威联通 NAS TS-212P 重置初始化
- 前端工程师使用node.js打造日记社区教程之一
- 论文-基于MFC单文档的Google Earth COM API程序设计
- 【代码笔记】iOS-短信分享
- Shader
- 插件Uploadify图片上传
- 通过系统存储过程手动执行SQL Server中的Job
- android学习笔记(一) 由点及面从项目入手学习android android视频应用之功能页面开发
- 去除Wifi,蓝牙设置界面左上角返回箭头
- weblogic12.2.1线程池监控指标说明
- SpringMVC + Spring + SpringJDBC整合
- JS一定要放在Body的最底部么?聊聊浏览器的渲染机制
- 调试了下 最后总是返回6 惆怅啊