首页 > 作文

Unity图形学之ShaderLab入门基础

更新时间:2023-04-04 12:48:31 阅读: 评论:0

这篇只是一个总结,方便我写shader的时候查找api;

1.格式

shader "custom/myshader"//命名+右键创建shader路径{    //属性必须在代码里声明才能使用    properties{//属性,会出现在inspector面板        _maintex("main tex",2d) 平安夜送苹果金句= "white"{}//名称("面板显示名称",数据类型) = 初始化    }    //针对不同显卡可以有不同subshader,对应不同品质的渲染    subshader{        tags{"lightmode"="forwardba"}//tags,定义渲染的设置        zwrite off//rendertup,渲染设置        pass{//通道pass,一个subshade鲫鱼汤 孕妇r可以有多个pass        name = "mypass"//pass可以命名,在其他subshader引用upass大写            cgprogram//开始cg代码-和endcg成对        #pragma vertex vert//定义渲染函数,顶点        #pragma fragment frag//片元        #pragma surface surf lambert //表面        #include "lighting.cginc"//包含方法库                    sample2d _maintex;//声明变量            float4 _maintex_st;                    struct a2v//自定义结构体        {             float4 vertex : position;//变量类型 变量名:语义说明(语言规定)             float3 normal: normal;        }                    v2f vert (appdata v)//函数体            {v2f o;                return o;            }        endcg板桥体        }    }    subshader{...}    fallback "diffu"//以上subshader显卡都不支持,默认返回漫反射}

uniform修饰词;

name = “mypass”

——upass “unlit/outline/mypass”//必须大写

——grappass//抓取屏幕结果存储在一张纹理中

2.属性

属性对应的变量类型,声明变量使用;属性中类型和变量中类型不一定一致;

3.语义

sv_开头表示system-value——系统定义的语义变量;

4.tags

1)subshader可用

queue——渲染队列

rendertype——渲染类型

(1)”opaque”:绝大部分不透明的物体都使用这个;
(2)”transparent”:绝大部分透明欧洲天气预报查询的物体、包括粒子特效都使用这个;
(3)”background”:天空盒都使用这个;
(4)”overlay”:gui、镜头光晕都使用这个;
(5)还有其他可参考rendering with replaced shaders;用户也可以定义任意自己的rendertype字符串;
(6)”transparentcutout“:透明测试使用;

ignoreprojector = “true”——忽略投影器影响,alphatest和alphablend使用;

forcenoshadowcasting = “true”——表示不接受阴影;

2)pass可用

“lightmode”=”forwardba”

5.rendertup

1)cull剔除

cull front/back/off

2)深度测试和写入

zwrite off

ztest off

3)blend——透明混合设置

blendop

blend效果

6.方法

unitycg.cginc常用结构体

书写建议:
1.移动平台的shader尽可能使用精度低的变量:fixed-half-float

2.错误:片元中大量计算导致寄存器不足——提高shadertarget等级

3.尽量不要使用分支语句

4.不要除以0

life is too short for so much sorrow.  

到此这篇关于u三傻nity图形学之shaderlab入门基础的文章就介绍到这了,更多相关unity shaderlab内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 12:48:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/5c87a180fcb03e98fed08f55a53af5ba.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Unity图形学之ShaderLab入门基础.doc

本文 PDF 下载地址:Unity图形学之ShaderLab入门基础.pdf

标签:变量   属性   使用这个   类型
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图