位置: 编程技术 - 正文

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

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

  • 个税申报的收入扣除社保吗
  • 取得的证券投资业绩
  • 工会经费的应税项是什么
  • 增值税留抵税额计入什么科目
  • 彩票税率税率
  • 什么是税收滞纳金请举例说明
  • 水利建设基金申报期限
  • 受托代销商品款和受托代销商品的区别
  • 实收资本属于限定性净资产吗
  • 其他债券投资有减值,为什么其他权益工具投资没有减值
  • 成本税率计算公式
  • 分公司以前年度能弥补亏损吗
  • 医院纯收入
  • 发票可用时间
  • 税费误差财务怎么调整
  • 转让房地产增值税
  • 小规模餐饮业会计核算
  • 核销确实无法收回的应收账款后会影响资产负债率
  • 土地租赁合同交不交印花税
  • 小规模纳税人未建账处罚
  • 普票冲红需要收回全部联次吗
  • 金税盘抵扣增值税申报
  • 个人利息收入交不交增值税
  • 季度利润表本月数和本年累计数
  • 2019年小规模纳税人免征增值税政策
  • 跨省增值税专用发票可以抵扣吗
  • 三险一金专项扣除怎么查
  • 员工辞退补偿金发放逾期
  • 如何压缩文件打包发送微信
  • php parse_url
  • 高新技术企业税率15%
  • codeigniter3中文手册
  • laravel如何使用前端的纯静态页
  • 巴芬岛旅游
  • php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
  • 编写一个php程序,展示双引号和单引号的区别
  • php中get_magic_quotes_gpc()函数说明
  • uni-swiper-dot
  • html编写
  • 发票边缘有孔的可以撕掉吗
  • 捐款 企业
  • 预收账款是否需入账
  • ca证书在线延期不成功
  • 增值税申报系统登录密码
  • 物权变动的原因是什么
  • 帝国cms什么语言
  • 工资只计提没有发放需要申报个税吗
  • 固定资产是不是非货币性资产
  • 房产税的征收范围和标准有哪些
  • 购买办公用品如何写摘要
  • 个体户单位性质代码
  • sqlserver并发怎么处理
  • 小规模个体工商户怎么交税
  • 总资产增长率的定义
  • 银行汇票的分类和适用范围
  • 收汇结汇以什么汇率入账
  • 多提税金的具体分录
  • 税控盘反写是不是说明税都已经成功申报了
  • 主营业务成本和管理费用的区别
  • 无形资产的费用化支出计入成本吗
  • Windows下安装爱思助手V8
  • linux sl
  • cmd命令符大全
  • macbook 苹果系统
  • win7系统更新怎么关闭
  • windows7库功能
  • win8注册表损坏进不了系统
  • cocos2dx安装win7教程视频
  • android开发mvc mvp mvvm
  • ms-dos7.10如何安装
  • perl 调用perl
  • 批处理隐藏盘符
  • python系统框架
  • jquery如何实现轮播图
  • javascript构造函数继承
  • 如何查询车辆购置税是否缴纳
  • 湖南省低保电话是多少?
  • 交契税可以用现金吗
  • 深圳市税务审批中心电话
  • 干部任免审批表怎么填写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设