位置: 编程技术 - 正文

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

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

  • 增值税可以在企业所得税时扣除吗
  • 增值税专用发票抵扣期限
  • 上级补助收入支出决算科目
  • 利润表季报本月金额是本季度余额吗
  • 私人口腔诊所会感染艾滋病吗
  • 研发技术服务属于什么费用
  • 固定资产抵债要交税吗怎么交
  • 分类账和明细账平行登记规则
  • 应收贷方余额怎么处理
  • 事业单位如何计提工资
  • 一个公司只有一个财务人员,可以吗
  • 房地产建造运费怎么计算
  • 增值税扣税项目
  • 单位在工资表中如何填写
  • 所有者权益与所有者权益合计
  • 销售不动产预收款纳税义务发生时间
  • 出口佣金支付
  • 事业单位购入车辆如何做账
  • 劳务派遣公司增值税税率
  • 财政资金安排促进高质量发展
  • 财务费用为什么会出现负数
  • 固定资产转无形资产怎么做账
  • win10玩红警卡顿怎么解决
  • 鸿蒙系统怎么开发
  • 重置ie浏览器会有什么影响
  • 微信支付被限制是怎么回事
  • avgorange是什么文件夹可以删除吗
  • igfxsrve.exe
  • 什么是产品生产者之间争取最有利的关系
  • 单反镜头直径越大是不是就越好
  • nvm使用教程
  • 登记总账的科目有哪些
  • 无形资产入账价值包括资本化支出吗
  • yolov5参数设置
  • 参展费会计分录
  • 技术出口发票开什么信息
  • 财务费用为什么流向债权人
  • 前端实现文件下载列表
  • vue的路由跳转了,可是页面没有变化
  • 企业净利润归谁所有
  • 企业税金总额包括什么
  • 外国人在中国工作的基本条件
  • 当月销售次月开票就按次月申报
  • 企业资产盘亏的定性依据
  • python中aiohttp库如何理解
  • 金税盘离线开票时间超限怎么办
  • 服装类发票可以抵扣哪些
  • 公司福利费用会计分录
  • 营改增后建筑企业如何正确开具发票
  • sqlserver触发器在哪个位置
  • sql server 附加
  • 矿产资源补偿费计入管理费用吗
  • 销售折让怎么写分录
  • 发票还没认证可以报销吗
  • 不能抵扣的普通发票如何做分录
  • 解除合同补偿金需要缴纳个税吗
  • 公司开发的app费用怎么算
  • 报关单的运费没填怎么办
  • 支付宝扣手续费是怎么回事
  • 备查账依据什么登记
  • 年中重新建账还要年初数吗?
  • sql排序分组
  • sql数据库修改数据语句
  • 怎么用ubuntu
  • centos安装常用命令
  • WinCtlAdAlt.exe - WinCtlAdAlt是什么进程
  • boot process
  • win10怎么打开语言设置
  • win8的开始
  • windows7basic怎么改
  • pycharm远程调试django
  • nodejs读取文件和写文件的方法
  • nodejs bull
  • 深入探讨英文
  • listview属性设置
  • EasyUI Pagination 分页的两种做法小结
  • 河北电子税务局社保缴费流程
  • 企业分期收款销售商品,即商品已经交付
  • 水利基金按什么计提
  • 地税服务费算什么科目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设