位置: 编程技术 - 正文

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游戏开发书籍)

  • 总公司是小规模分公司是一般纳税人
  • 车船税的免征对象是什么
  • 计算企业所得税分录
  • 价税分离计算公式有哪些
  • 房产证,契税
  • 运输公司轮胎如何做会计分录
  • 租金收入摊销
  • 未认缴出资的股东退股
  • 公司进货可以计提折旧吗
  • 商业保险可以税前全额扣除吗?
  • 营改增后填用作废的发票可以用来报销吗?
  • 前期差错更正处理方法
  • 金税盘和税控盘哪个好
  • 增值税专用发票和普通发票的区别
  • 没有道路许可证的车子怎么处罚
  • 收取对方损失赔偿
  • 企业收到银行未收到怎么做账
  • win10怎么防火墙白名单
  • 计划成本法存货成本的确定
  • 租赁合同法律风险
  • 电脑每次开机都要选择系统怎么办
  • win11测试版后续怎么变正式版
  • php fopen ftp文件不存在
  • 非营利性组织收到政府拨款转出给其他部门怎么做账
  • 出差补贴是必须的吗
  • 吸收合并会计处理举例
  • 应用程序无法正常启动0xc000007b
  • 计提坏账准备的公式
  • 衡量一个企业经营状况
  • 牛顿地名
  • 基于php的系统
  • 公司制作横幅计入什么科目?
  • 个体户对公账户的钱怎么取出来
  • php graph
  • linux信号的本质
  • 关于古老的jsp页面的知识汇总(超详细)
  • 应交税费的进项税和销项税
  • python datetime把日期转换字符串
  • mysql密码忘了咋办
  • 收据作为原始凭证的依据
  • 计提未发生的费用
  • 收到股权认购款怎么做账
  • 小规模纳税人增值税专用发票税率
  • 个体生产经营所得税
  • 企业的其他应付款增加了说明什么
  • 广告发布费属于什么费用
  • 残疾人就业保障金怎么计算
  • 租赁车子
  • 税控系统全额抵扣
  • 编制记账凭证的依据
  • sql null用法
  • 进程管理界面
  • Win8.1 VPN设置功能提示连接出错的简单解决方法
  • 微软windows8.1
  • 开始菜单里设置在哪里
  • xp系统 win7
  • xp系统怎么用u盘启动电脑
  • Ubuntu Server 11.04安装GNOME 3的方法
  • 苹果系统声音怎么设置方法
  • windows+ctrl+m
  • win8系统怎么激活
  • win8.1技巧
  • 使用xshell连接虚拟机需要修改哪些配置
  • win10蓝屏故障
  • win7操作系统的主要功能
  • win10mobile官网
  • win10系统日历怎么放在桌面
  • 每天学一个成语
  • 考四级题型
  • unity的协程
  • python多线程怎么用
  • 基于jquery的移动端ui框架
  • 函数 python
  • python 变参
  • asx文件的作用
  • 每月个人所得税申报截止时间是几号
  • 河南税务机关
  • 车船税多少钱一辆
  • 车辆购置税查询不到
  • 税务局打印发票的软件是哪个
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设