当前位置: 首页 > news >正文

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

最近三年,基本上做的都是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反射的效果。

相关文章:

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

最近三年,基本上做的都是laya小游戏项目。也就是微信小程序,很多业内同行都觉得laya做小游戏不好用,去用了其他平台,甚至还有些做app游戏的,都不来趟laya这个坑。原因有那么以下几点。laya对于unity的辅助开发&#xf…...

brew 的安装与使用 (Apple Silicon CPU的Mac机型完成适配)

准备 ARM版Homebrew需要安装在/opt/homebrew路径下,早期的时候需要手动创建目录执行命令,目前使用最新脚本不需要手动操作。 /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"然后还需设置环境…...

传输线的物理基础(四):传输线的特性阻抗

特性阻抗和控制阻抗对于一条均匀的线,无论我们选择看哪里,我们都会看到沿线传播时相同的瞬时阻抗。有一个表征传输线的瞬时阻抗,我们给它起了一个特殊的名字:特性阻抗。有一个瞬时阻抗是均匀传输线的特征。我们将这种恒定的瞬时阻…...

(六十九)以MySQL单表查询来举例,看看执行计划包含哪些内容(2)?

今天我们继续来说执行计划里包含的数据访问方式,上次说了const和ref,以及ref_or_null,想必大家都理解了,今天来说说其他的数据访问方式 先说说range这个东西,这个东西顾名思义,其实就是你SQL里有范围查询的…...

Linux发行版的backport

遇到一个问题,简要记录如下: base on ubuntu18.06 4.15内核,这版内核不支持一款intel的集成网卡,追踪内核代码的提交历史才发现,这款网卡是从linux-4.20才开始支持的,系统自带的这个Kernel版本不支持。 如果不允许升级内核,面对这种问题,社区的做法是把新内核的特性cher…...

GitLab 存储型XSS漏洞 (CVE-2023-0050)

漏洞描述 GitLab 是由GitLab公司开发的、基于Git的集成软件开发平台。kroki是一款集成在GitLab的基于文本的图表描述自动转为图片的开源工具,在GitLab 13.7引入。 由于Kroki中lib/banzai/filter/kroki_filter.rb对接收的image_src过滤不严,具有AsciiDo…...

HTTPS加密流程

什么是HTTPSHTTPS是加密后的HTTP,相当于:HTTPS HTTP SSL/TLSHTTPS是基于"密钥"来实现的,客户端将发送的数据用密钥进行加密,服务器将收到的数据用密钥解密.对称加密和非对称加密对称加密是指:交互双方共同使用同一个密钥进行加密 或 解密.如下(图中的客户端和服务器…...

Binder通信原理与弊端解析

Binder 定义 简单来说,Binder 就是用来Client 端和 Server 端通信的。并且 Client 端和 Server 端 可以在一个进程也可以不在同一个进程,Client 可以向 Server 端发起远程调用,也可以向Server传输数据(当作函数参数来传&#xff…...

网络使用情况监控

您的网络是否经常成为网络紧张或带宽瓶颈的牺牲品?瓶颈并不一定意味着带宽不足;它们可能是由占用带宽到严重网络威胁等任何因素造成的。密切监控您的网络并分析带宽使用情况和网络流量对于找到问题的根源非常重要。NetFlow Analyzer是最先进的网络使用情…...

业务流程图TFD和数据流程图DFD例题

业务流程图(TFD)管理业务流程图(Transaction Flow Diagram,简称TFD)用来描述系统各部门、人员之间存在的业务关系、作业顺序以及管理信息流向的图表。绘制该图使用以下四种符号:例题例题1:物资订…...

react框架基础入门

前端三大框架:angularvue —-2||3react区别:vue国内框架 封装较完成。全程使用封装的api来完成。react国外技术框架—-偏向于底层js实现。没有的大量的封装。需要使用js手动实现。react需求在不断增大。必会框架。官网https://react.docschina.org/ 中…...

C++ ,JNI, Java 数据传递全解(一)

在讲正题之前,先说一下C,JNI和Java 对应的数据类型对比吧,废话不多说,直接上图上面为C,Java,JNI 三者只见对应的数据类型好了,现在我们有了上面的数据类型比对,下面就讲讲从C如何将数…...

【Unity逆向】玩游戏遇到的“飞天锁血”是怎么实现的?

文章目录前言什么是外挂?锁血瞬移都是怎么做的?Unity引擎的致命缺陷是什么?WEB入侵如何做到?Unity外挂攻防概述典型游戏现实应用Unity开发流程Unity工作界面打包发布方式MonoMono跨平台原理JIT方式优点:因此后期Unity发…...

Spring基础与创建

目录 前言 Spring基础与核心概念 Spring是什么 1、什么是容器 2、什么是IoC 3、理解SpringIoC 4、DI(依赖注入) Spring的创建和使用 1、创建Spring项目 1.1、创建一个普通Maven项目 1.2、添加Spring框架支持 1.3、添加启动类和main方法 2、…...

虚拟机系列教程:虚拟机克隆

克隆主要是对磁盘文件进行操作。 1)完整克隆 a、拷贝虚拟机磁盘文件 b、生成虚拟机配置文件 centos7-2 291b0480-955a-45e2-a001-690fded69d1b c、导入xml并启动 [rootcentos8 ~]# virt-clone -o centos7 --auto-clone ERROR 要克隆的域必须已经关闭。 [rootcent…...

iperf3主页官方信息

​ iPerf 是一款支持TCP,UDP和SCTP的高速协议测试工具 网络极限性能测试网络中立性检测 主页 下载iPerf安装包 公共的iPerf3服务器 iPerf用户手册 iPerf论坛—法语 联系我们 iPerf / iPerf3简介 iPerf3是一款用于对IP网络的最大带宽进行主动测试的工具。提供对和时间&…...

Linux-0.11 kernel目录进程管理sched.c详解

Linux-0.11 kernel目录进程管理sched.c详解 sched.c主要功能是负责进程的调度,其最核心的函数就是schedule。除schedule以外, sleep_on和wake_up也是相对重要的函数。 schedule void schedule(void)schedule函数的基本功能可以分为两大块,…...

AI已到,普通人的机会在哪里?

“普通人赚到钱很难 但是被骗到钱很容易”。每当火起来一个行业(或者仅是一个概念),都会有人来问:现在去做点什么,能够踩上风口?普通人的赚钱机会在哪?怎么做能够暴富?让我们先来看看…...

CSP-J2022入门组二轮补赛试题(山东)T2:宴会

题目链接 CSP-J2022入门组二轮补赛(山东)第2题:宴会 题目背景 今人不见古时月,今月曾经照古人。梦回长安,大唐风华,十里长安花,一日看尽。 唐长安城是当时世界上规模最大、建筑最宏伟、规划布局最为规范化的一座都城。其营建 制度规划布局的特点是规模空前、创设皇城…...

ubuntu 使用 CMake 构建 Qt5 项目

Qt 概述 概念 Qt 是一个跨平台的 C 图形用户界面应用程序框架 常见的 C GUI: Qt 和 MFC 跨平台 Windows Linux MacOS 嵌入式平台 版本 包括商业版和开源免费版 案例 Linux 桌面环境 KDE WPS Office Qt 安装 下载地址: https://download.qt.io/archive/qt/ http…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

【Oracle APEX开发小技巧12】

有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

【单片机期末】单片机系统设计

主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

微信小程序云开发平台MySQL的连接方式

注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...