位置: 编程技术 - 正文

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

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

  • 其他权益工具影响哪些报表
  • 普票不能抵扣要坐在帐里吗
  • 税务局买税盘
  • 叉车折旧年限是几年预计净残值
  • 中期票据怎么入账
  • 固定资产残值怎么计算出来的
  • 现房销售土增税怎么缴纳
  • 事业单位专项资金的管理要求
  • 防洪费怎么申报
  • 地产企业不动产登记入哪个科目?
  • 隔年的费用发票怎样入账
  • 土地投资入股交什么税
  • 食堂固定资产折旧年限
  • 增值税专用发票几个点
  • 发票金额是价税价格吗
  • 企业自产自用需要交增值税吗
  • 承兑汇票公对公多久到账
  • 无形资产摊销时运用的方法有双倍余额递减法
  • 经营营业执照以外
  • PHP:preg_replace_callback()的用法_PCRE正则函数
  • ecap.exe是什么
  • 关联方的四种认证方式
  • 股权投资准备的主要内容
  • 医疗知识科普图片
  • 用人单位垫付生育津贴怎么算
  • Vue--》Vue3打造可扩展的项目管理系统后台的完整指南(一)
  • 治疗孩子咳嗽小秘方,超实用
  • 会计打印发票请求怎么写
  • php文件上传下载代码
  • 资产评估属于什么科目
  • 兼职人员的劳务费标准
  • 发票金额和打款金额不一致怎么办
  • list删除某个元素 python
  • 盈余公积转增会计分录
  • 定额发票借给别人盖别人店的章可以吗
  • Dedecms评论同时发到QQ邮箱的实现方法
  • 关联方占用资金应对措施
  • 新办企业装修会计分录
  • 小规模差额征税可以开专票吗
  • 珠宝可以开票抵扣吗
  • 建筑劳务公司需要什么资质
  • 工资总额主要包括
  • 如何理解合并报表编制程序中的调整与抵消处理
  • 积分购物骗局
  • 公司支付工伤赔偿,是先签字还是先打钱
  • 多交税款退税款会计分录
  • 员工的工资属于固定资产吗
  • 工程施工的保险费的账务处理
  • 快捷酒店财务一般几个人
  • 应交增值税减免税款科目
  • 利润率多少算好
  • mysql获取数据库表名
  • mysql5.7版本的服务的名字是
  • centos7rpm安装命令
  • win10预览版选哪个
  • 删除 ubuntu
  • win7系统怎么给C盘扩容
  • xpwy cd server已停止工作
  • mac屏幕共享软件
  • 双显示器设置主副屏的方法
  • gacrunner.exe是什么
  • windows10无法关闭
  • cp命令不要覆盖提示
  • 高德地图自动跳出来
  • cocos2dx schedule
  • css nowrap
  • [置顶]游戏名 TentacleLocker
  • shell线程操作命令
  • css图片样式网站
  • pythondjango框架 目录结构
  • jquery 获取父元素的子元素
  • jquery.siblings()
  • opencvandroid开发实战
  • 保险公司代收2.8万
  • 为什么医保卡显示无效
  • 智能财税证书含金量多少
  • 电子税务局怎么删除办税员
  • 西安汽车购置税
  • 江苏省常熟市归哪管
  • 全款房契税退税需要什么资料
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设