位置: 编程技术 - 正文

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

  • 个人生产经营所得税怎么计算
  • 北京市增值税发票查验平台
  • 个人哪些捐赠可以税前扣除
  • 软件产品即征即退备案资料
  • 交易性金融资产的账务处理
  • 产业增加值就是增长率吗
  • 工会经费计税依据是应发还是实发
  • 没有签订购销合同的协议
  • 分公司独立核算还需要总公司汇总缴纳吗
  • 工业企业总产值的计算是以什么为主体
  • 防伪税控业务
  • 返聘已退休人员是否需要缴纳社保
  • 销售货物的价外费用有哪些
  • 融资租赁首付款支付给供应商
  • 固定资产清理不能有余额
  • 给非公司员工开工作证明办房贷
  • 5%征收率的适用范围
  • 货运代理可以开9个点的发票吗?
  • 企业发生什么
  • 公司注销过了公示期不去有问题
  • 农民工工资怎么交个人所得税
  • 没有收入能结转损益吗
  • 收到的出口退税款需要并入利润总额吗
  • win10内存完整性不兼容的驱动程序
  • mac菜单栏怎么调出来
  • 工程施工怎么结转到成本里
  • 小商业企业应交所得税
  • 兼职属于劳动关系还是雇佣
  • 监控工程付款方式
  • 子公司转为分公司,是不是需要缴纳土地增值税
  • 深入php:面向对象、模式与实践
  • Win10版本21H2卡死
  • 公司收入算认缴出资吗
  • 先开票后收款的发票怎么备注
  • PHP:pg_send_query()的用法_PostgreSQL函数
  • 债务重组亏损计入
  • 利息收入的会计科目怎么做
  • 主营业务收入未收到钱
  • mongodb数据表
  • 免交增值税应该计入什么科目
  • 银行承兑汇票是商业汇票吗
  • 先给发票后付款做账
  • 房地产项目公司组织架构
  • 资产减值损失借贷方向
  • 个人转租房屋需要交房产税吗
  • 未收到货款发票是什么意思
  • 小企业汇算清缴补税会计分录
  • 银行期初余额录少了怎么办
  • 招待客人会计分录
  • 水电费收据可以入公司帐吗
  • 免税收入啥意思
  • 初中学历学会计难不难
  • 会计如何建账做账
  • 公司建立初期做账
  • 专用发票账目不对怎么办
  • mysql优化的几种方法
  • nano linux
  • cmos是一种什么芯片
  • win8系统怎么安装win10
  • win10装360安全卫士
  • win10开机cpu占用率100%
  • win10链接手机怎么用
  • win7 设置
  • windows mobile
  • Win10预览版更新弹窗如何关闭
  • win8桌面不见了
  • javascript动画教程
  • 怎样用在js中使用css的内容
  • unity自带的代码编辑器
  • opengl光线跟踪代码
  • python网络爬虫教程
  • jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
  • node.js tcp 服务器
  • python3.8基础教程
  • unity2018预制体
  • 当前税务干部队伍不足
  • 资源税原矿和选矿的区别
  • 存在未申报记录
  • 2021河南省中考英语听力音频
  • 河北税务交社保显示未找到对应的城乡居民应缴费额配置
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设