内存分区 1、栈区:由编译器自动分配释放,存放值类型的对象本身,引用类型的引用地址(指针),静态区对象的引用地址(指针),常量区对象的引用地址(指针)等。其操作方式类似于数据结构中的栈。2、堆区(托管堆):用于存放引用类型对象本身,在c中由.net平台的垃圾回收机制(GC)管理。栈,堆都属于动态存储区,可以实现动态分配。3、静态区及常量区:用于存放静态类,静态成员(静态变量,静态方法),常量的对象本身。由于存在栈内的引用地址都在程序运行开始最先入栈,因此静态区和常量区内的对象的生命周期会持续到程序运行结束时,届时静态区内和常量区内对象才会被释放和回收(编译器自动释放)。应尽量限制使用静态类,静...

  oXKBKZoQY2lx   2024年03月19日   42   0   0 游戏开发

d3d12龙书阅读----d3d渲染流水线 输入装配器阶段 在输入装配器阶段,会从显存中读取顶点与索引这种几何数据,然后根据图形基元的类型,根据索引将顶点组装起来。 d3d中的图形基元 我们来看看几种常见的图形基元类型: typedef enumD3D12_PRIMITIVE_TOPOLOGY_TYPE { D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED =0, D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT =1, D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE =2, D3D12_PRIMITIVE_TOPOLO...

  Ly5WKgqR6znz   2024年03月16日   39   0   0 游戏开发

目录 思路 基础的RayMarching 获取深度图 重建世界空间 采样阴影图 RayMarching 当前效果 DualBlur优化块状感 DualBlur 叠加模糊后的体积光和原图 进化叭!RayMarching! 性能优化 最终效果 Reference 思路 观察下面这副图可以发现,在明亮处光很明显,暗处(阴影中)没有明显的光,且越暗光越不明显 为了还原这一现象,可以想到的是根据目标pixel的阴影值来计算亮度。但如何营造光的体积感呢?这就需要用到光线追踪!的思想rayMarching(光线步进)与光追不同的是,光追是每个pixel,在场景中发射一根射线并不断弹...

  398vzLiyyaJn   2024年03月13日   50   0   0 游戏开发

技术笔记(7)Unity导入人物和场景资源,出现的材质显示问题 一,如果两个人物拥有同名但内容不同的的材质shader error:Unity在导入的时候,识别到近似内容时,会用新的内容去替换同名shader的内容,而不是重新创建一个。这样就会导致第一个人物的材质显示异常,其本质是shader内容被替换了。 解决方案:尝试了多次各种导入资源的方式,最终选择了一个妥协折中的方法。在导入完第一个人物之后,就将所有冲突重名的shader重命名,且shader内部也需要重命名。前者是为了导入资源时,Unity能做出区分;后者是为了避免人物材质引用shader时出现错误。 ‍ 二,shader引...

  iaaW4rI4Gew3   2024年03月12日   15   0   0 游戏开发

d3d12龙书阅读----Direct3D的初始化 使用d3d我们可以对gpu进行控制与编程,以硬件加速的方式来完成3d场景的渲染,d3d层与硬件驱动会将相应的代码转换成gpu可以执行的机器指令,与之前的版本相比,d3d12大大减少了cpu的开销,同时也改进了对多线程的支持,但是使用的api也更加复杂。接下来,我们将先介绍在d3d初始化中一些重要的概念,之后通过具体的代码进行介绍。 组件对象模型(com) COM在D3D编程中提供了一种结构化和标准化的方式来处理对象和接口,有助于简化图形编程的复杂性,并提高代码的兼容性和可维护性在使用com对象时,com对象会统计其引用次数,因此,在使用完co...

  Ly5WKgqR6znz   2024年03月12日   48   0   0 游戏开发

本人才疏学浅,只是近期略看了一下Texture的内存,如有不对的地方,还望大佬指正。 参考文章: 你所需要了解的几种纹理压缩格式原理 1.说一说图片占用的内存 关于图片的内存,是怎么算的呢,就是图片的长乘以宽,乘以每个像素点占的byte大小。 MaxTextureSize,影响的就是基础的长和宽。 图片的压缩格式,影响的就是每个像素点占的byte大小。 就举一个最基础的例子,1024X1024大小,格式是RGBA32的图片。 那其内存就为1024x1024x32/8=4x(1024x1024)=4MB。 我们知道1024x1024就是1M(bit),除以8换算为M(Byte),乘以32则是RG...

  45dg0vCZiZUS   2024年03月11日   45   0   0 游戏开发

一、SHA算法的起源与演进 SHA(SecureHashAlgorithm)算法是一种哈希算法,最初由美国国家安全局(NSA)设计并由国家标准技术研究所(NIST)发布。SHA算法的目的是生成数据的哈希值,用于验证数据的完整性和真实性。最早的SHA-0版本于1993年发布,之后陆续发布了SHA-1、SHA-2和SHA-3等不同版本,不断提高了算法的安全性和效率。 SHA在线加密|一个覆盖广泛主题工具的高效在线平台(amd794.com) amd794.com/sha 二、SHA算法的优势与劣势 优势: 安全性高:SHA算法采用了不同的哈希函数和不同的输出长度,提高了抗碰撞能力和安全性。...

  YpHJ7ITmccOD   2024年03月10日   65   0   0 游戏开发

Lua中pair和ipair的区别? 二者都是Lua中内置的迭代器,可以对数组或table进行遍历。 在正常的数组或table的遍历中,二者没有区别。 tableNormal={"this","is","a","array"} --使用pairs遍历 forkey,valinpairs(tableNormal)do print(key,'',val) end 遍历结果: --使用ipairs遍历 forkey,valinipairs(tableNormal)do print(key,'',val) end 遍历结果: 二者没有任何差别! 之所以说是正常的数组,是因为索引是连续的,数值都...

  1wMBnbixARwC   2024年03月09日   69   0   0 游戏开发

EventListener和EventTrigger 控件自带组件的局限性 其实我们常见的复合控件只提供一些简单的事件监听,如按钮有点击抬起的监听,对长按等其他交互方式的事件监听不大支持。 NGUI的监听函数 给NGUI对象添加Collider,在其挂载的脚本中编写对应的NGUI的函数,在运行时候会通过反射来进行匹配调用函数。 usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine; namespaceNGUILearn { publicclassNGUIPractice:MonoBehaviou...

  1wMBnbixARwC   2024年03月06日   39   0   0 游戏开发

三大基础组件 root 基本概念: 分辨率(常见的1920:1080) 像素(图片中的最小的色块) 屏幕尺寸(屏幕对角线长度) 屏幕比例(像素的密度,单位面积上有多少像素点,一般指一英寸有多少像素点) Root的适配模式 灵活模式: 约束模式 模式一二的综合模式 总结: 灵活模式适用于PC端,频繁拖动窗口的项目 约束模式适用于移动设备横屏勾选高fit竖屏勾选宽fit注意背景图要按照最大宽高比来做 panel panel的作用:panel面板对象管理子控件 EventSystem 作用:主要作用是让摄像机渲染出来的物体能够接收到NGUI的事件。大部分设置不需要我们...

  1wMBnbixARwC   2024年03月01日   46   0   0 游戏开发

OBJ文件格式是一种常见的3D模型文件格式,它包含了模型的几何形状、材质、纹理等信息。下面是OBJ文件格式的一些基本信息: OBJ文件由一系列文本行组成,每行以一个关键字开头,关键字后面跟着一些参数。OBJ文件中最常见的关键字有以下几个: v:定义一个顶点,后面跟着该顶点的x、y、z坐标。 vn:定义一个法向量,后面跟着该法向量的x、y、z分量。 vt:定义一个纹理坐标,后面跟着该纹理坐标的u、v分量。 f:定义一个面,后面跟着该面的顶点、法向量、纹理坐标等信息。 OBJ文件中还可以包含一些其他的关键字,如mtllib、usemtl等,用于定义材质信息。 下面是一个简单的OBJ文件的示例:...

  vWa2lMmTbsfJ   2024年02月29日   24   0   0 游戏开发

A搜索算法的更多内容 A算法,也许你会习惯称它为「A寻路算法」。许多人大概是因寻路——尤其是「网格地图」寻路认识它的,网上很多教程也是以网格地图为例讲解它的算法实现。这导致了许多人在遇到同样用了A算法的地方,例如GOAP或者基于八叉树的立体空间寻路时会一头雾水:A算法原来有这么多「变种」吗(⊙ˍ⊙)?其实A算法是没有变的,只是我们原先错误地将它与「网络地图」捆绑在了一起。A算法本身是一种搜索算法,这次我们从另一视角看看「A搜索算法」,并一起完成一个更泛用的「A搜索器」,最后再探讨一些常见的正确优化方式与错误优化方式。 注意:本文并不会详细将A算法的逻辑原理,希望你至少已了解用于网格地图的A寻路...

  PfEVswrG0sbF   2024年02月27日   65   0   0 游戏开发

迭代器 迭代器是一种对象,它能够来遍历标准库模板容器中的部分或全部元素,每个迭代器对象代表容器中确定的地址,在Lua中迭代器是一种支持指针类型的结构,他可以遍历集合的每一个元素。 泛型for迭代器 泛型for自己内部保存迭代函数,实际上保存三个值:迭代函数、状态常量、控制变量。 泛型for迭代器提供了集合的key/value对, array={"Hello","Tony","Chang"} --for迭代器遍历 forkey,valueinpairs(array) do print(key,value) end 结果: 事实上使用Lua默认提供的迭代函数ipairs,我们常常使用函数来描...

  1wMBnbixARwC   2024年02月26日   52   0   0 游戏开发

1前言 ​本文主要介绍Unity打包发布Androidapk流程、基于AndroidJavaObject(或AndroidJavaClass)实现Unity调用Java代码、基于UnityPlayer实现Java调用Unity代码,官方介绍见→Android。 ​Unity项目C中获取平台的代码如下,需要引入UnityEngine命名空间。 RuntimePlatformplatform=Application.platform; ​RuntimePlatform是枚举类型,主要平台如下。 publicenumRuntimePlatform{ OSXEditor=0,//editoronma...

  mzU7yC38vjmG   2024年02月21日   49   0   0 游戏开发

windbg下载有两种方式: InstallWinDbgWindowsdrivers|MicrosoftLearn 从微软应用商店下载 dump上的windows的局部变量解析部分进行windbg本地解析查看 下载对应crash链接中的dmp(即minidump)、pdb、exe文件至本地 打开winDbg工具,进行配置 配路径:Settings——>Debuggingsettings——>Sourcepath配置引擎的代码目录 配路径:Settings——>Debuggingsettings——>Defaultsymbolpath文本框配置symbolpath,...

  vWa2lMmTbsfJ   2024年02月19日   79   0   0 游戏开发

Unity官网GC定义如下 创建对象、字符串或数组时,用于存储它的内存是从称为堆的中央池分配的。当此项不再使用时,其先前占用的内存可被回收并用于其他目的。在过去,通常由程序员通过适当的函数调用显式地分配和释放这些堆内存块。如今,Unity的Mono引擎等运行时系统会自动为您管理内存。自动内存管理比显式分配/释放的做法需要更少的编码工作,并且大大降低了内存泄漏的可能性(即分配了内存但后续从未释放的情况) 简单来说,GC会在单帧【非增量式】中,遍历堆上对象,清理掉受Unity完整托管的已被标记为无用内存的内容,是一种行为。而优化gc则指的是如何加速这次回收操作,以防止玩家突然在某一帧感觉卡顿。 【...

  rGNcCOAQdynJ   2024年02月19日   71   0   0 游戏开发

在帕鲁的世界,你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活,也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活,也可以为你在工厂工作。你也可以将它们进行售卖,或肢解后食用。 引用自:https://store.steampowered.com/app/1623730/Palworld 目前市场主要以阿里、腾讯和华为云为主要提供商,其他的则规模较小的小店。我个人也在犹豫不决,目前我正在筛选和了解各种选择。我考虑租用一个云主机(至少配置4核16G,根据需要可以升级到32G)。 目前我观察到腾讯云正在进行年末特惠促销活动,他们也提供了相应的教程供用户选择,而且价格也...

  sSh3rBaiME5f   2024年02月19日   21   0   0 游戏开发

d3d12龙书阅读----数学基础向量代数、矩阵代数、变换 directx采用左手坐标系 点积与叉积 点积与叉积的正交化 使用点积进行正交化 使用叉积进行正交化 矩阵与矩阵乘法 转置矩阵单位矩阵逆矩阵矩阵行列式 变换 旋转矩阵 坐标变换 利用DirectXMath库进行向量运算、矩阵运算以及空间变换 头文件与命名空间 核心向量类型XMVECTOR FMVECTORGMVECTORHMVECTORCMVECTORXM_CALLCONV XMFLOAT与XMVECTOR之间的相互转换 向量的初始化 向量的运算 XMMATRIX定义与初始化 XMMATRIXFXMMATRIXCXMMT...

  Ly5WKgqR6znz   2024年02月19日   63   0   0 游戏开发

MinecraftFabric模组开发时遇到报错-Faileddownloadafter3attempts 遇到的主要报错如下(当然以下只是一部分报错) Aproblemoccurredconfiguringrootproject'tuuorial_mod'. Failedtonotifyprojectevaluationlistener.FailedtosetupMinecraft,java.io.UncheckedIOException:Faileddownloadafter3attemptsFaileddownloadafter3attempts Try: Runwith--i...

  QRx1VgdxscBt   2024年02月19日   36   0   0 游戏开发

帕鲁私服虽香,管理员没有称手的管理工具怎么行?难道让我手敲命令行?那是帕鲁干的事情好吗,我需要大屏,点点鼠标就能操作的那种,有没有? 有!palworld-server-tool是一款非常强悍的帕鲁私服管理器,它通过可视化界面及REST接口管理帕鲁私服,基于SAV存档文件解析及RCON实现,而且还适配了移动端,而且还支持了暗黑模式,太贴心了! 来看一下它有哪些强悍的功能: 基于Level.sav存档文件解析实现的功能: 完整玩家数据 玩家帕鲁数据 公会数据 基于官方提供的RCON命令(仅服务器可用的)实现功能: 获取服务器信息 在线玩家列表 踢出/封禁玩家 游戏内广播...

  166Ve614hKdJ   2024年02月19日   41   0   0 游戏开发
推荐作者 更多

2023-11-08

2023-11-12

2023-11-21

2023-11-01

2023-11-02

2023-11-02

2023-11-02

2023-11-01

2023-11-02

2023-11-01