IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity面试题 每日5题 06 -> 正文阅读

[游戏开发]Unity面试题 每日5题 06

26. 如何实现战争迷雾

后续Unity实现后分享


27. Unity优化手段,Draw call (?cpu gpu)

概念:Draw call就是一个命令,它的发起方是CPU,接收方是GPU。这个命令仅仅会指向一个需要被渲染的图元列表,而不会再包含任何材质信息。当给定一个Draw Call时,GPU会根据渲染状态和所有输入的顶点数据开始进行计算。CPU和GPU并行工作,它们之间通过命令缓冲区连接,CPU向其中发送渲染命令,GPU接收并执行对应的渲染命令。

如果Draw Call的数量太多,CPU就会把大量时间花费在提交Draw Call 上,造成CPU的过载,会影响帧率。

哪些手段可以减少Draw call次数:

1)Solid Color模式能满足需求的时候使用用Solid Color模式

2)尽量减少使用多个Canvas

3)尽量把同类型组件放在一起(因为如果一个Text,一个Image这样混着来,每个Text和Image都会产生Drawcall)

4)尽量使用图集,把多个小图片合在一起(如果每个Image都显示不同图片,那么每个Image都会产生1个Draw call)

5)减少实时光照的使用,可以烘焙成光照贴图去代替实时光


28. Pbr最重要的参数,几个方程

反射率方程

Lo(p,wo)=∫Ω(kdcπ+ksDGF4(wo?n)(wi?n))Li(p,wi)(wi?n)dwi

具体内容太过复杂,具体转载见每日5题 06补充


29. 如何搭建一个pbr工作流

PBR的工作流程主要分为两种,一种是基于金属的工作流 (Metal-Roughness),一种是基于镜面反射的工作流?(Specular-Glossiness)。Unity支持两种工作流,而UE4则只支持metallic工作流。

流程大概:基础模型->高模制作->拓扑->展UV->烘焙贴图->SP贴图制作->导入引擎

笔者曾经使用过PBR工作流程,对应软件MAYA,Z-brush,Substance?Painter,Unity(UE)


30. Topk问题以及变种,各种解法

topK问题是经典的算法问题,其大意是从一个序列中找出最小(大)的k个数,面对这个问题最简单的方法当然是先排序后取前k个数,但这样有些浪费时间,比较经典的方法是借助快排和堆排的思想。

参考题目:

215. 数组中的第K个最大元素

具体解法可以有暴力,快排,冒泡排序,归并排序深度优先搜索,分治等等

这里分享JAVA冒泡排序:

class Solution {
    public int findKthLargest(int[] nums, int k) {
        for(int i = 0;i < k;i++){
            int max = i;
       
            for(int j = i+1;j < nums.length;j++)
                if(nums[j] > nums[max])
                    max = j;
 
            if(max!= i){
                int temp = nums[i];
                nums[i] = nums[max];
                nums[max] = temp;
            }
        }
        return nums[k-1];
    }
}

更多解法不妨去力扣题解看看

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 02:18:45  更:2022-09-15 02:20:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/17 3:58:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码