当前位置: 首页 > news >正文

Unity Shader 学习18:Shader书写基本功整理

1. Drawer

  • [HideInInspector]:面板上隐藏
  • [NoScaleOffset]:隐藏该纹理贴图的TillingOffset
  • [Normal]:检查该纹理是否设为法线贴图
  • [HDR]:将颜色类型设为高动态范围颜色(摄像机也要开启HDR才有效果)
  • [PowerSlider(value)]:滑动条 - 对于有些参数0-1的部分很敏感,而再大没那么敏感的时候,可以用这个属性来调整滑动的手感
  • [Header(value)]:标题
  • [Space(value)]:空行的高度
  • [Toggle]:开关,可以用变体来代替

2. 浮点数精度

  • fixed:-2~2,精度1/256,可以用来表示颜色,但慎用
  • half:-6000~6000,精度大概三位小数,表示一些向量、hdr的颜色是够的
  • float:世界坐标位置、uv坐标

3. vertex可访问输入(都是float)

  • POSITION:顶点位置
  • TEXCOORD0123:UV通道1234
  • NORMAL:法线方向
  • TANGENT:切线方向
  • COLOR:顶点色

4. vertex常用输出

  • pos(CS) - float4o.pos = UnityObjectToClipPos(v.vertex);
  • uv0 - float2 - 一般纹理UV:
    o.uv0 = v.uv0;/o.uv0 = TRANSFORM_TEX(v.uv0, _Maintex);
  • uv1 - float2 - LightmapUV:
    o.uv1 = v.uv1;/o.uv1 = v.uv1 * unity_LightmapST.xy + unity_LightmapST.zw;
  • posWS - half3:o.posWS = mul(unity_ObjectToWorld, v.vertex);
  • nDirWS/tDirWS/bDirWS - half3 - 法线切线副切线方向:
    o.nDirWS = UnityObjectToWorldNormal(v.normal);
    o.tDirWS = normalize(mul(unity_ObjectToWorld, float4(v.tangent.xyz, 0.0)).xyz);o.bDirWS = normalize(cross(o.nDirWS, o.tDirWS) * v.tangent.w);
  • color - fixed4/half4 - 顶点色:o.color = v.color;

5. 函数复用

  • 注意要用的函数定义要放在用之前

6. cginc库

  • 创建:文件拓展名改为.cginc,加一个防止重复包含的框架:
#ifndef MY_CGINC
#define MY_CGINC
…
#endif
  • 包含:#include “相对路径/MyCginc.cginc”

相关文章:

  • 一款超级好用且开源免费的数据可视化工具——Superset
  • Postman下载安装使用指南
  • Vue 3 + Composition API + Vite + Pinia + Element Plus 构建项目的完整指南
  • vue复习1~45
  • 数据安全与网络安全——问答复习
  • STL入门
  • SpringBoot3+Vue3开发公司库房管理系统
  • Cursor异常问题全解析-无限使用
  • 【ComfyUI】相似画绘制工作流教程
  • Ubuntu22云服务器添加2G Swap分区
  • C++中获取文件名的后缀
  • 深入探索 Python 中的 asyncio:异步编程的利器
  • es 3期 第27节-运用Script脚本实现复杂需求
  • 5500字,从零开始入门OpenCV的超基础操作~
  • Vue实现动态数据透视表(交叉表)
  • GCP(Google Cloud-native stack)的云原生技术栈介绍
  • Android之uCrop (裁剪) 的基本使用资料
  • 滑动窗口(1)—⻓度最⼩的⼦数组
  • 什么样的医疗器械进销存管理软件可以选择?
  • Channel Shuffle通道洗牌
  • 上海高端网站建设服务公/株洲seo优化公司
  • 培训类网站模板/厦门网站设计公司
  • 网站公司做的比较好/如何制作网页最简单的方法
  • 网站获取用户/竞价网
  • 做外国网站百度搜到/免费推广网
  • 北京大型网站开发/百度一下网页版浏览器