位置: 编程技术 - 正文

Unity3D游戏开发从零单排(十) - 进击的Shader续(Unity3D游戏开发毕业论文)

编辑:rootadmin
自定义光照模型

推荐整理分享Unity3D游戏开发从零单排(十) - 进击的Shader续(Unity3D游戏开发毕业论文),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Unity3D游戏开发培训课程大纲,Unity3D游戏开发(第2版),Unity3D游戏开发毕业论文,Unity3D游戏开发(第2版),Unity3D游戏开发(第2版)pdf,Unity3D游戏开发标准教程,Unity3D游戏开发标准教程,unity3D游戏开发,内容如对您有帮助,希望把文章链接给更多的朋友!

在这之前首先来了解一下SurfaceOutput这个结构体,它是一个包含大多数描述一个物体表面渲染特征的结构,具体结构如下:

基本上所有的Shader函数要处理的就是这个结构体。

Unity自带的光照实现都定义在一些*.cginc文件中,要自定义光照模型,只要不用Unity自带的光照模型就可以了。

将下面这一行的语句的最后替换成对应的光照计算函数。

#pragma surface surf NoLight

无光照的材质Shader

自己实现一个diffuse

上图中左边是NoLight,右边是SimpleDiffuse。

同理可以自定义实现各种光照模型了,Lambert,Blinning,,,,,

补充一下光照函数的几种写法

half4 LightingName (SurfaceOutput s, half3 lightDir,half atten){}

这个函数用于不需要视角方向的情况下的Forward rendering。

half4 LightingName (SurfaceOutput s, half3 lightDir, half3 viewDir, half atten){}

这个函数用于需要视角方向的情况下的Forward rendering。

half4 LightingName_PrePass (SurfaceOutput s, half4 light){}

这个函数用于Deferred rendering。

Unity3D游戏开发从零单排(十) - 进击的Shader续(Unity3D游戏开发毕业论文)

用代码控制shader动态修改材质

对SimpleDiffuse稍微做一下修改,添加一个叠加的颜色。

在模型(有MeshRenderer的)上面挂一个脚本,实现如下

MeshChanger

根据时间动态修改0号材质的_Color选项,结果就像这样

自行脑补中间过程。

使用渐变纹理来处理光照

首先要准备一张渐变纹理,原理就是通过计算当前位置的光照与法线的点积,索引到渐变图片上的像素值,最后将其和diffuse叠加。

渲染结果

没有纹理的情况(是大象不是小猪)

换一下索引贴图

得到结果如下(Toon Shading)

参考

Unity Shaders and Effects CookBook

Unity3D海量新书资源 书籍比较杂,有些不一定写的很好,全部是英文的(中文书一般是不会有清晰电子版,你肯定知道的),所以大家酌情下载喜欢的那几本看完就好了。

Unity3d UGUI 滚动视图ScrollView的使用教程之简易背包 Unity3d中,UGUI提供了ScrollRect、GridLayoutGroup、Mask这三个组件,我们用来实现滚动视图,这里用一个简易的背包作为示例。文章转自

Forward Render VS Deferred Rendering ForwardRender传统的渲染方式,你提供给显卡形状Mesh,它将其打散成一堆节点,接着经过一系列的变换和分割成为Fregment或者像素,在呈现在屏幕之前已经

标签: Unity3D游戏开发毕业论文

本文链接地址:https://www.jiuchutong.com/biancheng/383500.html 转载请保留说明!

上一篇:Unity3D之Camera设置(unity3d相机设置视角)

下一篇:Unity3D海量新书资源(unity3d游戏开发书籍)

  • 城镇土地使用税纳税
  • 企业收到保险公司赔偿款是否要交税
  • 报废固定资产产生的净损益属于利得吗
  • 房地产开发企业会计科目
  • 企业所得税汇算清缴退税怎么做账
  • 房地产企业增值税税率
  • 养殖业土地使用税减免
  • 应付股利科目设置
  • 股东转入投资款
  • 销售软件产品
  • 保理利息开具增值税专用发票
  • 企业所得税期间费用利息收支
  • 费用与支出的区别是什么
  • 物流公司转包出售合法吗
  • 无法支付的其他应付款可以用现金核销吗
  • 房产契税什么时候可以退
  • 走pos对公账户扣多少手续费
  • 报销话费属于什么费用
  • 平板电脑折旧残值率
  • 个体户没有进项票怎么开销项发票
  • 制造业购买纸箱子记入什么科目
  • 上级拨入资金计入什么科目
  • 调整以前年度所得税汇算清缴报表,在哪调减虚增的成本
  • 详解php比较操作过程
  • centos停止发布
  • php字符串函数大全
  • 政府性基金收入是政府非税收入吗
  • 进口货物怎样报关
  • 盘点的原则包括
  • 耕地开垦费应计入哪个会计科目
  • 长期待摊费用应该怎么摊销
  • php 通信
  • 暂估入库的商品能出库吗
  • net python
  • 资产负债表日后调整事项
  • 对企业采取以旧换新方式销售的应税产品
  • 企业会计准则季报利润表填写
  • 员工业余自学
  • 研发失败的费用允许加计扣除吗
  • dedecms配置
  • 定额税率举例子
  • 既开发票又开收据是有财务风险吗?
  • 怎么登记现金日记账和银行存款日记账
  • 会计新准则2020
  • 增值税进项发票不够抵扣怎么办
  • 小规模纳税人技术维护费可以抵扣吗
  • 取得交易性金融资产支付的相关税费计入
  • 企业赠送个人房产 所得税
  • 行政单位怎样核销坏账
  • 企业缴纳的住房公积金的税率
  • 相同的商品附带不同的赠品发布
  • 受托代销的含义
  • 小规模纳税人销售自己使用过的物品
  • 多计提的城建税怎么冲减
  • 合同资产计提减值准备的依据
  • 公司中标
  • 汇算期间取得以下收入
  • 银行存款日记账手工账填写样本
  • 结汇时和月底结转汇兑损益
  • 如何计算技术转让所得
  • 长期待摊费用可以摊销20年吗
  • 领用材料属于什么会计分录
  • 股东权益净资产收益率计算公式
  • sqlserver复制表语句
  • mysql与oracle的区别
  • win8系统计算器快捷键
  • ubuntu操作系统入门
  • Centos 5.5 php5.1.2升级到php5.2.6的方法
  • 2015年win10共发布135个安全补丁 创历年之最
  • win10预览版21301bug
  • windows7系统下给WORD2010设置打开密码的方法
  • OpenCV-2.4.3+VS2010+Win7(32位)安装与配置
  • Extjs中DisplayField的日期或者数字格式化扩展
  • jquery 插件写法
  • amp designer插件
  • javascript概述及作用
  • 安卓中的HTTP编程
  • 新疆税务局电子
  • 怎么打印电子社保
  • 搞农业种植
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设