4 绿洲守望者

尚未进行身份认证

我要认证

完美世界游戏引擎开发工程师

等级
TA的排名 4w+

从超级大白到游戏引擎开发工程师,我经历了什么

从超级大白到游戏引擎开发工程师,我经历了什么 写在前面 大学四年经历总结 知识准备 项目经验与实习经历 简历 其它 论目标与方向的重要性 写在前面本人目前为即将毕业的大四毕业生,但限于自己实力有限,接下来所讲述的内容均为自己的个人心得,如有不足之处还请多多包含。本文主旨在于帮助那些想要从事游戏开发的有梦想的小伙伴做一些基础指导,希望能提供或多或少的帮助,同时也作为自己的大学经验总结,来为自己的大学画上圆满的句号 大学四年经历总结本人为双非大学本科学生,大学就读软件工程专业,由于自己非常喜欢动漫和游戏

2020-06-30 08:53:27

全面分析UE4游戏开发中的性能分析与优化

UE4游戏开发中的性能分析与优化

2020-05-29 23:06:51

利用UE4后处理材质实现描边效果

利用UE4后处理材质实现描边效果 方法一 方法二 方法一后期处理材质连接节点如下:原理分析:获取场景法线向量后,通过其中一个做一点点UV偏移,是两个结果做差,颜色值越接近,插值越小,相反越大,而一般需要描边的位置就是向量相差较大的像素点,再用基础颜色加上这个差值就会出现描边效果。 方法二后期处理材质连接节点如下:原理分析:DDX和DDY分别是求该像素点与右侧,下侧像素点颜色插值的函数,像素点颜色值与其周围像素颜色值相差较大,说明是物体边界,因此只需要获取到相差的值,(要求绝对值,因为有.

2020-05-24 19:40:06

Unity2019打包到安卓平台并进行性能调试

Unity2019打包到安卓平台并进行性能调试 安装开发环境安装安卓SDK,DNK和JDK 打包测试 手机端的设置 安装开发环境安装安卓SDK,DNK和JDKUnity2019版已经不需要我们再单独配置安卓开发环境了,在安装新版本时直接有对应的选项,只需要我们在安装新版本时选择对应的平台即可,对新手可真是太友好了,想当年自己手动配置开发环境,配了一天还把电脑搞崩溃了(大哭)直接上图:以安装最新版为例,如果想打包安卓,勾上这个就完了(简单到哭)但是很奇怪的现象发生了,我在安装新版的时候,不知.

2020-05-22 22:43:40

UE4屏幕扭曲后效

模拟屏幕在水下波纹后效材质对于透明物体,即使用透明材质的物体,如果想要在后效材质中获取其深度值,即使用SceneDepth节点,可以将透明材质的Output Velocity设为true,然后将clip值设为0即可。...

2020-04-26 19:26:59

UE4使用蓝图调整Post Process Volume的Material Parameter

调整Post Process Volume的材质属性找了好久,终于找到了获取方法,连接节点方式如下:

2020-04-21 19:32:47

OpenGL学习笔记二十(延迟渲染)

延迟渲染 正向渲染和延迟渲染 正向渲染和延迟渲染

2020-04-01 09:52:33

OpenGL学习笔记十九——HDR

HDR 什么是HDRHDR在OpenGL中的应用 什么是HDR在渲染一个物体的过程中,物体最终的颜色被存入帧缓冲中时,颜色和亮度值会被限制在0-1之间,这就会有一个问题:当物体的颜色全部都超过1的时候,会被帧缓冲的颜色限制在1这个值,那么场景中的颜色都会变成一种颜色,导致场景一片混乱。如图所示:好的解决方案是暂时保存超过1部分的颜色值,获得更多的颜色细节,然后将该范围内的值映射到[0,1...

2020-03-31 12:31:45

OpenGL学习笔记十八——批处理

批处理什么是Draw Call什么是批处理使用批处理使用gl_InstanceID对多个物体做偏移处理实例测试补充什么是Draw Call在渲染物体之前,物体模型顶点数据保存在内存中,CPU通过向GPU发送渲染指令后,数据会复制到显存中,然后进行渲染。在这个过程中,CPU向GPU发送渲染指令的过程,名为Draw Call。OpenGL中的渲染指令是指: glDrawArrays(GL_TRIA...

2020-03-30 11:56:00

OpenGL学习笔记十七(立方体贴图,实现天空盒)

OpenGL学习笔记十七(立方体贴图,实现天空盒)什么是立方体贴图立方体贴图原理立方体贴图应用——天空盒创建立方体贴图什么是立方体贴图简单来说,立方体贴图就是一个包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面,我们知道如果将一张贴图赋给一个立方体模型,那么这个立方体的六个面都显示该贴图,但是对于立方体贴图,我们就能对立方体各个面都使用不同的贴图附在立方体上,如图:每个面展示的图...

2020-03-29 11:06:57

OpenGL学习笔记十六(帧缓存)

上万字OpenGL学习笔记帧缓存的概念帧缓存的作用自定义帧缓存帧缓存的概念到目前位置,已经介绍了多种缓存(数据),用于写入颜色值的颜色缓冲用于写入深度信息的深度缓冲允许我们根据一些条件丢弃特定片段的模板缓冲这些缓冲结合起来叫做帧缓冲(Framebuffer)帧缓存的作用用于保存数据,实现深度测试,模板测试等用于实现自定义后效,可实现非常炫酷的后效自定义帧缓存创建对象...

2020-03-28 18:30:53

五分钟搞懂游戏开发中的抗锯齿算法

常见抗锯齿算法总结锯齿由来抗锯齿算法SSAAMSAACSAA锯齿由来场景的定义在三维空间中是连续的,而最终显示的像素则是一个离散的二维数组,这是计算机屏幕产生锯齿的原因。在计算机处理图形的过程中(渲染管线了解一下),有一个非常重要的阶段,就是光栅化,光栅化主要的作用是将顶点数据的不连续性通过插值计算,将两个顶点之间不存在的点进行弥补,然后实现到屏幕像素点上的一一映射。如图,现在要在屏幕上绘制一...

2020-03-24 18:20:49

如何快速掌握游戏引擎(初学者上手游戏引擎的最佳方案)

如何快速掌握UE4(初学者上手UE4的最佳方案)初学者如何选择游戏引擎初学者如何快速掌握游戏引擎理解代码代表什么理解代码的执行周期不要用中文版从项目入手,直接做,不用怕看官方文档坚持就是胜利初学者如何选择游戏引擎在游戏开发初学者,他们第一个接触的游戏引擎往往是Unity,因为大部分人都会告诉初学者:Unity比UE4难学很多,但是,在我看来,学习什么工具无所谓,掌握学习软件使用的方法才是关键...

2020-03-20 18:24:20

Unity3d中渲染到RenderTexture的原理,几种方式以及一些问题

本文中大部分例子将按照Opengles的实现来解释1.RenderTexture是什么     在U3D中有一种特殊的Texture类型,叫做RenderTexture,它本质上一句话是将一个FrameBufferObjecrt连接到一个server-side的Text...

2020-02-29 12:03:26

超详细介绍Unity中的Command Buffers

Unity中Command Buffers的作用Command Buffer简介CameraEvent和LightEventCameraEventLightEvent测试程序Command Buffer简介首先附加官方文档介绍:Command Buffer简介Command Buffer 是一个保存渲染命令的缓冲区(内存块),我们可以使用它对渲染管线进行扩展,在渲染管线指定的某几个阶段插入...

2020-02-28 13:56:40

OpenGL学习笔记十五(面剔除)

OpenGL学习笔记十五(面剔除)什么是面剔除环绕顺序面剔除函数示例程序什么是面剔除在绘制一个正方体时,我们能看到最多的面数是3,而看不到的面虽然被绘制计算,但却无法通过深度测试,这样就做了一倍的无意义计算,倘若能省区这些计算将大幅度提高渲染性能。环绕顺序对于一个面,要么朝向摄像机(视口),要么背向摄像机,对于背向摄像机的面就是我们想要剔除的面,如何找出背向相机的面将是解决问题的核心。...

2020-02-26 11:43:12

Unity帧速度原理(模拟Update及FixedUpdate)

Unity帧速度原理我们在使用Unity时有一个非常重要的参数:帧数帧数是指每秒可进行渲染和逻辑计算的次数,游戏每运行一帧,都要处理逻辑,物理,动画,渲染等工作,其中最耗时的操作往往是就是渲染,模拟代码如下:while(!Stop()){ doRender(); doAnimation(); doLogical(); ...}而每次执行一遍所用的时常就是帧数...

2020-02-23 14:42:30

OpenGL学习笔记十四(处理半透明物体)

OpenGL学习笔记十四(处理半透明物体) 透明物体 混合 渲染顺序 透明物体之前一直未介绍透明物体,但是在现实生活中,透明物体或者半透明物体随处可见,但是透明物体往往有很多与众不同之处,比如,在OpenGL中,透明物体不能写入深度,原因可以想一下,对于透明物体和不透明物体组合有两种形式:如果一个透明物体在一个不透明物体之前,那么理论上,如果写入深度值,那么后面的不透明物体将不可见,但实...

2020-02-20 14:29:58

OpenGL学习笔记十三(模板测试)

OpenGL学习笔记十三(模板测试)需要模板测试的原因模板测试模板缓存模板测试函数glStencilFuncglStencilOp需要模板测试的原因在上节中,讲了深度测试,即判断一个像素点是否能通过深度检测,显示到屏幕上,但是在实际开发中,我们可能遇到很多需求,希望实现不是通过深度关系进行遮挡的,比如游戏里常见的透视效果,可以看到一个物体之后的东西,这种情况下,我们就不能仅仅使用深度测试...

2020-02-19 11:13:08

OpenGL学习笔记十二(深度测试)

OpenGL学习笔记十二(深度测试)需要深度测试的原因深度测试函数比较函数清除深度缓存深度测试精确度及深度冲突需要深度测试的原因当我们渲染多个物体时,这多个物体之间存在互相遮挡的关系,被遮挡的物体的部分将不可见,也就是它离相机更远,为了告诉计算机被遮挡的物体不需要渲染,我们就需要对物体上的点做深度测试,检测它是否需要渲染。为了实现上述的检测,就需要深度缓冲,简单而言就是存储物体上点深度值的...

2020-02-18 17:45:00

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。