庄懂05课 Phone和Blin Phone连连看和代码

2023-11-22 06:20

本文主要是介绍庄懂05课 Phone和Blin Phone连连看和代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

庄懂老师https://space.bilibili.com/6373917?spm_id_from=333.788.b_765f7570696e666f.1第五课

phone

Blinn phone

两者区别是Blinn Phone逆光下效果不好,相对Phone比较省资源(现阶段影响很小)

兰伯特加phone的连连看

-Shader "Unlit/Lap and phone code" {Properties {//定义参数_MainColor("颜色",color)=(0.129,0.683,0.613,1)_SpecularPow("高光次数",range(1,90))=30}SubShader {Tags {"RenderType"="Opaque"}LOD 100Pass {Name "FORWARD"Tags {"LightMode"="ForwardBase"}CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"#pragma multi_compile_fwdbase_fullshadows#pragma multi_compile_fog#pragma target 3.0//输入参数uniform float3 _MainColor;uniform float _SpecularPow;//输入结构struct VertexInput {float4 vertex : POSITION; //输入模型顶点信息float3 normal : NORMAL; //输入模型法线信息};//输出结构struct VertexOutput {float4 posCS : SV_POSITION;   //由模型顶点信息换算的顶点屏幕位置float4 posWS : TEXCOORD1;//由模型顶点信息换算的世界顶点信息(vDir =归一化(摄像机位置- posWS))float3 nDirWS : TEXCOORD0;   //由模型法线信息换算来的世界空间法线信息};//输入结构>>>顶点Shader>>>输出结构VertexOutput vert (VertexInput v) {VertexOutput o = (VertexOutput)0;                   //新建输出结构o.posCS = UnityObjectToClipPos( v.vertex );         //o.posWS = mul(unity_ObjectToWorld, v.vertex);       o.nDirWS = UnityObjectToWorldNormal(v.normal);      //把模型法线转换成世界空间法线信息return o;}//输出结构>>>像素float4 frag(VertexOutput i) : COLOR {//准备向量float3 nDir = i.nDirWS;float3 lDir = _WorldSpaceLightPos0.xyz;float3 vDir = normalize(_WorldSpaceCameraPos.xyz - i.posWS.xyz);float3 hDir = normalize(lDir + vDir);//准备点积结果float ndotl = dot(nDir,lDir);float hdotn = dot(hDir,nDir);//光照模型float lambert = max(0.0,ndotl);float blinnPhong = pow(max(0,hdotn),_SpecularPow);float3 finalColor =_MainColor * lambert + blinnPhong;//建议用3维颜色乘1维兰伯特反过来在少数情况下可能会有bugreturn float4(finalColor,1.0);       //输出最终颜色}ENDCG}}FallBack "Diffuse"CustomEditor "ShaderForgeMaterialInspector"
}

兰伯特和blinn phone代码

  }float4 frag(VertexOutput i) : COLOR {//输入向量float3 lDir = _WorldSpaceLightPos0.xyz;float3 nDir = i.nDirWS;float3 vDir = normalize(_WorldSpaceCameraPos.xyz - i.posWS.xyz);float3 rDir =reflect(-lDir,nDir);//点积float ndotl = dot(nDir,lDir);float ldotv = dot(rDir,vDir);//光照模型float lambert = max(0,ndotl);float phone = pow(max(0,ldotv),_SpecularPow);float3 finalRGB = _MainColor*lambert + phone;return fixed4(finalRGB,1);}

兰伯特加phone修改此段

再补充一个自己瞎练的创意题

这篇关于庄懂05课 Phone和Blin Phone连连看和代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/408157

相关文章

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

D4代码AC集

贪心问题解决的步骤: (局部贪心能导致全局贪心)    1.确定贪心策略    2.验证贪心策略是否正确 排队接水 #include<bits/stdc++.h>using namespace std;int main(){int w,n,a[32000];cin>>w>>n;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1);int i=1

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

cell phone teardown 手机拆卸

tweezer 镊子 screwdriver 螺丝刀 opening tool 开口工具 repair 修理 battery 电池 rear panel 后盖 front and rear cameras 前后摄像头 volume button board 音量键线路板 headphone jack 耳机孔 a cracked screen 破裂屏 otherwise non-functiona

html css jquery选项卡 代码练习小项目

在学习 html 和 css jquery 结合使用的时候 做好是能尝试做一些简单的小功能,来提高自己的 逻辑能力,熟悉代码的编写语法 下面分享一段代码 使用html css jquery选项卡 代码练习 <div class="box"><dl class="tab"><dd class="active">手机</dd><dd>家电</dd><dd>服装</dd><dd>数码</dd><dd

生信代码入门:从零开始掌握生物信息学编程技能

少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 介绍 生物信息学是一个高度跨学科的领域,结合了生物学、计算机科学和统计学。随着高通量测序技术的发展,海量的生物数据需要通过编程来进行处理和分析。因此,掌握生信编程技能,成为每一个生物信息学研究者的必备能力。 生信代码入门,旨在帮助初学者从零开始学习生物信息学中的编程基础。通过学习常用