-
【DailyGfx】3-Mesh
在图形渲染管线最前面,是模型数据,也称为网格(Mesh)。网格是多边形列表,在图形学中,网格多采用三角形列表,也就是说,网格实质上是由若干三角形组合而成。如何让若干三角形正确表示一个模型呢?那么必不可少的必定是顶点。三角形由3个顶点构成。如果只是简单地列出这些顶点或这些三角形,不足以正确描述此模型。那么还缺的是如何互相组合顶点。网格的三角形,必定会有很多是共用顶点、共用边的,只存储三角形列表,会浪费许多空间。所以在图形学中,往往使用两个数组:顶点表和索引表,相互协作来达到描述网格三角形组的...…
-
【DailyGfx】2-Shader
在现代渲染管线中,硬件GPU常常由显卡驱动程序驱动。显卡驱动常常适配至操作系统,以使操作系统能操纵显卡显示出图形。操作系统主要职能就是控制计算机所有的硬件资源,并提供接口给程序员使用。显卡也是硬件资源之一,当然也不例外。所以,我们常说的图形API OpenGL,Vulkan,DirectX等,都是由标准制定机构进行制定,与显卡驱动提供商进行约定,制定出标准。接着操作系统、显卡驱动商协商一致之后,提供给程序员用的接口,即是图形API。程序员通过图形API,可以让显卡供我们工作。那Shader...…
-
【DailyGfx】1-渲染管线
渲染管线是整个渲染中的核心部分。渲染管线的主要目的是将3D描述的世界绘制成2D屏幕上显示的像素。可想而知其中的复杂度。渲染管线在早期通常实现在CPU端,称之为软渲染,即整个渲染管线的处理都交给CPU处理。软渲染可行,CPU不仅要处理游戏逻辑,还要处理渲染逻辑,其负重极大,影响FPS(Frame Per Second),对于游戏而言,帧率非常重要,需要达到30-60FPS才能让玩家感受到画面的流畅度。在VR上,则要达到90FPS。如今很少有直接使用软渲染(Software Renderer)...…
-
游戏引擎-Unity3D性能优化指南
总纲性能优化无外乎两个关键概念:时间和空间。时间,对应着速度、性能、流畅度等等。空间,对应着内存、显存等等,计算机是有限的资源,得合理利用。工具篇兵马未动粮草先行。工欲善其事必先利其器。性能优化,最重要的是能找到瓶颈。连瓶颈都不能找到,谈何优化?内置工具:内置工具包括以下几种:Profiler,FrameDebugger,ProfilerCPU剖析CPU性能主要衡量游戏中花费的时间,即运行速度。CPU的主要功能是解释计算机指令以及处理计算机软件中的数据。影响运行速度的性能指标包括:CPU的...…
-
编程语言-通用编码约定
编码约定编写代码归根结底,是编写文字的过程,与写作类似。通用的术语和通用的处理方式,能快速进行多人协作的融合。前言 警告: 如果已经存在编码风格,请遵守原有编码风格。所有代码文件必须保存为**utf-8**格式。(Visual C中使用UTF8-BOM)编码风格的意义在于: 降低软件管理成本:软件的维护,基本以阅读代码为主 提升软件质量:软件同行审查主要检测代码缺陷。代码风格一致可让同行更易接纳、理解、吸收,提高缺陷审查过程效率。 降低软件复杂度:最小化代码复杂度的方式是——直接,...…
-
笔记集锦-Web
创建Ruby Jekyll个人日志环境安装 ruby 安装 ruby 和 rvmsudo apt install build-essential # 出现gem install 失败时需要sudo apt install software-properties-common # 添加apt-add-repository时需要sudo apt-add-repository -y ppa:rael-gc/rvmsudo apt-get updatesudo apt-get install r...…
-
游戏开发-游戏开发基础知识汇总
基本规则 程序生命周期:初始化、更新、结束。对应计算机过程为:分配内存空间、更新内存空间值、释放内存空间。【数据必须在内存中才能被处理】 程序由数据结构和函数构成,两者缺一不可。对应计算机概念为:内存中数据结构与指令。 程序通过回调函数实现事件系统,自动调用。任何调用(函数或函数变量),都有调用点。 面向对象中,类实质上是变量集合,其成员函数实质为全局函数。对应计算机概念为:数据结构与指令。 接口,总有对应的实类及其对象。接口是函数变量集,如果接口没有对应实类,即函数变量集中的所...…
-
笔记集锦-Powershell&Windows
当运行 ps 脚本,提示“此系统禁止运行脚本”时,解决方式:set-executionpolicy remotesigned 安装 WSL:以管理员身份打开 PS:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux 安装 Chocolately:Set-ExecutionPolicy Bypass -Scope Process -Fo...…
-
游戏引擎-UE4命名风格
通用名称规则 所有都为英文 所有资产依赖都应该在同一目录下(除了共享资产) 资源名称各式:<Prefix_>AssetName<_Number><_Suffix> 资产类型决定前缀。例如Blueprint:BP_assetname_01 具体类型(例如纹理)使用后缀以指定子类型 T_Grass_01_N :用于法线贴图 使用下划线以分割标识符和数值:SM_DoorHandle_01 使用2位的数值:SM_Pip...…
-
游戏引擎-UE4 引擎流程
入口点:不同平台调用GuardMain入口函数。GuardMain: EnginePreInit():引擎预先初始化。=>GEngineLoop::PreInit() EngineInit/EditorInit(GEngineLoop):引擎或编辑器初始化。=>GEngineLoop::Init() EngineTIck():主循环每次调用的函数。=> GEngineLoop::Tick() EngineExit/EditorExit():引擎或编辑器退出。=&g...…