位置: 编程技术 - 正文

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

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

  • 减免所得税如何申报
  • 金税盘锁死日期是16号,16号能清卡吗
  • 退多缴纳的所得税 现金流如何处理
  • 如何成为一般纳税人的条件
  • 会员退费怎么算
  • 经营范围没有的可以开票吗
  • 什么情况下当月不排卵
  • 小规模纳税人可以开13%的发票吗
  • 分公司独立核算还需要总公司汇总缴纳吗
  • 基建贷款贴息账户有哪些
  • 本月扣除上月预缴增值税怎么做会计分录?
  • 收到分包工程发票怎么做分录
  • 别人给的发票一直不开
  • 公司购买的冰箱供员工使用
  • 劳务公司注销了,未出的款怎么走账
  • 吊车租赁增值税税率最新2022
  • 发票上折扣怎么记账
  • 年数总和法折旧公式
  • 企业吸收合并税收政策
  • 上年度职工工资总额
  • 负数发票是做相反分录还是红字相同分录
  • ukey开票界面
  • 收到加盟费怎么入账
  • 物业公司收取水电周转金后果
  • win10蓝屏怎么弄
  • won11更新
  • 保护地址是什么意思
  • 增值税一般纳税人和小规模纳税人的区别
  • 怎么关闭win10搜索栏
  • 收到银行承兑汇票的账务处理
  • 未分配利润进行利润分配分录
  • 什么样的发票可以报销
  • 结转本月完工产品成本120000元
  • 劳务报酬可以扣除合理支出吗
  • deepwiser怎么用
  • 黄石国家公园的英文翻译
  • 税务局什么情况下可以停供发票
  • c#创建web
  • GPT-4:关于下一代人工智能模型的事实、谣言和期望
  • 建行企业网上银行主管盾权限分配
  • 缴纳残保金会计分录最新
  • 魔改是啥
  • 股权转让认缴出资期数怎么填
  • 企业合并兼并收购的区别和联系
  • mysql索引是否生效
  • 配置windows update
  • 异地工程税
  • mysql正则表达式匹配数字
  • 小规模季度开票不超过多少
  • 受托代销商品的代销方式有哪两种
  • 个体户怎么办
  • 律师跨省办案
  • 库存商品怎么计提坏账
  • 小规模纳税人减按1%怎么计算
  • 职工福利费计提标准
  • 存货成本计算方法有几种?分别是什么?
  • 新准则委托代建会计处理
  • extra backup
  • mysql数据库完全备份
  • ghost后不能启动
  • win8怎么玩帝国时代2
  • sxgdsenu.exe - sxgdsenu是什么进程 有什么用
  • VMware虚拟机下载
  • 在linux系统中,用来存在系统所需
  • 文件夹windows
  • win10更新提示错误
  • ubuntu nfs配置
  • g8a1
  • jquery图片轮播无缝连接
  • 根据当前目录下的文件
  • android更新ui的方式
  • vue.js 开发工具
  • python怎么设置行号
  • pythoni脚本
  • 安卓系统引导程序
  • offset function
  • jquery做菜单
  • 异地车如何查车主信息
  • 国税局云南省电子税务局
  • 怎么批量打开excel文件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设