位置: 编程技术 - 正文

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

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

  • 清退加班费
  • 发行股票支付给承销商的发行费用计入
  • 利润率的百分比
  • 无偿划拨资产的入账价值
  • 小规模纳税人购车可以抵扣多少税
  • 产品保修发生的维修费计入什么科目
  • 京东企业提现
  • 简易计征的税率
  • 跨地区预缴税款需缴纳哪些
  • 开水电发票要增加什么经营项目?
  • 代发工资超过5000 可以不交税吗
  • 离线开票时间超限怎么办 发票都已经报送
  • 未达起征点怎么写摘要
  • 固定健身器械使用方法
  • 固定资产折旧方法可以变更吗
  • 应税货物销售额怎么计算
  • 退税发票勾选后开红冲发票怎么申报
  • 代扣代缴手续费要交增值税吗
  • 缴纳房产税怎么办理登记手续
  • 增值税进项税怎么算
  • win11怎么设置声音
  • 银行利息为什么只算10个月
  • 固定资产丢失进项税需要转出吗
  • 招待费专用发票需要认证吗
  • mac怎么删除应用程序中没有的软件
  • echart怎么用
  • Mother cheetah and her cub in the Maasai Mara nature reserve, Kenya (© gudkovandrey/Adobe Stock)
  • php知识总结
  • 会计分录由什么要素组成
  • 记账凭证按其用途
  • 总承包合同如何约定农民工工资
  • 集团的资产
  • 集团与子公司资产的关系
  • 银行开户费用怎么做账
  • 小规模纳税人报税期是哪几个月
  • node.js什么意思
  • 不是销售类的工作可以做什么
  • mongodb数据表设计怎么写
  • 织梦使用教程
  • 政府税收返还计入什么科目
  • 个税手续费返还计入哪个科目
  • 政府会计的会计要素有哪几个?会计要素之间的关系如何?
  • 劳务发票进什么科目
  • 固定资产清理往报表哪列示
  • 企业向个人租房发票怎么开
  • 收到以前年度银行手续费发票分录
  • 可供出售金融资产属于什么科目
  • 小规模免征增值税的会计处理办法
  • 月底资产负债表怎么填
  • 差额征税如何做分录
  • 股权质押和股权抵押有什么区别
  • 成本结转的凭证后附件是怎样的
  • 单式记账法缺点是什么
  • 企业的专利收费是多少
  • 理财产品利息计入本金吗
  • 赠送客户的商品怎么入账
  • 年终奖和工资一起发吗
  • mysql mod
  • 联想电脑BIOS启动键
  • window10系统电脑配置
  • mac的废纸篓
  • mac通讯录怎么删除
  • VMware虚拟机中安装MATE桌面环境
  • centos如何设置网卡
  • awk正则表达式中引入变量
  • rundll32找不到文件
  • linux系统内核的功能
  • rpcclient.exe - rpcclient是什么进程 有什么用
  • win 7笔记本连接投影仪
  • [置顶]公主大人接下来是拷问时间31
  • eclipse 不同工程中文乱码问题(可对文件以及工程单独设置)
  • mysql源码安装和二进制安装
  • python变量字符串等函数
  • 查询同一网段下的其他ip
  • js实现下载
  • jquery中获取元素的三种方法
  • js中类
  • 安卓获取手机号及通话状态权限
  • 四川税务网络领发票流程
  • 季度税额怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设