Laya小游戏开发,laya3D美术篇——1——关于laya自带的几个shader的基础运用讲解。

news2024/11/15 9:00:28

最近三年,基本上做的都是laya小游戏项目。也就是微信小程序,很多业内同行都觉得laya做小游戏不好用,去用了其他平台,甚至还有些做app游戏的,都不来趟laya这个坑。原因有那么以下几点。laya对于unity的辅助开发,仅仅给unity支持了几个效果相对凑合的shader。并且,laya跟unity相比,支持同屏面数,粒子特效等都有比较大的限制。尤其是,粒子特效这块,很多人app游戏上的效果非常好,但是用laya去转H5小游戏的时候,发现原本的粒子特效,变了样子,出现了降级。然后就放弃了。
关于laya粒子篇,之后会在下一篇文章中,会结合近两年开发的游戏来做详细讲解。
这一篇,先解决一下基础方面。3D美术人员,怎么用unity使用laya材质,然后做出类似APP的效果,包含无光手绘材质(mesh)。PBR反射材质(PBRstandar),半受光(blinnphone)等材质的基本运用,还原app游戏中的效果。(忽略中文翻译,按照我自己喜好命名的)

一、手绘的角色模型,采用laya中材质(半受光binnphong或者无光unity)下图为两种shader的选取路径。
在这里插入图片描述
根据上图,没啥说的,直接选就行了。
1、 laya3D/mesh/Unilt材质: 如果你的项目,同屏幕出现比较多的角色(战斗9个6000面以上的角色)那么,建议你用这个材质,这个材质不会丢失你角色的手绘细节,唯一的缺点就是。不受光照效果,光源以你的手绘明暗为主。如下图这个二次元角色的头部
在这里插入图片描述
在这里插入图片描述

参数如上图,并且只有一个挂贴图的部分,不需要法线、AO、遮罩等其他图片。
其中Intensity这个滑块,可以决定你图片的自发光程度。
Tiling:控制你贴图UV的X轴和Y轴的倍数比
Offset:可以控制做单方向的uv动画。受unity中的anim动画控制,并且laya可以调用。

2、laya3D/mesh/BlinnPhong材质:如果你用于做项目的主界面人物待机,并且同屏角色不会超过3个。那么推荐你用这种材质。我之前把他称为“半受光”,是因为它不仅可以收到场景中的光源影响,产生阴影。还可以制作一个假的specular图片(比如黑到白从上到下的渐变图,放进来,模型就会根据图片按照你模型UV的方向产生曝光度的渐变),来做一个假的受光。 在这里插入图片描述
在这里插入图片描述
如上图。皮肤会比纯手绘的无光材质,增加透气性,并且旋转模型的时候受到场景内光源的限制。
现在这个模型因为考虑包体的问题,没有增加法线图片,和粗糙度图片,有需要的朋友,也可以在如下图对应位置增加图片,用滑块或者数值添加自己喜欢的效果。在这里插入图片描述
除此之外。其他参数与之前介绍的使用方法一致。

如果有需要给模型增加描边效果的。需要去另外一篇文章(laya3D,第三篇,后续会更新),拷贝描边代码,提供给程序使用。

二、写实材质PBR的shader运用。
下面上图片在这里插入图片描述
laya的写实材质PBRSpecular或者Standar选取一种使用,这两种参数都差不多,但是不管使用那种,都不建议用场景内的实时太阳,而是采取图片光源,制作一个材质球,来影响模型表面的粗糙度跟漫反射。
下面我会参考近两年做第《七装甲师》的优化项目,也就是laya官方主页推荐写实效果的游戏。来给朋友们讲解这两个材质球的具体使用。

1、在讲解之前,先科普一下基础知识点。我们3D美术在做3D渲染的时候,不管是maya或者max或者blender也好,我们都跑不了四张图、就算不用这四张图、那么我们也会调整对应三个参数来制作出不同材质的效果。
分别为: BasColor(漫反射贴图) 、Roughness(粗糙度)、Metallic(金属度)、Normal(法线)这四张图。
因此要想有好的效果,至少要包含这四张图里的两种,在+上滑块,才能控制出好的反射效果。下面上干货。

请添加图片描述
如上图,(用laya还原的效果)我们要模拟这种实时光照,但是又不想用太阳或者灯光,并且还不想用上述那么多图(为了节省资源),那么我们改怎么做呢?

我们需要给场景制作一个假的环境光(不是太阳也不是灯,而是在灯光菜单选项里,制作一个漫反射材质球来带动PBR的反射,从而降低光源产生的阴影计算消耗)相当于你maya软件里的圆球背景,或者max里的穹顶灯。
如下图
在这里插入图片描述
在这里插入图片描述
2注意如上图的选项,给材质球换成laya支持的材质,并且富裕你想要的反射灯光图。然后再把这个材质球,放在Lighting中代替天空meterial。

在这里插入图片描述
3如上图,给你的模型赋予laya的PBR材质球,并且输出一张贴图和一张金属度的图片,(金属度可根据需要压缩的很小)。然找箭头贴到相应位置,那么你就得到了模型PBR环境反射的效果(注意一定要关闭场景中的任何灯,因为完全不需要灯。调整效果参数的时候也要在无光环境下进行)
在这里插入图片描述
在这里插入图片描述

4如上如。最后根据你的车的造型,给你的模型底部,做一个假的阴影片,最后就实现了laya材质做出app反射的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/399716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32的USART发送数据时如何使用TXE和TC标志

8人从A出发去D旅游的故事 STM32的USART发送数据时如何使用TXE和TC标志 TXE为1: TDR里的数据全部移到了移位寄存器,且没有新的数据TDR。 TXE为0: TDR里有数据,未空,则TXE0。 TC为1: 从TDR过来的数据全部被移…

一文上手图数据备份恢复工具 NebulaGraph BR

作者:NebulaGraph 工程师 Kenshin NebulaGraph BR 开源已经有一段时间了,为了给社区用户提供一个更稳、更快、更易用的备份恢复工具,去年对其进行了比较大的重构。NebulaGraph BR(以下简称 BR)分为社区版和企业版两个版…

Git学习笔记(五)——分支

一、创建与合并分支创建分支:Git创建一个分支很快,因为除了增加一个指针,改改HEAD的指向,工作区的文件都没有任何变化。合并分支:就是直接把master(其中一条分支)指向dev(另一条分支…

python基础条件循环语句

1、编写代码完成一个名片显示,要求使用取消换行和格式化操作符 # 编写代码完成一个名片显示,要求使用取消换行和格式化操作符name 张三 qq 1234567 phone_num 1234567 com_address 北京print(\n 姓名:%s\n qq:%d\n 手机号:%d\n 公司地址:%s\n %(name ,qq ,phone_num, com_…

忆享科技优化入职培训加强人效管理全面迎接新挑战

-优化入职培训-忆享科技加强人效管理入职培训课程 ✦ KPI系统上线 ✦ 砥砺前行前言许多企业随着自身的不断发展,对于各类人才引进需求也越来越迫切,一批批新员工的加入,公司规模逐渐扩大,给公司带来了全新的血液。但在大量新员工加…

jsPlumb Components Crack

jsPlumb Components Crack 为支持Vue 2,所有组件都添加了包装器。 已为所有组件添加了包装器以支持Svelte。 改进了在流程图生成器中编辑多个选定节点。 jsPlumb组件是一组可嵌入的组件,可将可视连接快速集成到网页中。jsPlumb组件基于jsPlumb Toolkit库…

lesson8-Linux多线程

Linux线程概念 线程在进程内部执行,是OS调度的基本单位OS是可以做到让进程进行资源的细粒度划分的物理内存是以4kb为单位的我们的.exe可执行程序本来就是按照地址空间的方式进行编译的页表映射 - 详细图 理解线程 线程在进程的地址空间内运行, 进程内部具有多个执行流的,而线程…

【java基础】集合基础说明

文章目录基本介绍Collection接口Iterator和Iterable接口Map接口关于Iterator接口的一些说明框架中的接口具体集合总结基本介绍 集合就是存储用来存储一系列数据的一种数据结构。在这篇文章中会介绍集合的一些基本概念。 Collection接口 集合的基本接口是Collection接口&…

Metabase和Superset 对比分析

Metabse中文社区Metabase和Superset都是排名靠前的开源的数据可视化软件,在技术上有许多相似之处。他们的比较可以帮助用户选择更好的开源平台进行数据可视化。关于Superset 编辑切换为居中添加图片注释,不超过 140 字(可选)Super…

Golang反射源码分析

在go的源码包及一些开源组件中,经常可以看到reflect反射包的使用,本文就与大家一起探讨go反射机制的原理、学习其实现源码 首先,了解一下反射的定义: 反射是指计算机程序能够在运行时,能够描述其自身状态或行为、调整…

智慧赋能,聚力开源——第四届OpenI/O 启智开发者大会开源治理专场顺利举办!

为汇聚国内外知名开源组织共同探讨中国开源生态建设及开源治理相关议题,推进产学研用开源合作,2月24日下午,第四届OpenI/O启智开发者大会在深圳人才研修院智汇中心举办以“构建开源联合体,共建开源生态”为主题的开源治理专场分论…

C++基础了解-17-C++日期 时间

C日期 & 时间 一、C日期 & 时间 C 标准库没有提供所谓的日期类型。C 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C 程序中引用 头文件。 有四个与时间相关的类型:clock_t、time_t、size_t 和 …

opencv识别车道线(霍夫线变换)

目录1、前言2、霍夫线变换2.1、霍夫线变换是什么?2.2、在opencv中的基本用法2.2.1、HoughLinesP函数定义2.2.2、用法3、识别车道3.1、优化3.1.1、降噪3.1.2、过滤方向3.1.3、截选区域3.1.4、测试其它图片图片1图片2图片31、前言 最近学习opencv学到了霍夫线变换&am…

ruoyi对接CAS统一身份认证

暂定逻辑如下:搭建CAS服务器端:项目地址:https://gitee.com/weigang_wu/cas-server-webapp.git项目里有二开的说明文档,如:按照自定义的数据库校验修改如下:首先:修改数据库连接以及查询数据这里…

博客系统(前后端分离版)

博客系统的具体实现 文章目录博客系统的具体实现软件开发的基本流程具体实现的八大功能数据库设计创建数据库操作数据库引入依赖封装DataSource创建实体类将JDBC增删改查封装起来实现博客列表页web.xml的配置文件实现博客系统的展示功能登录功能强制要求用户登录显示用户信息退…

求职复盘:干了四年外包出来,面试5次全挂

我的情况 大概介绍一下个人情况,男,毕业于普通二本院校非计算机专业,18年跨专业入行测试,第一份工作在湖南某软件公司,做了接近4年的外包测试工程师,今年年初,感觉自己不能够再这样下去了&…

为什么做知识管理,就想选择Baklib呢?

随着科技的不断发展,知识管理已经成为现代企业不可或缺的一个重要组成部分。由于信息化快速发展,企业每天都会产生大量的数据和信息,如何高效地获取、整理和利用这些信息已经成为了企业成功的关键因素之一。为了更好地管理企业知识&#xff0…

利用Iptables构建虚拟路由器

利用Iptables构建虚拟路由器 (1)修改网络类型 在VMware Workstation软件中选择“编辑→虚拟网络编辑器”菜单命令,在虚拟网络列表中选中VMnet1,将其配置为“仅主机模式(在专用网络内连接虚拟机)”&#x…

模板进阶(仿函数,特化等介绍)

非类型模板参数 模板参数有类型形参和非类型形参&#xff1b; 类型形参&#xff1a;使用typename或者class修饰的参数类型名称 非类型形参&#xff1a;一个普通常量作为模板参数形参&#xff0c;不能为浮点数&#xff0c;字符类型以及类对象&#xff1b; #include<iostrea…

虹科新品| HK-TrueNAS企业存储

一、HK-TrueNAS概述HK-TrueNAS 是一种统一存储阵列&#xff0c;提供混合和全闪存配置&#xff0c;以前所未有的价格提供全面的功能集和高达 10.5PB 的容量。TrueNAS 全闪存存储阵列为以闪存为中心的数据中心提供了理想的统一数据存储。每个混合和全闪存 TrueNAS 系统都使用 Tru…