目录

  • 坐标空间
  • Unity坐标转换
  • 顶点片元Shader

坐标空间

物体空间: 3D物体自己的空间,一般设计时几何体以中心为原点,人物以双脚为原点
世界空间: 3D物体在场景中的世界坐标,整个游戏场景的空间
摄像机空间: 以观察摄像机为原点的坐标系下的坐标空间
投影成像: 3D坐标转换到屏幕中间

Unity坐标转换

顶点片元Shader

特点:

  • 控制灵活,但是不能参与光照计算
  • 在着色器中插入Cg代码段,编写在 CGPROGRAM 与 ENDCG 之间

编译指令:
#pragma控制着色器代码代码编译
例如

#pragma vertex name  //将名称为name的函数编译为顶点着色器
#pragma fragment name  //将名称为name的函数编译为片元着色器

参数和返回值由语义修饰
常用语义修饰如下图

基本的代码实例:

Shader "Custom/MyShader"
{Properties{_Color("Color", Color) = (1,1,1,1)_MainTex("Albedo (RGB)", 2D) = "white" {}_Glossiness("Smoothness", Range(0,1)) = 0.5_Metallic("Metallic", Range(0,1)) = 0.0}SubShader{Pass{CGPROGRAM#pragma vertex vert   //把vert作为顶点Shader的入口//获得上一个工位的参数使用语义绑定(bind),获得输入输出的类型,可使用的语义上面有列举float4 vert(float4 pos : POSITION) : POSITION{         return mul(UNITY_MATRIX_MVP, pos);    //在这里可以写你自己的操作,我这里的操作是完成一个矩阵转换}#pragma fragment frag //把frag作为像素Shader的入口fixed4 frag() : COLOR{return fixed4(1.0, 0.0, 0.0, 1.0);     //红色}ENDCG}}FallBack "Diffuse"
}

顶点片元Shader(Unity)相关推荐

  1. unity shader2 --Unlit顶点片元shader

    渲染需要: 首先是需要渲染的模型/粒子. 然后,unity材质球元素. 最后需要unityshader. 效果图: unityshader和shader的概念是不一样的,相当于简单封装了一下,实际上是 ...

  2. 【Unity Shader】学习顶点/片元着色器

    上一篇博客重点放在了Unity Shader的基本结构,分别介绍了它包含的三个语义块,最后简单介绍了Unity Shader的形式:表面着色器.顶点/片元着色器和固定函数着色器. 趁热打铁,今天接着上 ...

  3. 【Unity Shaders】最简单的顶点/片元着色器3

    微信号:ITComputerGraph 更多精彩内容,关注公众号<IT木子李> Shader "Unity Shaders/Simple Shader3" {SubSh ...

  4. UnityShader6:最简单的顶点/片元着色器

    一.顶点/片元着色器基本结构 直接上代码: 这个着色器可以得到蓝色的纯色输出,如果顶点着色器得出了错误的裁剪空间坐标,那么会出现很明显表现错误 Shader "Jaihk662/NewSur ...

  5. 初识顶点/片元着色器

    5.2 一个最简单的顶点/片元着色器 5.2.1 顶点/片元着色器的基本结构 一个 Unity Shader 的基本结构.它包含了 Shader.Properties.SubShader.Fallba ...

  6. 学习Shader Unity Shader 基础

    1.如何充分利用 Unity Shader 来为我们的游戏增光添彩? 材质和 Unity Shader: 在Unity中,我们需要配合使用材质(Material)和 Unity Shader 才能达到 ...

  7. UnityShader入门精要笔记1——顶点/片元着色器结构与BRDF(基本光照模型)——实现漫反射

    文章目录 BRDF(基本光照模型) 实现漫反射 光线强度的计算 好现在开始写Shader 新建Shader 添加一个Properties语义块 添加SubShader和Pass. 使用CG/HLSL语 ...

  8. 【Unity Shader】自定义顶点片元着色器解析

    案例 Shader "Unlit/shader01" {Properties{_MyColor("color", Color) = (1,1,1,1)}SubS ...

  9. Unity Shader:Unity网格(1)---顶点,三角形朝向,法线,uv,以及双面渲染三角形

    1,顶点 顶点是网格最基础的组成部分,可通过mesh.vertices获取和赋值.mesh.vertices是一个Vector3的数组,每个Vector3代表了此顶点在世界空间中的位置每个Vector ...

最新文章

  1. 【Smart_Point】C/C++ 中独占指针unique_ptr
  2. 1.9 GRU 单元-深度学习第五课《序列模型》-Stanford吴恩达教授
  3. 添加vlan后无法上网_KTV多SSID绑定VLAN实用案例,值得一看的干货
  4. Ubuntu下使用pjsip点对点通话
  5. 为对象分配内存TLAB
  6. 【无码专区10】第K大查询(双向链表 /主席树+st表)
  7. 图像检索在高德地图POI数据生产中的应用
  8. iOS NSURLSession DataTask(数据任务)
  9. ROS笔记之回调函数
  10. php ai,php能做AI智能吗
  11. Linux--rpm、yum等安装软件
  12. 事业单位计算机技术岗工资,事业技术工资待遇
  13. 西门子PLC常用通信协议以及常用协议的区别(二)
  14. 2019年中国大学生计算机设计大赛--心得总结
  15. dwg格式转换pdf
  16. IE源代码摘抄,基于泄漏的IE5.0(持续更新)
  17. kubernetes集群中的port、targetPort、nodePort和containerPort区别
  18. 入秋的第一篇数据结构算法:看看归并与快排的风采,三面蚂蚁金服成功拿到offer
  19. 树莓派4B安装桌面控件wbar和conky,美化桌面(解决报错)
  20. GIT (develop|MERGING)

热门文章

  1. scratch做出按键控制屏幕滚动效果
  2. 《经济学是什么》精髓:如何用经济学家的眼光理解个人选择和市场经济?
  3. 使用JavaScrip实现简单问卷星快速生成自定义数据
  4. jQuery 参考手册 - 核心
  5. 00942 oracle_Oracle物化视图创建报ORA-00942错误解决
  6. 阿里云-轻量应用服务器 jdk tomcat 的配置
  7. Spring Kafka的Offset提交时机
  8. Qt5--学习笔记-+openCV2-客户端、服务端回环视频显示
  9. 申请支付宝-Alipay 密钥流程
  10. 上饶县计算机等级考试,2020年3月江西省上饶市计算机等级考试报名时间