当前位置: 首页 > 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…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘&#xf…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...