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

《Unity Shader》6.4.3 半兰伯特模型

(1)仍然使用6.4.1小节中使用的场景。

(2)新建一个材质。在本书资源中,该材质名为HalfLambertMat。

(3)新建一个Unity Shader。在本书资源中,该Shader名为Chapter6-HalfLambert。把新的Shader赋给第2步中创建的材质。

(4)把第2步中创建的材质赋给胶囊体。

打开Chapter6-HalfLambert,删除已有的Shader代码,把6.4.2小节的Chapter6-DiffusePixelLevel代码粘贴进去,并使用半兰伯特公式修改片元着色器中计算漫反射光照的部分:

Shader "Custom/Chapter6-HalfLambert"
{Properties{_Diffuse  ("Diffuse",  Color)  =  (1,  1,  1,  1)}SubShader{Tags {"LightMode"="ForwardBase"}Pass {CGPROGRAM#pragma  vertex  vert#pragma  fragment  frag#include  "Lighting.cginc"fixed4  _Diffuse;struct a2v {float4  vertex  :  POSITION;float3  normal  :  NORMAL;};struct v2f {float4  pos  :  SV_POSITION;float3  worldNormal  :  TEXCOORD0;};v2f vert(a2v v) {v2f  o;//  Transform  the  vertex  from  object  space  to  projection  spaceo.pos  =  UnityObjectToClipPos(v.vertex);// Transform  the  normal  from  object  space  to  world  spaceo.worldNormal  =  mul(v.normal,  (float3x3)unity_WorldToObject); //用的左乘,使用顶点变换矩阵的逆转置矩阵对法线进行相同的变换 //normalize 向量单位化,使其长度为1return  o;}fixed4  frag(v2f  i)  :  SV_Target  {//  Get  ambient  termfixed3  ambient  =  UNITY_LIGHTMODEL_AMBIENT.xyz;//  Get  the  normal  in  world  spacefixed3  worldNormal  =  normalize(i.worldNormal);//  Get  the  light  direction  in  world  spacefixed3  worldLightDir  =  normalize(_WorldSpaceLightPos0.xyz);//  Compute  diffuse  termfixed  halfLambert  =  dot(worldNormal,  worldLightDir) * 0.5  +  0.5;fixed3   diffuse   =   _LightColor0.rgb * _Diffuse.rgb * halfLambert;fixed3 color  =  ambient  +  diffuse;return  fixed4(color,  1.0);}ENDCG}}Fallback  "Diffuse"
}

http://www.dtcms.com/a/619410.html

相关文章:

  • 哪个行业最容易做网站广告自动跳转 wordpress
  • 不用wordpress建站东莞58同城招聘网
  • 最少的钱怎么做网站人才招聘网站大全
  • 网站对联广告素材wordpress主题 产品展示
  • 建设网站租用空间网站开发服务合同模板
  • 网站建设 加强宣传网站建设云解析dns有什么用
  • 在哪个网站找婚照公司湖南做网站 f磐石网络
  • 网站开发知识视频南安市住房和城乡建设局网站
  • iis6.0不能新建网站浙江网站
  • 崇信县门户网站最新留言乐都企业网站建设公司
  • 最新的域名网站河北邯郸做移动网站
  • 数据结构——四十四、平衡二叉树的删除操作(王道408)
  • LeetCode 供暖器
  • 百度一下建设银行网站首页沈阳制作公司网站和app
  • 校园二手物品交易网站开发背景图片在线设计平台
  • 山东舜玉建设工程有限公司网站临沂公司做网站
  • ASC学习笔记0025:移除所有属性集
  • 网站信息架构哈尔滨微网站建设公司哪家好
  • 岫岩做网站全球包装设计网
  • 基于COMSOL热流固耦合的二氧化碳驱替甲烷模型研究:煤层变形与孔渗变化对甲烷产量及二氧化碳封...
  • 家用无线网络设置方案
  • 大学英文网站建设十大网站黄页
  • 连云港市电信网站建设淮南市重点工程建设管理局网站
  • 省示范院校建设网站天堂 在线最新版天堂中文
  • 智能制造与工业互联网:助力企业迈向数字化未来
  • OSPF实验【实验报告】
  • 网站开发 实习报告网站建设开发哪个好学
  • ftp上传文件到网站中文建站模板
  • 如何看一个网站用什么程序做的做网站需要买ip地址吗
  • 建立网站的公司有哪些沈阳设计网站公司哪家好