unity—shader简单编程(2)
发布日期:2021-05-07 17:59:07
浏览次数:12
分类:技术文章
本文共 1566 字,大约阅读时间需要 5 分钟。
上一篇编写shader需要具备的知识储备,在这篇博客中如果有迷茫的可以去这里看一看// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Custom/My_shader"{ //属性,可以在编辑器里面绑定和修改 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 //插入Cg代码开始,必须有 然后指定shader的入口在哪里 //Cg的语法与c、c#相似 fixed4 _Color;//定义同样名字的变量 sampler2D _MainTex;//定义同样名字的变量 #pragma vertex my_vert//编译指令,将那个函数作为着色器的入口,在这里是my_vert函数 //并且要告诉编译器,这是什么着色器 //顶点着色器的声明是 #pragma vertex+ 函数名称 //顶点着色器的优点是控制灵活,缺点是无法参与光照计算 //片元着色器的声明是 #pragma fragment +函数名称 //只有绑定了之后,编译的时候才会把上一个工位的position传过来(传到pos) //前面的那个POSITION是将上一个工位的位置绑定到pos上,第二个冒号是将修改后的pos传递到下一个工位 //GPU渲染流程工位图在上一篇博客里面 float4 my_vert(float4 pos :POSITION):POSITION//怎样获得的上一个工位的参数——》语义绑定 { return UnityObjectToClipPos(pos);//将pos坐标变换到投影空间,然后传递到下一个工位 } #pragma fragment my_frag//进行片元着色器的编程 fixed4 my_frag(float2 uv:TEXCOORD0) :COLOR//第一套纹理也可以是第二套第三套,只需要将最后面的0修改即可 { //return fixed4(1.0, 0.0, 0.0, 1.0); return _Color; //返回的这个是修改后的默认颜色值 //return tex2D(_MainTex,uv);//前面是需要修改的纹理,后面是查找的像素坐标颜色,函数在上一篇博客中 } //相当于四个float x、y、z、常量 ENDCG //插入Cg代码结束,必须有,两者都存在了之后,在中间就可以编辑着色器代码 //在子着色器中,必须要有通道属性,在通道属性中,只要有顶点着色器与片元着色器其中的一个,可以同时有两个 } } FallBack "Diffuse"}
实现效果
开始 运行 希望这篇博客可以对您有些启发,嗯,如果在这些代码中有看不懂的函数或者知识的话,可以去上一篇博客看一看转载地址:https://blog.csdn.net/lfanyize/article/details/104087430 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月13日 13时34分39秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【开发篇】10分钟快速上手spring boot
2019-04-26
【开发篇】10分钟快速spring boot+react前后端分离
2019-04-26
【开发篇】10分钟快速上手spring boot+mybatis增删改查
2019-04-26
【Leetcode刷题篇】leetcode203 移除链表元素
2019-04-26
【Leetcode刷题篇】leetcode108 将有序数组转换为二叉搜索树
2019-04-26
【Leetcode刷题篇】leetcoe109 有序链表转换二叉搜索树
2019-04-26
【Leetcode刷题篇】leetcode938 二叉搜索树的范围和
2019-04-26
【Leetcode刷题篇】leetcode235 二叉搜索树的最近公共祖先
2019-04-26
【Leetcode刷题篇】leetcode236 二叉树的最近公共祖先
2019-04-26
【Leetcode刷题篇】leetcode230 二叉搜索树中第K小的元素
2019-04-26
【Leetcode刷题篇】leetcode173 二叉搜索树迭代器
2019-04-26
【Leetcode刷题篇】leetcode99 恢复二叉搜索树
2019-04-26
【Leetcode刷题篇】leetcode451根据字符出现频率排序
2019-04-26
【Leetcode刷题篇】leetcode703 数据流中的第k大元素
2019-04-26
【Leetcode刷题篇】leetcode378 有序矩阵中第K小的元素
2019-04-26
【Leetcode刷题篇】前K个高频元素
2019-04-26
【Leetcode刷题篇】leetcode373 查找和最小的K对数字
2019-04-26
【Leetcode刷题篇】leetcode367 有效的完全平方数
2021-06-29
【Leetcode刷题篇】剑指offer-数值的整数次方
2021-06-29
【Leetcode刷题篇】面试题01.06 字符串压缩
2021-06-29