在Unity 3D中,shader是何时编译的,在何时加载入显存中的?

是某一对象在实例化时,加载其相关的material与shader还是游戏开始时?
添加评论

分享
按时间排序按投票排序

4 个回答

赞同9 反对,不会显示你的姓名
侯帅英,一个想站着把钱给挣了的游戏人
李委函、邓方、郝鹏程 等人赞同

Editor中:修改shader并保存时立即编译。

Runtime下,无论哪个平台,都是在进入场景时加载shader object内容到内存,但是首次实际调用渲染时才编译,编译完成之后会cache下来。

有两种优化方法:

1. 调用Shader.WarmupAllShaders(),自动编译该场景中用到的所有shader。该方法在Unity5中已经废弃。

2. 在项目设置的GraphicsSettings中,可以导出ShaderVariantCollection,并在Preloaded Shader中导入,这样的话就可以在载入场景时一并编译需要预加载的shader,这样的优化在移动平台上用得比较多。

具体见:
Unity - Manual: Optimizing Shader Load Time

发布于 2015-05-08 3 条评论 感谢

分享

收藏 • 没有帮助 •

举报

• 作者保留权利

赞同1 反对,不会显示你的姓名
钱康来,会写点shader的小弱鸡
知乎用户 赞同

你在编辑器里,每次修改、保存的时候就会自动编译(unity是监视Asset文件改动的)
移动平台的话,感觉是载入场景的时候,按需编译、加载的,不过不是十分确定

Unity - Scripting API: 这个文档里有一些说明:Usually graphics drivers do not actually prepare shaders until they are first needed. However when some object is first rendered with a previously unused shader, there can be a hiccup because the driver is compiling/optimizing the shader. This can be quite noticeable, especially on mobile platforms.

编辑于 2015-05-08 添加评论 感谢

分享

收藏 • 没有帮助 •

举报

• 作者保留权利

赞同1 反对,不会显示你的姓名
十字傷,游戏程序员
A希亿 赞同

是在加载材质时後编译的
发布于 2015-05-07 添加评论 感谢

分享

收藏 • 没有帮助 •

举报

• 作者保留权利

赞同0 反对,不会显示你的姓名
知乎用户,核桃他爹/发现再不逗逼也就老了
编译时间不知道。
用于渲染的话私以为不存在【载入】这个词,在GPU开始做渲染的计算时,shader就是一段代码而已。

在Unity 3D中,shader是何时编译的,在何时加载入显存中的?相关推荐

  1. PBO(Pixel Buffer Object),将像素数据存储在显存中

    http://www.voidcn.com/article/p-kidqaxhc-bkc.html https://blog.csdn.net/u011330638/article/details/8 ...

  2. LCD不带显存,是如何内存映射屏幕。S5PV210SoC在内存中选一段内存存放颜色数据,通过配置将LCD控制器和这一段内存连接起来,构成映射关系,LCD控制器就自动从显存中读取像素数据传给LCD驱动器

    一.LCD控制原理 S5PV210处理器中自带LCD控制器,控制LCD的显示,把 LCD 图像数据从一个位于系统内存的 video buffer 传送到一个外部的 LCD 驱动器接口. 类型: STN ...

  3. Unity 3D 图形学 Shader之顶点与片段着色器(五)

    通过实现一个只有颜色属性可调节的简单材质效果更好的了解顶点与片段着色器 一.顶点着色器 顶点着色器就是处理顶点的着色器,每个顶点都会执行一次顶点着色器.我们先认识下顶点函数的结构: 顶点着色器函数的名 ...

  4. Unity 3D开发--Shader入门基础

    Shader "Unlit/xxShader" {Properties{//基础属性 并可以显示在属性板上_MainTex ("Texture", 2D) = ...

  5. java动态编译类文件并加载到内存中

    如果你想在动态编译并加载了class后,能够用hibernate的数据访问接口以面向对象的方式来操作该class类,请参考这篇博文-http://www.cnblogs.com/anai/p/4270 ...

  6. Unity 3D模型展示框架篇之ILRuntime快速入门

    系列文章目录 Unity 3D模型展示框架篇之项目整理 Unity 3D模型展示框架篇之框架运用 Unity 3D模型展示框架篇之自由观察(Cinemachine) Unity 3D模型展示框架篇之资 ...

  7. 简单Unity 3D游戏加密dll文件提取

    大多数游戏都是使用Unity 3D做的,我们逆向分析主要分析\assets\bin\Data\Managed中的Assembly-CSharp.dll文件,当我们用.NET Reflector 或者d ...

  8. 深度学习分布式策略优化、显存优化、通信优化、编译优化综述

    综述 因为我个人最近在从事可能是AI领域对性能挑战最大的方向,自动驾驶领域,所以对整个深度学习训练的优化尤为关注,最近一直在学习相关内容,谨以此篇文章做一个总结. 我一直很看好深度学习训练优化这个方向 ...

  9. 查看显卡显存_3d渲染需要多大显存比较合适?显存在渲染中的作用

    今天我们来和大家聊一聊关于3d设计渲染需要多大显存比较合适的问题,其实渲染不光是做3d设计的时候会用到,包括视频剪辑的时候也需要渲染,简单的说,只要是设计到图形.视频的相关工作都会涉及到渲染这个概念, ...

最新文章

  1. php回顶层顶层,PHP语言之php顶层类(自家用)
  2. java之Thread.sleep(long)与object.wait()/object.wait(long)的区别及相关概念梳理(good)
  3. 【Red Hat 】vim编辑器的常用命令以及使用技巧
  4. 罗美琪和春波特的故事...
  5. 如何自动保存邮件草稿
  6. 在Android中使用FlatBuffers
  7. python import request 不报错_爬虫学习路径整理及安装环境遇到的坑
  8. eazy ui 复选框单选_UI备忘单:单选按钮,复选框和其他选择器
  9. Tomcat架构与原理
  10. opencv中的Mat图使用CDC显示
  11. ptt评论量子计算机,PTT网友热议Nuguri替补:打野下路状态都拉跨不换,先换上路??...
  12. linux用cat建文件,如何使用Linux cat命令
  13. android fastboot 刷机教程,已进入fastboot怎么刷机教程
  14. zynq使用lwip远程更新flash
  15. selenium自动化测试环境搭建及启动safair浏览器(Mac)
  16. MAC 软件安装打不开解决办法
  17. webstorm在哪里设置Ctrl+鼠标滚轮缩放界面大小教程
  18. win11 22H2 连接共享打印机失败
  19. java实验报告系统分析怎么写_20155218 《Java程序设计》实验二(Java面向对象程序设计)实验报告...
  20. 前端实现图片或者视频下载 vue

热门文章

  1. iphone悬浮球怎么设置_OPPO手机怎么截屏?大部分的人只会两种,包括你吗?
  2. java 反射 泛型 构造函数_Java复习——反射和泛型的复习
  3. python 双层for循环_day05-Python运维开发基础(双层循环、pass/break/continue、for循环)...
  4. docx文档怎么排列图片_格式转换太麻烦?仅需一行命令,搞定图片、音频、视频、文本批量转换!...
  5. 【*项目调研+论文阅读】SVM-BILSTM-CRF模型SVM-BILSTM-CRF模型 | day7
  6. 圆环和环形是一样的吗_Excel不知道还可以这样做圆环图
  7. 求生2本地服务器怎么修改参数,《求生之路2》服务器指令及难度参数设置(难度篇).pdf...
  8. tomcat中间件的默认端口号_Tomcat下载安装及配置
  9. 如何根据原理图画封装_如何在短时间内,吃透三极管工作原理,开关导通和封装外形知识点?...
  10. mysql 文卷_mysql数据库试卷