位置: 编程技术 - 正文

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

编辑: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)

  • 总账会计的职责目标设定
  • 湖南省增值税发票图片
  • 什么是代扣代缴申报
  • 向职工支付困难证明材料
  • 全年没有超过起征点需要汇算吗
  • 小规模纳税人收到专票后如何处理
  • 其他应付款计入资本公积
  • 用友u8如何结转期间损益
  • 研发设备的定义
  • 材料含税价怎么算
  • 原材料采购没正式发票能否入账?
  • 我国进口货物交税如何计算? 
  • 什么情况下发票不能冲红
  • 机动车发票抵扣联有什么用
  • 法律规定临时工工资最迟多久结清
  • 2021年个人开发票税率
  • 土地款抵扣增值税在纳税申报表中如何填写
  • 公司拍卖车牌
  • 公司负担劳务费的个税如何做分录
  • 无形资产管理费用不计入
  • 汇算清缴时交的税怎么算
  • 坏账准备对利润表
  • 借款利息资本化条件
  • 生产车间制造费用包括
  • 五险一金的记账凭证怎么填写
  • 进项发票如何抵扣销项发票
  • 事业基金的主要账务处理
  • 电脑软件如何开机自启动
  • 软件工程毕设题目冷门
  • php wechat
  • php文件上传用什么请求方法
  • 预计负债和预收账款
  • 费用的结转是在借方还是贷方
  • 生育津贴有什么补贴
  • react框架结构
  • ci框架中新建的控制器取不到session
  • 包装物应交消费税
  • nstat命令 监视内核的SNMP计数器和网络接口状态
  • 若依idea
  • 公司间代收代付
  • 哪几类账户期末余额最大
  • discuz mysql8.0
  • mongodb 查询条件
  • 企业资产评估增值
  • sql server2014使用
  • 矿泉水发票能否抵税
  • 发票开9个点
  • Windows下MySQL 5.6安装及配置详细图解(大图版)
  • 城镇土地使用税怎么算
  • 土地转让需要批准吗
  • 自来水公司代收污水处理费
  • 建筑企业收挂靠公司的管理费如何做账?
  • 不含税转换
  • 怎样理解
  • 车辆租赁费发票怎么开
  • 国际快递能发吗
  • 私企做会计风险大吗
  • windows7无法进入睡眠
  • win8 net framework
  • 拖放文件到此处来添加文件是什么意思
  • xp开机提示explorer
  • ubuntu系统应用
  • MAC OS X Yosemite开启深色模式的方法
  • msscli.exe - msscli是什么进程 有什么用
  • xp升win10教程
  • 梦见古字
  • cocos2dx怎么打开
  • unity3d基础操作
  • 第三章之一、使用二手设备降低生产成本读后感
  • linux分区类型默认的是什么
  • css设置段落
  • python内置函数什么用来返回序列中的最大元素
  • pycharm官方教程
  • cmd 更改密码
  • javascript取随机数
  • 财税刘毅
  • 政府无偿划拨土地涉及的税费
  • 用于赞助的消费品需要缴纳消费税吗
  • 广东佛山超市排名
  • 进口酒类税收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设