游戏开发2025年最新版——八股文面试题(unity,虚幻,cocos都适用)

1.静态合批与动态合批的原理是什么?有什么限制条件?为什么?对CPU和GPU产生的影响分别是什么?
原理:Unity运行时可以将一些物体进行合并,从而用一个描绘调用来渲染他们,就是一个drawcall批次。
限制条件:
静态:不移动,相同材质
动态:较大顶点开销,仅支持小于900顶点网格物体,顶点着色器使用属性越多,顶点开销数量限制越大,
也要相同材质,不同缩放尺度不能动态合批。

原因:相同材质,纹理相同,同时渲染。同时运行着色器代码。
cpu: 减少cpu提交drawcall
gpu:让gpu一次搞定,减少等待时间。

2.一个正方体多少个顶点和三角形,为什么?如何合并顶点?
24(38),12(62)
顶点24原因:立方体上贴一张二维图形会走样,所以每个面重复贴一张,一个顶点同时是三张图片uv,所以需要三个顶点,三组UV。三顶点重合。

3.相机中如何做分层渲染?底层原理是什么(3974240)
多相机控制图层渲染不同图层的内容,原理:应该跟双缓冲区有关系吧,相机渲染的区域修改颜色缓冲区,不渲染的使用黑边。

4.项目中的打包工具做了什么事情?
0.设置包签名
1.编译 dll
2.拷贝引擎dll文件
3.加密lua文件
4.设置资源ab路径,导出映射文件。
5.打包图集
6.打包ab
7.最后打包apk

5.lua的闭包是什么?闭包产生的内存泄露如何解决?
函数内使用外部变量,例如嵌套函数的父函数的变量
解决方法:函数内的局部变量都会在栈上面,函数执行后不释放引用的闭包函数,由于闭包内有引用的外部变量,闭包也不会自动释放,所以需要释放闭包函数的引用就行了。


6.、A*寻路算法的原理是什么?还知道其他寻路算法吗?
地图分块
8个方向
估价函数,估价出最适合的格子前进。两个列表,open,Close,从open中找出f(n)最小的格子,将它周边的格子加入到open中,并将自己从open中删除加入到close中,如此循环。边界判断。
Dijkstra
寻找出有向权重图中指定节点(“源节点”)到所有其他节点的最短路径。
https://chinese.freecodecamp.org/news/dijkstras-shortest-path-algorithm-visual-introduction/

7.什么是堆,堆排序又是怎么样的
完全二叉树,非终端结点的值不大于(或不小于)左,右孩子结点的值,数组结构。左孩子不一定小于右孩子,所以不是二叉查找树。

8.求一个大型排行榜的Top100用什么算法,过程是怎么样的
客户端:topk问题,原地建个100的最小堆解决。遍历一遍数据集合解决
服务器:不全局全服,分服。

9.lua的table的底层实现原理是什么?为什么这么设计?
array数组和hashtable(哈希表)两种数据的结合。 提高table的插入查找效率
部分整形key作为下标放在数组中, 其余的整形key和其他类型的key都放在hash表中。

10.lua与C#或C语言相互调用的底层实现原理是什么?
lua 底层c语言实现的。
C#与Lua交互过程:
C# Call Lua : 由C#文件调用Lua解析器底层dll库(由C语言编写),再由dll文件执行相应的Lua文件;
Lua Call C# :
1.Wrap方式 首先生成C#源文件所对应的Wrap文件,由Lua文件调用Wrap文件,再由Wrap文件调用C#文件
2. 反射方法
C#与Lua交互原理:
C#与Lua进行交互主要通过虚拟栈实现,栈的索引分为正数与负数,若果索引为正数,则1表示栈底,若果索引为负数,则-1表示栈顶。

C# Call Lua:由C#先将数据放入栈中,由lua去栈中获取数据,然后返回数据对应的值到栈顶,再由栈顶返回至C#。

Lua Call C#:先生成C#源文件所对应的Wrap文件或者编写C#源文件所对应的c模块,然后将源文件内容通过Wrap文件或者C模块注册到Lua解释器中,然后由Lua去调用这个模块的函数。
代码层面:
CSharp调用Lua过程:
C#生成Bridge文件,Bridge调dll文件(dll是用C写的库),先调用lua中dll文件,由dll文件执行lua代码
C#->Bridge->dll->Lua OR C#->dll->Lua

11.装拆箱
值类型和引用类型互相转换,泛型解决。

12.哈希表
本质数组,散列函数算出索引所在位置,去除值。键值对。

13.为什么红黑树能加快查询速度
树高度少,左右子树高度相差不大于1,二叉查找树,左<中<右

14.c和lua那个占用内存更高
lua,因为lua弱类型,每个都是引用对象,并且虚拟机加载环境需要更大的内存。

15.c和lua那个更快
c,因为lua解释型要虚拟机翻译

16.lua和c交互
当C要调用Lua数据时,Lua把值压入栈中,C再从栈中取值; 当Lua调用C数据时,C要将数据压入栈中,让Lua从栈中取值
https://www.cnblogs.com/KillerAery/p/9249145.html

17.LineRender底层实现原理
顶点数组,两点确定一条直线,DDA或者Bresenham直线算法绘制像素

17.二维碰撞算法:AABB
从反面来思考,简单迅捷。

18.cpu缓存
减少处理器访问内存时间的部件,处理器发出内存访问请求时,会先查看缓存内是否有请求数据,CPU运算速度快,内存读写跟不上。
缓存命中:请求数据在缓存中。 不在会请求内存先写入缓存在返回。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/434042.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信安 实验1 用Wireshark分析典型TCP/IP体系中的协议

我发现了有些人喜欢静静看博客不聊天呐&#xff0c; 但是ta会点赞。 这样的人呢帅气低调有内涵&#xff0c; 美丽大方很优雅。 说的就是你&#xff0c; 不用再怀疑哦 实验1 用Wireshark分析典型TCP/IP体系中的协议 实验目的 通过Wireshark软件分析典型网络协议数据包&a…

javaweb 实验3

我发现了有些人喜欢静静看博客不聊天呐&#xff0c; 但是ta会点赞。 这样的人呢帅气低调有内涵&#xff0c; 美丽大方很优雅。 说的就是你&#xff0c; 不用再怀疑哦 实验三 Web基础-JavaScript 目的&#xff1a; 1、 理解和掌握Javascript基本语法 2、 掌握JavaScr…

html+css+js实现Pagination 分页

效果图 HTML部分 <body><div class"pagination"><button class"prev"><</button><ul><li class"active">1</li><li>2</li><li>3</li><li>4</li><li>5…

敏捷开发与DevOps的有机结合

在当今快速变化的技术环境中&#xff0c;软件开发团队面临着前所未有的挑战。客户需求不断变化&#xff0c;市场竞争激烈&#xff0c;技术更新速度加快&#xff0c;这些因素都要求开发团队具备高度的敏捷性和高效的运营能力。为了应对这些挑战&#xff0c;越来越多的企业选择将…

024.PL-SQL进阶—游标

课 程 推 荐我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448;入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448;虚 拟 环 境 搭 建 &#xff1a;&#x1…

JAVA红娘婚恋相亲交友系统源码全面解析

在数字化时代&#xff0c;红娘婚恋相亲交友系统成为了连接单身男女的重要桥梁。JAVA作为一种流行的编程语言&#xff0c;为开发这样的系统提供了强大的支持。编辑h17711347205以下是对JAVA红娘婚恋相亲交友系统源码的全面解析&#xff0c;以及三段示例代码的展示。 系统概述 …

【Gitee自动化测试4】本地Git分支的增删查,本地Git分支中文件的增删查,本地文件的暂存/提交,本地分支的推送

一、流程 本地创建分支&#xff0c;设定连接什么云分支本地创建文件&#xff0c;暂存、提交–>本地分支本地分支推送所有修改–>云仓库 二、分支概念 在版本回退里&#xff0c;每次提交&#xff0c;git都把它们串成一条时间线&#xff0c;这条时间线可以理解为是一个分…

Verilog基础:时序调度中的竞争(四)(描述时序逻辑时使用非阻塞赋值)

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 作为一个硬件描述语言&#xff0c;Verilog HDL常常需要使用语句描述并行执行的电路&#xff0c;但其实在仿真器的底层&#xff0c;这些并行执行的语句是有先后顺序…

论文阅读:LM-Cocktail: Resilient Tuning of Language Models via Model Merging

论文链接 代码链接 Abstract 预训练的语言模型不断进行微调&#xff0c;以更好地支持下游应用。然而&#xff0c;此操作可能会导致目标领域之外的通用任务的性能显著下降。为了克服这个问题&#xff0c;我们提出了LM Cocktail&#xff0c;它使微调后的模型在总体上保持弹性。…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《考虑异步区域调频资源互济的电能、惯性与一次调频联合优化出清模型》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Spring Boot助力:小徐影院管理系统

第二章开发技术介绍 2.1相关技术 小徐影城管理系统是在Java MySQL开发环境的基础上开发的。Java是一种服务器端脚本语言&#xff0c;易于学习&#xff0c;实用且面向用户。全球超过35&#xff05;的Java驱动的互联网站点使用Java。MySQL是一个数据库管理系统&#xff0c;因为它…

python学习第十二节:python开发图形界面

python学习第十二节&#xff1a;python开发图形界面 创建一个窗口实例化窗口对象调用窗口设置窗口大小设置窗口的标题设置窗口图标否能够改变窗口设置窗口的背景 创建容器组件容器组件的介绍组件参数的介绍label标签label添加标签控件 label添加标签定位label的relief参数label…

无人机之模拟图传篇

无人机的模拟图传技术是一种通过模拟信号传输图像数据的方式&#xff0c;它通常使用无线电模块或专用通信协议进行数据传输。 一、基本原理 模拟图传技术的工作原理是将摄像头或相机设备采集到的图像数据&#xff0c;通过模拟信号的形式进行传输。这些模拟信号在传输过程中可能…

9.26 Buu俩题解

[CISCN2019 华东北赛区]Web2 看wp写完之后写的 知识点 存储型XSS与过滤绕过sql注入 题解 好几个页面&#xff0c;存在登录框可以注册&#xff0c;存在管理员页面(admin.php) ->既然存在管理员页面&#xff0c;且直接访问admin.php提示我们 说明存在身份验证&#xff0…

安全教育培训小程序系统开发制作方案

安全教育培训小程序系统是为了提高公众的安全意识&#xff0c;普及安全知识&#xff0c;通过微信小程序的方式提供安全教育培训服务&#xff0c;帮助用户了解并掌握必要的安全防范措施。 一、目标用户 企业员工&#xff1a;各岗位员工&#xff0c;特别是IT部门、财务、行政等对…

你们猜!吊打Oracle的国产数据库有哪几家?

今天闲暇之余看到某vx群聊得很火热&#xff0c;这个群聚集了国内不少数据库大咖&#xff0c;其中大家聊到国产数据库遥遥领先了。 最开始主要是一个朋友提到目前很多企业拍板的人并不懂数据库&#xff0c;甚至很多知名数据库都没听过。 然后大家就开始聊到国产数据库了&#xf…

《微信小程序实战(4) · 地图导航功能》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

Python(六)-拆包,交换变量名,lambda

目录 拆包 交换变量值 引用 lambda函数 lambda实例 字典的lambda 推导式 列表推导式 列表推导式if条件判断 for循环嵌套列表推导式 字典推导式 集合推导式 拆包 看一下在Python程序中的拆包&#xff1a;把组合形成的元组形式的数据&#xff0c;拆分出单个元素内容…

电商大变革!TikTok携手亚马逊重塑购物边界,开启海外即看即买新篇章

在电商界&#xff0c;亚马逊还是一众电商平台难以超越的存在。据外媒报道&#xff0c;最新预测显示&#xff0c;预计到2024年底&#xff0c;亚马逊全球将拥有970万卖家&#xff0c;活跃卖家将达到190万。 TikTok携手亚马逊重塑购物边界&#xff0c;开启海外即看即买新篇章 在数…

RK3568 android11 适配鼎桥MT5710-CN 5G模块

一,概述 鼎桥MT571X设备和Android系统主要通过USB接口进行数据通信,Android系统上的Linux内核需要根据鼎桥模块设备上报的USB设备接口加载USB驱动,USB驱动正确加载后,鼎桥模块才能正常工作。 Android系统中支持鼎桥模块设备相关的Linux内核驱动架构,如下图所示: 在Lin…