位置: 编程技术 - 正文

很好的无光照模拟有光照系统。(很好的无光照模式叫什么)

编辑:rootadmin

推荐整理分享很好的无光照模拟有光照系统。(很好的无光照模式叫什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:无光线是什么意思,什么叫无光感,无光ahd,很好的无光照模式叫什么,很好的无光照模式有哪些,很好的无光照模式有哪些,很好的无光照模式叫什么,很好的无光照模式叫什么,内容如对您有帮助,希望把文章链接给更多的朋友!

最近使用unity,碰到到一个很有趣的例子.场景无光线,却模拟出了光照,效果挺好.其思路与法线贴图原理异曲同工.

  原作者提供的效果印象深刻.

  模型除了使用原来的diffuse贴图外,还用到了一张模拟记录了"光照"信息的贴图(见机器人头上的贴图).这一点与法线贴图是一致的.

  这个方法比较简单,也比较死.思路很巧.

  分析一下贴图,有效范围基本是一个圆形.以前在学习法线贴图时,就遇到过法线投射在贴图的情景(  法线贴图本质就是为了预先保存法线信息.那几乎就可以引申出来了,我们也可以保存一个冒充的法线(光线)的信息,根据这个信息我们可以还原一个"伪"的光照过程.这个贴图就反过来利用了这一点.将模型的法线转换到model-view空间,再假设法线被投影到一个正平面(贴图上).于是法线的投影点可换算为贴图的uv坐标.此时在该点我们保存一个颜色&#;,可以与模型的diffuse贴图颜色进行计算,模拟出光照的效果.  

struct v2f

{

float4 pos : SV_POSITION;

float2 uv : TEXCOORD0;

float2 cap : TEXCOORD1;

};

uniform float4 _MainTex_ST;

v2f vert (appdata_base v)

{

v2f o;

o.pos = mul (UNITY_MATRIX_MVP, v.vertex);

o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);

half2 capCoord;

capCoord.x = dot(UNITY_MATRIX_IT_MV[0].xyz,v.normal);

capCoord.y = dot(UNITY_MATRIX_IT_MV[1].xyz,v.normal);

很好的无光照模拟有光照系统。(很好的无光照模式叫什么)

o.cap = capCoord * 0.5 &#;0.5;

return o;

}

uniform sampler2D _MainTex;

uniform sampler2D _MatCap;

fixed4 frag (v2f i) : COLOR

{

fixed4 tex = tex2D(_MainTex, i.uv);

fixed4 mc = tex2D(_MatCap, i.cap);

return (tex &#; (mc*2.0)-1.0);

}

  capCoord.x = dot(UNITY_MATRIX_IT_MV[0].xyz,v.normal);

  capCoord.y = dot(UNITY_MATRIX_IT_MV[1].xyz,v.normal);

  上边2行是这里比较关键的一步,把法线转换到view空间.参看(  o.cap = capCoord * 0.5 &#; 0.5;

  上边是把法线&#;转换到纹理区间[0,1],之后在fragment shader通过这个&#;去贴图里查找对应的颜色&#;.

  这种手法&#;乎叫MatCap shader.这里是些卡通效果,其他地方有更真实的.

原文地址:

unity自己项目总结出来的一些存储小技巧(1)PlayerPrefs小结 PlayerPerfs在unity中是很通常用的一种存储本地数据的方式,大家很多情况都是直接键对应的,在很多情况,对很多人刚开始就是想到哪一个键存储哪一个

unity里设置窗口大小和位置的代码 usingSystem.Runtime.InteropServices;#regionDllImports[DllImport(user.dll)]publicstaticexternintWindowFromPoint(intxPoint,intyPoint);[DllImport(user.dll)]publicstaticexternintSetWindowPos(IntPtrhWn

Unity3d(C#)错误提示:禁止在线程中进行游戏对象比较! 今天刚刚写完异步Socket客户端的数据收发,在进行测试的时候,Unity报出错误:CompareBaseObjectsInternalcanonlybecalledfromthemainthread.详情如下:ERROR:CompareBaseObjec

标签: 很好的无光照模式叫什么

本文链接地址:https://www.jiuchutong.com/biancheng/375821.html 转载请保留说明!

上一篇:unity 2Dtoolkit 插件创建中文字体

下一篇:unity自己项目总结出来的一些存储小技巧(1)PlayerPrefs小结(unity projector)

  • 购进货物支付的运输费用如何计算增值税
  • 出口关税税率表
  • 互助资金协会科目
  • 债权债务互抵怎么做账
  • 预包装食品销售流程图
  • 劳务成本会计科目
  • 预付款如何扣除
  • 从外面买回来的菜怎么消毒
  • 股东贷款是什么意思
  • 新会计准则最大变化
  • 现金收取业务办理流程
  • 一般纳税人6个点和13点
  • 发票抬头写个人有效吗
  • 外购烟丝消费税是多少
  • 打印机的增值税率
  • 职工福利费要交个税吗
  • 物流企业的大宗商品仓储用地是什么意思
  • 如何区分境内所有银行卡
  • 哪些违约金可以退回
  • 收到的劳务费发票进什么科目
  • 注册资本多少钱算大公司
  • 工程项目分期付款
  • 按简易办法征收增值税
  • 增值税留抵退税账务处理
  • 收回借支款的账务处理
  • 购买银行承兑汇票是否违法
  • 初中英语的学科知识与能力主要考什么
  • 计算机系统结构第三版课后答案
  • hif文件怎么打开
  • php destruct
  • 开展党建系列活动
  • 退货会计应该怎么做账
  • 注册造价师挂靠费怎么缴纳个税
  • 提取企业发展基金用到银行存款科目吗
  • 固定资产加速折旧方法
  • 未达起征点销售额和小微企业免税销售额
  • 预缴和缴纳的区别
  • mysql 内连接查询
  • 租赁公司一般都有什么税
  • 织梦前台的菜单怎么换
  • 业务招待费列支不规范
  • 工业企业会计核算中常见的会计核算程序有哪些?
  • 即征即退的收入如何处理
  • mysql用户权限详解
  • sql server2019实例功能的选择
  • 库存商品结转成本的金额怎么计算
  • 公司公账转私账违法吗
  • 车保险里面的车船税
  • 管理费用包括哪些税
  • 服务业收入的会计分录
  • 企业购买的土地计入什么科目
  • 事业单位收费可以收取相关服务费吗
  • mysql中json格式是多少长度
  • 如何获取数据库的sid
  • sql server使用教程(图文)
  • 怎么用u盘安装xp系统教程
  • xp系统打开软件慢怎么解决
  • windows server 2008 R2
  • ubuntu20.04怎么用
  • win8查看内存
  • win7系统如何修改ip地址
  • 开启win10