自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 图形引擎实战:基于音素对齐和语音驱动的中文口型同步

通过上述归类,我们可以制作一定类别口型的BlendShape,并设置这些BlendShape的权重来表示不同音素的口型,从而完成音素到口型的映射,图3为音素至视素的映射表。汉语产生的单位主要由词汇、音节和音素等组成,通俗讲就是我们的中文语句由若干个词组成,词又由相应的音节组成,其中声母和韵母构成了我们所熟知的拼音,从这段介绍中我们也可以得出,声母和韵母即音素构成了汉语文本的基本要素,如何将一段对话中的音素映射至相应的口型则成为了实现汉语语音和口型同步的关键。

2024-04-22 08:00:00 482

原创 图形引擎实战:URP自定义后处理框架及扩展

游戏后处理效果是游戏开发过程中不可或缺的部分。它们通过颜色、光照、模糊等技术手段,让游戏画面更加逼真、迷人。在Unity的Built-in管线下,想要完成后处理效果,要么引进著名的后处理插件Post Processing Stack来实现此目标,要么使用OnRenderImage()配合Shader的方法进行自定义。当使用以上方法实现后,便可以对场景使用想要的后处理效果,并且自由度很高,可以随时进行修改和扩展。

2024-04-08 08:00:00 1850

原创 图形引擎实战:8级风格化级联阴影

阴影是画面表现光影的重要元素之一,高质量的阴影会对游戏画面产生不小的贡献。对于大世界来说,高质量的阴影往往意味着低走样和较远的绘制距离。Unity的URP管线中自带了最大级联数为4级的级联阴影,然而4级的级联数在阴影绘制距离较大时,近处的阴影会出现难以接受的锯齿,出现较大的走样。解决走样主要有两个方向,提高采样频率和降低信号频率。在本篇文章中,我们选择了一个较为通用的解决方案。对于前者,我们选择提高级联数,拓展4级到8级,对于后者,我们则选择在采样前进行PCF滤波。

2024-03-25 08:00:00 959

原创 图形引擎实战:FFT海洋系统开发手记(一)

其实在前期需求调研阶段,我们也没有一开始就奔着实时计算波浪的这个方向去,还是本着能省则省的想法,测试了好几个使用预计算的置换图来计算波浪形态的插件,以及一些甚至没有顶点偏移只有法线扰动的水片shader。无论是采样预计算的资产,还是实时计算波形需要的信息,这阶段的输出都已经大体上决定了水波浪的形态:譬如波峰尖锐程度,波谷的平滑度,波浪细节的丰富度等等。一些早年的3A游戏,如神秘海域,刺客信条等,则对于这些技术根据自家需求进行了不同的改进和组合,感兴趣的朋友可以直接搜索他们当年的技术分享看看,挺有意思的。

2024-03-11 08:00:00 528

原创 图形引擎实战:基于rdc文件的世界场景还原流程介绍

在图形流水线中,MVP变换指的是一系列坐标空间变换,这些转换通过将模型变换(Model Transform)、视图变换(View Transform)和投影变换(Projection Transform)相结合来实现。这三种变换共同组成了MVP变换,它们将3D场景中的对象转换到一个二维图像上,以便在屏幕上渲染。

2024-02-26 08:00:00 655

原创 图形引擎实战:Spine动画性能优化

Spine 2D 是一款针对游戏开发的 2D 骨骼动画编辑工具。相比于传统的逐帧动画,Spine2D内存占用体积更小,所需美术资源更少等等。Spine2D提供了良好的 Unity 支持,包括导入工具和运行时库,使得 Spine 动画能够轻松地集成到 Unity 项目中。上述两点问题是如何发现的?这就离不开性能分析工具了,本章介绍2种常用的分析工具(干货请移步2.3章节)。(需要注意由于项目是移动端开发,所以实际性能指标,应打包安装到手机后在做性能分析才是正确的。CPU Usage。

2024-02-12 08:00:00 1030

原创 图形引擎实战:UGUI名字版合批,LightMap/ShadowMap贴图通道合并,与安卓GPU Query

近期在为Unity通用渲染管线下的手游项目进行性能优化,主要是环绕当前渲染瓶颈展开的尝试和验证。

2024-01-29 08:00:00 1590

原创 人工智能实战:Stable Diffusion技术分享

首先是文生图其目是提供衣服裁切样式的设计 ,配合 训练的大模型一起使用 ,主要检查模型是否过拟合 ,直观的方式就是一次生 成多张图片 ,观察衣服的裁切样式、配色、质感等是否多样。48.Max num workers for DataLoader: DataLoader的最大工作线程 ,此选 项会指定训练CPU的进程数 ,增加该数值会启用CPU的子进程并提高读取速 度 ,但指定太多进程会导致效率下降 ,无论指定数目多大 ,它不会超过CPU。基于训练的不同风格的LoRA,应当选择相匹配合适的基础模型。

2024-01-15 08:00:00 1012 1

原创 图形引擎实战:云雾渲染漫谈

云雾一直都是各个游戏烘托场景氛围的主要组成部分,而这种很难对其感性审美效果进行参数化的东西,无论是在美术工作流中还是渲染技术中都是比较难以处理的。

2024-01-01 08:00:00 812

原创 图形引擎实战:RayMarching后处理实时体积雾渲染

Hi!大家好我是Kevin,来自畅游引擎部。这次分享的内容是RayMarching体积雾渲染的实现。在户外游戏场景的表现中,雾效对整体氛围的渲染有着至关重要的作用。本次使用了Unity3D引擎,采用的URP管线。首先URP管线是支持内置雾效的,可以通过Window-Rendering-Lighting-Other Settings中的fog来进行开启和调整。思路基本与后处理线性雾的思路,通过深度图还原世界空间坐标,然后分别通过高度和深度决定雾的强度。

2023-12-18 08:00:00 125

原创 图形引擎实战:端游引擎改造实践

对于溶解效果来说,需要一系列timer数据来添加基于时间的控制效果,定义相关数据结构后根据time thread以及粒子的生命周期计算出想要的数据对象,然后在initParticle对象阶段加载dissolve材质进行特殊处理,将数据传入材质中进行shader的参数重载。之后,在引擎的资源管理系统中添加支持,在导入此资源文件时对新的标签进行处理,对其中的数据进行解释,以便在前端中进行显示和修改、在文件系统中进行保存。根据引擎自身的材质系统,创建一种新的材质时需要编写相应的.material文件。

2023-12-04 08:00:00 61

原创 图形引擎实战:自阴影渲染分享

与Urp中的shadow caster pass很接近,不过这里我们要加上自定义的shadow bias,然后在Fragment中处理一下alpha 和 cutoff就可以了;

2023-11-20 08:00:00 260

原创 图形引擎实战:镭射效果制作分享

该方案的优势1.遵循物理的2.可以使用少量的参数去调控镭射的效果。计算相对简单,缺点仍是颜色不能够自定义,还有一种常见的方案是采样一张镭射贴图来模拟,好处是颜色可以自定义同时性能上还很高效没有复杂的公式计算。我查阅了网上普遍的方案,常见的做法是制作一个Ramp图生成工具,然后将生成好的ramp图赋给材质。这两个方案的好处是美术同学可以手动的去控制镭射的颜色。最后就是Shader中对Ramp图的采样的部分,Ramp图的UV坐标是使用fresnel作为Ramp的U轴坐标,0.5作为V轴坐标。

2023-11-06 08:00:00 82

原创 图形引擎实战:一种典型的屏幕空间全局光照方案设计

具体的思路是,在像素点屏幕空间周围360°范围内平均采样一定数量的方向(示例代码中为16个采样点,同时引入了噪声作为反射计算的法线来改变每个像素点的采样方向),分别还原各采样方向上设定距离的屏幕空间点对应的世界空间位置,并计算得到要估计的点到各采样点的世界空间方向向量,通过计算该方向向量与要估计的点的世界空间法线的余弦值,即可估计对应方向上的遮蔽情况。可以看出,虽然模型制作上很精致,但是整个画面给人一种很干、不真实的感觉。很明显的,自发光的球有光晕,但是却照不到附近的表面,面和面之间的光照比较平,不真实。

2023-10-23 08:00:00 82

原创 图形引擎实战:AssetBundle构建,更新与动态加载的实践

在 Unity 引擎中,AssetBundle 系统允许我们在游戏发布后随时更新资源,还支持在游戏运行时根据实际需要动态加载资源。但是,由于 AssetBundle 系统的特定设计和固有属性,实际项目中使用它来进行资源管理可能会变得复杂,带来不少挑战。本文旨在从开发者的视角出发,探讨 AssetBundle 的构建、下载更新,以及加载与卸载的一些实践方法。

2023-10-09 08:00:00 83

原创 图形引擎实战:Unity大世界地形制作流程分享

接着说地形的LOD,还有进一步的优化方式,就是把一些不止是地形的东西,也做进来,例如,一些比较大的山体模型,比较明显的建筑,在足够远时,可以直接和地形合并在一起,当做低阶的LOD,因为足够远,山体和建筑的贴图可以用顶点色,或者UV缩到足够小,合并到地形LOD的那张图里,可以节省很多的远景批次,因为足够远,质量也不会收到太大影响,缺点就是需要一定的美术工作量。提个算是额外的话题,为了解决岩石和地表的衔接生硬问题,我们做了地表融合,需要在渲染管线的开始阶段,预渲染一遍地形,所以地形的优化,效果还是比较大的。

2023-09-25 08:00:00 172

原创 图形引擎实战:游戏GPU性能优化

最近项目场景进入优化阶段,之前我对优化的认识只在一些通用方法上,比如:减面,LOD等。对其他的优化方法完全不了解。这些手段确实是有作用的,但是如果不深入进去根据项目和硬件平台特点进行优化,很难实现性能和效果的最大性价比,就很有可能会出现“效果也不好,性能也不好“这种情况。随着这段时间的学习和第一阶段优化结束,我对优化这件事有了更多的认识。我希望把我这段时间实践和学习得到的知识分享出来。学习时间不太长,经验不足难免会有疏漏。希望能对大家有帮助。因为优化其实是个很大的话题,而且篇幅有限,我不能让文章太长。

2023-09-11 08:00:00 319

原创 图形引擎实战:NGUI转UGUI的实践之路

使用工具可以快速的将NGUI的项目转换成UGUI项目,可以批量复用NGUI的UI,能节约大量的时间去拼接UI。但是因为UI的复杂性跟不确定性,转换以后还需要做相当细致的验证,还需要对应的前端程序配合才能更好的完成。欢迎加入我们!感兴趣的同学可以投递简历至:[email protected]

2023-08-28 08:00:00 148 1

原创 图形引擎实战:移动端大世界TOD与多光源调节经验分享

我们将天空划分为四个不同的区域,下图中的蓝色、品红、绿色、墨蓝四个部分就是四个区域的示意,美术同学可以调节不同区域的颜色和不同区域间的混合程度,比如让太阳一侧的色彩更暖更丰富,让另一侧的部分偏冷,增强对比,四个颜色区域,可以给美术同学更高的自由度,调出美术同学所期望的效果。例如主光的颜色、主光的强度,太阳的颜色、大小、亮度等。因为灯光过多,在性能有瓶颈的时候,在不是那么必要的灯光上做一些牺牲,比如把离的比较近的灯光进行合并,或者是把灯光的范围进行一定程度的收缩等,不过这些方法对美术效果会有一定程度的损失。

2023-08-14 08:00:00 71

原创 图形引擎实战:变体剔除经验分享

既URP之后的近年shader中定义的keyword数量爆炸增长,编译后变体数量更是指数级增长;变体剔除成为打包过程中必不可少的一步,相较于之前buildin管线下,urp中的变体剔除也有不少变化,这里分享一下个人在处理变体剔除过程中遇到的一些问题。

2023-07-31 08:00:00 77

原创 图形引擎实战:Native RenderPass原理及URP应用(下)

Unity目前对RenderPass的debug机制还不算友好,例如非暂态资源未绑定RT造成的报错不太直观,刚接触报错时,会对报错无从下手;而且经常因为某些Attachment绑定问题导致崩溃,对于这些问题,在没有精力去搭建一套容错机制之前,最好的办法只是不要一次性编写过多逻辑。根据前一篇文章的理论,暂态资源的绑定应该是无消耗的,理论上如果在shader里增加一个无计算消耗的Attachment,并且不绑定实际RT,应该是没什么性能影响的;

2023-07-17 08:00:00 214

原创 图形引擎实战:Native RenderPass原理及URP应用(上)

或许你曾经听过一种说法,移动端游戏开后处理会特别费,有没有想过这个费体现在哪里,为什么特意提移动端,很容易想到的是,提到手机是因为手机的硬件架构会使后处理类的屏幕空间操作很费。另一方面,Vulkan1.2前的初学者也会很气恼,RenderPass到底有什么作用,为什么简简单单画个三角形都要填一大堆RenderPass的结构体。本篇文章会从硬件结构出发,讲述RenderPass的原理,了解RenderPass的适用场景,以及Vulkan、Unity SRP、URP的写法,并且提供一些实践案例。

2023-07-03 08:00:00 588

原创 图形引擎实战:移动端URP地形贴图融合与HBAO实现

目前的做法是在渲染场景物体之前,把地形的albedo,smoothness,normal,以及depth,先渲染到三张1/4分辨率的rt上。需要注意的是,在地形Layer数量大于4的时候,unity会自动调用TerrainLitAdd shader把地形再渲染一遍,所以相关的计算要同时加在TerrainLit和TerrainLitAdd中,以及注意相关的宏设置。此效果属于是SSAO的升级版。在这里,有必要说一下,材质面板的AO贴图,插在光照计算中的SSAO,以及后处理的SSAO三者之间的关系。

2023-06-19 08:00:00 192

原创 图形引擎实战:卡通风格人物渲染技术总结

在法线或者顶点外扩的方法中会多绘制一次物体,这个被重复绘制的物体需要比正常绘制的物体大一圈且被其遮挡住才行,并且一般情况下是为每种着色Shader添加一个描边Pass,而不是多使用一个描边材质,这里对描边Pass设置前面剔除的方式,深度测试设置为小于等于来确保背面颜色只在描边的地方显示,至于如何外扩可以有两种办法,一个是顶点外扩,即对顶点直接进行缩放,但是这种办法会带来一个直接的问题就是描边不等宽,这点部分取决于模型的顶点。然后配合着上面说过的Rim光和描边,就基本可以达到预期。

2023-06-05 08:00:00 432

原创 人工智能实战:ClaudeAI辅助程序开发测试

(备注:上一个问题给出的代码没有做水平分层,再详细问一下,到这一步基本能把想要的瓶子给渲染出来了,但还是对代码做一些小的修改,比如要创建空瓶子、要在固定的4个颜色之间随机而不是完全随机、每个瓶子里所有的水不能是一种颜色)(备注:为解决之前随机算法的瑕疵,让AI给出一个洗牌算法,当然自己得先知道需要洗牌算法,否则不太好给AI描述清楚算法的瑕疵。(备注:按照AI给出的代码渲染出来的物体变形,需要给相机设置正确的纵横比,纵横比是开发者需要知道的基础知识。对AI代码稍作修改之后的渲染结果。

2023-05-22 08:00:00 306

原创 图形引擎实战:RVO动态避障使用分享

在这里分享一种基于RVO的环绕攻击解决方案,我们假设怪物要进行攻击的目标地点是以目标为中心的一个环形区域,那么就可以将怪物NPC环绕攻击的移动分为两个阶段,第一个阶段是在在射线检测的帮助下行进到攻击距离范围内,第二个阶段是在攻击范围内站定,在RVO的影响下调整自己的位置,给后续加入的NPC流出空地。比如如果要在避障场景中加入静止不动的NPC或者主角,他们的避障权重就要设置为极小值,因为他们没有办法在RVO的计算中去完成自己那一部分躲避动作,所以就需要依靠设置一个极小的避障权重让对方完成几乎所有的避障动作。

2023-05-08 08:00:00 725 1

原创 图形引擎实战:Unity Shader变体管理流程

想要回答这个问题,要看看什么是Shader变体。我花了不少时间思考并完成了相关工具的设计,也参考了知乎上其他人的工具和方法。项目中应用时,有些同事误以为这些工具是全自动的,放在工程里就完事,但我感觉这不大可能;

2023-04-24 08:00:00 412

原创 图形引擎实战:城建功能技术分享

随着城建功能在游戏中的应用越来越广泛,玩家对于城建功能的需求越来越高;积木建造、移动积木破碎积木的旋转(自由旋转)积木自动吸附功能PC端和移动端操作一致,并且操作顺滑多玩家同步建造建造后实时寻路功能基于上述需求,经过反复斟酌,最终决定基于体素研发这一套包括客户端-服务器的城建功能。基于体素研发的城建功能既可以满足多玩家同步建造功能,也能满足实时寻路功能。

2023-04-10 08:00:00 130

原创 图形引擎实战:一种大世界巨量植被管理与渲染方案

Unity目前在大世界开发中提供的相关解决方案甚少,大部分开发团队都需要根据自己项目需求重新定制一套大世界管理和渲染方案,在这之间,大世界中的巨量植被渲染是需要解决的要点之一。本文基于这一需求,结合笔者的项目经验,简要介绍一种比较简单的在大世界场景中管理巨量植被对象和绘制的方案,供大家参考。

2023-03-27 08:00:00 234

原创 引擎TA校园招聘: 搜狐畅游 追光者计划第三期训练营

搜狐畅游【追光者计划】第三期引擎&TA训练营现已开启

2023-03-15 10:20:04 73

原创 图形引擎实战:手游Android端后台下载技术分享

这个问题主要是因为下载的文件和数据库文件不在同一个目录下,中途删除下载目录的时候,没有把另一个目录下的记录文件下载进度的数据库文件给删掉,导致启动下载的时候,会首先查找文件下载进度,查找到有个文件下载了一半,然后就从一半的位置接着下载,然后就出现了文件校验不对的问题。后来,加了一个重复下载机制。采用多线程技术,一方面实现了多个文件的同时下载,另一方面,可以将几个G的大文件切割成不同片段,用不同线程来分别下载各个片段,最后实现整个文件的下载,极大提高了大文件的下载速度,通过实测,下载速度最快达到每秒十几M。

2023-03-13 08:00:00 273

原创 渲染TA实战:模型草美术效果分享

Hi!大家好我是小圆,来自畅游引擎部TA组。这次分享的内容是模型草的美术实现,包括草的模型和shader以及renderer Feature的制作。最后实现的效果:简单的风格化的光照效果、草随风摇摆、和草的稳定碰撞交互、以及和草带有弹力的碰撞交互。↑这是草的Shader面板的一些可调属性↑这是配合Renderer Feature做出的草的碰撞效果,一种更加稳定便宜,另外一种富有弹性。特别提前说明说,本篇分享主要关注在草的动态效果,包括风拂动、和角色的交互。

2023-02-27 08:00:00 185

原创 图形引擎实战:轻功寻路

总体介绍一下,我们的寻路是基于体素系统(可以通过该链接简单了解一下体素系统图形引擎实战:寻路从接触使用到改造的征途 - 知乎以及我们对NavMesh的改造)构建生成出来的NavMesh寻路系统,利用这个寻路系统,让NPC或者玩家轻松的走到世界的每一个角落。在传统的寻路中,通常是识别出路面,在一些路面上行走,但是在一些有轻功攀爬的游戏系统中,其实玩家可以通过攀爬和轻功的方式,抄近道,直达目的地,因此如果还是使用传统方法生成的寻路路线,就会显得自动寻路很呆,不太聪明的样子。

2023-02-13 08:00:00 498

原创 图形引擎实战:布料功能在项目的应用

随着玩家和业界对游戏效果要求原来越高,项目对高表现力高性能效果也有了更迫切的需求,在实际工作中,项目提出布料效果需求有以下几点:1 需要支持双层布料,运动时保证不得穿插。2 编辑相关属性要方便而快捷。3 布料运行效率高,内存占用少。经研究测试,unity自带的布料系统有很多限制,以上需求中的双层布料无法满足,修改的话要深入引擎层,需要项目编译unity版本才可使用,为以后的升级版本带来很多问题。比对市面各种插件和工具后,选择以MagicaCloth为基础来修改。

2023-01-30 08:00:00 146

原创 图形引擎实战:战斗同步分享

在游戏的客户端中,我们可以通过打开动画的RootMotion开关,以获得角色移动时完全贴合动画位移的效果,避免实际速度与动画中的位移不匹配而造成的“滑步”。服务器去读取那么复杂的动画文件显然不合适,我们只需要RootMotion的效果,那么就只需要读取动画中Root节点的位移曲线而已,在unity中打开Animation窗口,再打开对应的动画文件并将窗口切换到Curves,就能看到动画中存储的曲线信息,可以看到类似Animaator.RootT的节点就代表动画中的根节点位移信息。

2023-01-16 08:00:00 122

原创 渲染TA实战:移动端风格化SSR水体开发分享

用到的优化方法只有常用的jitter,即给逐片元射线的步长加上一个随机数,使得低步进次数造成的横条状变成分布较为均匀的点(在视觉上会觉得图像更为连续),从而达到降低步进次数的目的。具体的效果就是,反射物超出屏幕的部分,会替换成定时刷新的天空,配合TOD系统和雾效,整体观感是比较自然的。从第二张图可以观察到,水体反射还有一个特点就是,对于远处的水面,我们的观察角度非常接近掠射角,从而导致水面细小的起伏都能对反射造成很大的干扰,同时也会使得视觉上感知到水面的高光更加密集。哈喽,这里是畅游引擎部的技美Joon。

2023-01-02 08:00:00 419

原创 渲染TA实战:冰面效果制作分享

这里画一张图:我们可以看到,如果深度图的范围没有进过缩放,那就是0-1,但是归一化的-viewDir的向量长度为1,如果-viewDir不和表面垂直(这是绝大多数的情况),那么viewDir.z的分量就是一个不定值,我们不好确定需要走多少步,viewDir才能和底面相交。然后我们需要冰面的Alpha图:因为冰是透明物体,所以相对于Albedo,我们更需要的是一张冰面裂纹的蒙版图,这张图需要记录冰面的裂纹走向和深浅、冰封的气泡、以及因为压力或气体等原因产生的类似雾的效果。

2022-12-19 08:00:00 342

原创 图形引擎实战:随机关卡

程序化的地形生成能够在有限的美术资源下生成富有变化的地形,同时生成的方法也是多种多样,根据游戏的类型,玩法,表现效果等综合考虑生成方法。欢迎加入我们!感兴趣的同学可以投递简历至:[email protected]

2022-12-05 08:00:00 107

原创 渲染TA实战:角色表情制作工艺技术简析

2)五星,三星,多边形,三角面(如图四-1)的处理上需要注意多边形建模一般要兼顾圆滑,但是五星,三星,多边形,三角面,就很容易出现不平整,产生瑕疵,五星,五边形在表情上会很难控制,不能很好的伸展,一般哪里出现五星点,伸展便会在哪里截止(如图四),眼睛的伸展在黄色地方停止,脸部微笑伸展到眼部下方的五星点截止,在不可避免的情况下,尽量通过搭线的方式将五星,三星点藏在肌肉运动幅度较小或者主视线以外的地方(藏线切忌不要藏在嘴角和眼角处)。图三中由于眼轮匝肌周围布线偏少,角色在闭眼时会导致贴图拉伸或者抖动。

2022-11-21 08:00:00 387

原创 人工智能实战:搜狐1024坦克大战技术分享——躲避篇

思路是比较简单的,但是在实际实现的过程中还有很多的细节问题。如果考虑静止不动,坦克每帧都可以采取5个方向,那么如果预测N步就会有5^N种情况,这种程度的计算量导致我们的预测步数没有办法太多,所以我们采用了一种控制预测步数的算法,首先设定最小预测步数min_step和最大预测步数max_step,在js脚本中记录当前帧逻辑计算所用时间,如果小于10ms则当前步数加一,如果大于10ms则把预测步数降为 min_step + (当前步数 – min_step) / 2,这样既避免了卡顿也最大程度利用了计算时间。

2022-11-07 08:00:00 1047

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除