位置: 编程技术 - 正文

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

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

  • 视同销售增值税申报表怎么填写
  • 进项税额转出会计分录月末如何结转
  • 一般纳税人附加税优惠政策2023
  • 先开票后跨月预缴税款可以吗
  • 转出未交增值税是借方还是贷方
  • 税收分类编码不对发票可以用吗
  • 收到以前年度的货款分录
  • 固定资产清理在财务报表哪里体现
  • 房租收入应该计入什么会计科目
  • 会计人员必备的知识和技能
  • 工程款填入申报表应税服务还是应税劳务一栏?
  • 金税盘清卡晚了一天会怎么样
  • 二手车交易公司需要什么资质
  • 年终奖金计税方式区别
  • 母子公司之间支付的租赁费可以税前扣除么
  • 用友t3怎么增加现金流量项目
  • 油漆的消费税
  • 电子汇款收入是什么意思
  • 兼职属于劳动关系还是雇佣
  • 个人所得税专项扣除夫妻双方都填吗?
  • 税务部门罚没收入计入什么科目
  • 软件登记费用
  • linux怎么用gcc编译c程序
  • 新手刚接触财务
  • linux命令行怎么用
  • php fopen()
  • 购买办公楼之后怎么入账
  • 直运商品委托代销商品的销售成本的计算方法应采用
  • yolo4损失函数
  • php数组怎么实现的
  • 一般纳税人和小微企业的区别
  • 代理业务怎么记账
  • 实收资本资本公积印花税怎么申报
  • 境外捐赠入账
  • 数据库触发器db2什么意思
  • 电子发票可以更改为纸质发票么
  • 发票开错对方已抵扣该怎么处理?
  • 营业额和营业收入怎么算
  • 工地会计内账
  • mysql异常退出
  • 营业账簿印花税申报流程
  • 土地使用权被政府收回没有注销怎么样缴土地使用税
  • 转月是下个月的意思吗
  • 合同结算属于资产吗
  • 关联企业费用分摊账务
  • 新收入准则按照期间确认收入
  • 融资租赁中承租人的义务
  • 支付贷款利息的现金流量怎么指定?
  • 出口货物两张报关单
  • 公司无偿更换产品违法吗
  • 银行回单模板
  • 哪个行业的会计最难
  • 商业折扣入账
  • 如何更换会计账号
  • sqlserver查看磁盘大小
  • 通用SQL存储过程分页以及asp.net后台调用的方法
  • win8系统界面切换成win7
  • windows xp计算器
  • 两台电脑如何共享网络
  • linux系统开机黑屏啥也没有
  • eudcedit.exe
  • 苹果mac电脑怎么复制粘贴
  • mac10.10.5无法升级
  • pascl32.exe - pascl32是什么进程 有什么用
  • window10 wifi打不开
  • Tutorial 6:Translation Transformation
  • 六个自由
  • linux sed awk区别
  • 自定义progressbar
  • javascript设计
  • js 进阶
  • 国家企业税务总局
  • 纳税工会经费申请怎么写
  • 四川省网上税务局申报流程
  • 高新技术企业认定
  • 建筑服务纳税人有哪些
  • 上海市嘉定区税务局电话号码
  • 三国杀马钧获取
  • 学校经费审批流程
  • 云南省2021年退休金计发基数
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设