当前位置: 首页 > news >正文

Unity Render入门

概述

在unity中渲染相关的组件是和Render关联的,比如我们常见的3D模型中的MeshRender,UI中的RenderCanvas等都是和Render相关联的,相信在unity的学习过程中,一定看到过非常多和Render相关的内容,那让我们学习一下这部分把。


Unity组件入门篇总目录----------点击导航


FlareLayer

  • 说明:这个内容我在Unity LensFlare入门中介绍过,注意点,这个组件必须依赖于相机,必须挂载在相机上,主要是配合LensFlare的使用。

LOD(多细节层次)

  • 说明:相信在性能优化的时候一定少不了LOD的身影,LOD是什么意思呢,LOD(Level Of Detail)多层级细节渲染,就是按照距离来渲染不同的模型因为在实际的游戏中,在远处的模型,玩家是看不清楚的,所以也不需要很精细的模型,但是在渲染的时候,计算机是会全部计算渲染的,这是不必要的,所以就有了LOD的技术,当远处玩家看不清的时候,用个很简单的模型就行,当玩家靠近的时候,再切换更加精细的模型,对玩家的体验感没有太大的影响,但是对GPU性能的优化是非常巨大的,可以减少非常多的渲染压力,这样就有更大的容错,可以为项目添加更炫酷的效果。
  • FadeMode:过度模式,node:不做任何处理,Cross Fade渐变过度:使用这个的时候模型要支持透明度,不然会出现渲染出错的样子,SpeedTree,该模型仅用于两个LOD混合的模式下。

OcclusionArea(遮挡区域)

  • 说明:这个组件一般都是和Occlusion窗口(WIndow->Render->Occlusion Culling)一起使用的,注意,这个区域要把摄像机包含进去。
  • Size:遮挡区域大小
  • Center:遮挡区域中心点
  • IsViewVolume:是否启用遮挡剔除

Occlusion Portal(遮挡剔除)

  • Open:是否开启遮挡剔除
  • Size:遮挡区域大小
  • Center:遮挡区域中心点

Light(灯光)

  • Type:灯光的类型,Directional:平行光,也就是模拟太阳光,Spot:创建一个射灯Point:点光源,类似于一盏灯,Area:面光,创建一个平面的光,在房间灯光效果的时候经常使用。这个仅烘焙有效。
  • Color:灯光的颜色。
  • mode:灯光的渲染模式,是实时渲染还是烘焙渲染,在Windows->Rendering->Light中打开灯光控制窗口,点击Generate Lighting就可以构建光照,注意点,构建光照的物体一定是静态的才可以,即勾选物体右上方的Static。
  • Intensity:强度,灯光的强度
  • Indirect Multiplier:间接光的强度。这个我查了很多资料,道理是控制反射光的强度,学过建模的同学可以比较清楚,在材质有有漫反射和镜面反射的区别,我们能有看见阳光没有直射的物体是因为漫反射的原因,原理是物体的表面并不是完全平整的,光线照射的时候,方向就会被反射到各个方向,反射后再反射,就可以让没有内光直射的物体也接受到光照,如果理解了的话,那这个参数就是控制这个“反射再反射的强度的”注意点:这个参数经用于平行光,当使用其他类型光的时候设置设参数的时候会有一个警告。但是你直接设置这个参数是没有作用的,这是为什么呢,这个漫反射的计算必须要是静态的物体才行,不过当你全部设置成静态后,还是没有效果,还有个重要的点,你得在Light窗口(上述有打开方式)中打开Realtime Light中的Realtime Global Illminationc并且点击Generate Lighting,这时候设置这个参数就可以发现可以控制漫反射的强度了。(使用起来注意点比较多,所以解释的比较多)
  • Show Type:阴影类型,Hard Shadow:阴影的边界比较生硬,额,也就是方法正正的,设置一下就明白了,Soft Shadow:这个的阴影边界就比较柔和。
  • Cookie:烘焙图,可以烘焙一张图到目标上
  • Size:图的比例
  • Draw Halo:渲染光环,设置一下就明白了(点光源会比较明显)
  • Flare:炫光效果,模拟光的炫光效果,这个我在LensFlare中介绍过,感兴趣的了解一下把
  • Render:渲染模式
  • Culling Mask:剔除遮罩

Light Probe Group(光照探针组)

  • 说明:这个组件有什么用呢,我们想,烘焙光照是必须静态物体才可以,但是如果我们想动态也想有这样效果呢,所以Unity给我们提供了Light Probe Group 光照探针组,这个就可以根据探针收集的信息,渲染在你的动态的模型上
  • Show WireFrame:显示线框(试试就知道了,这个可以显示反射探针之间的线框)
  • Remove Ringing:移除错误的显示,解释一下“Ringing”在官方文档中解释到,是出现了一些不符合预期的显示,在文档中有示例的图,比如说,有一面墙,一侧有光,另一侧没有,可以会有穿过墙壁的光点出现,这个是我们不希望的,总的来说,启用会保证渲染的正确性,当时因为去除了一下不正确的显示,会导致精度有一定的丢失,不启用会导致可能出现渲染出错,但是精度会高一些,可以根据实际情况做调整,选择启用还是不启用。
  • Exit Light Probe Editing:退出光照探针编辑器,也就是编辑光照探针的点,选中的时候会高亮,再次点击会取消选择。
  • Add Probe:添加一个点
  • Select All:选择所有的点
  • Delete Selected:删除选择的点,和按钮Delete作用一样
  • Duplicate Selected:复制当前选择的点,和按键Ctrl+C作用一样
  • Selected Probe Position:当前选中的点的位置

Light Probe Proxy Volume(光照探针代理)

  • 说明:当模型非常巨大的时候,而且假如还在移动,这时候设置Light Probe Group的点显然就不现实了,那全场景的加点,那得加到那年去了,所有为了解决这个问题,Unity提供了代理光照探针的这个组件,这个组件直接挂载在指定的物体上就行,重点:设置你Render组件上LightProbes为UseProxyVolume!!
  • Refresh Mode:刷新模式
  • Quality:质量
  • DataFormat:数据格式
  • BoundingBoxMode:盒子范围模式
  • ProxyVolumeResolution:代理分辨率
  • ResolutionMode:分辨率模型
  • Density:密度
  • ProbePositonMode:光照探针位置模式

ReflectionProbe(反射探针)

  • 说明:上面的内容说到了光照探针,那反射探针主要的当时是"反射"了,什么物体会发生反射呢,比如镜子,金属等等会发生反射,当我们需要使用这些效果的时候,那就需要ReflectionProbe出场了,Hierarchy窗口右键Light中就有这个效果,添加后有个范围,包裹住你想反射环境的部分,然后记得环境部分得设置成静态的,然后点击烘焙就可以了,再添加一个测试的物体,自定义一个材质球,把金属度和光滑度都设置成1,就可以看见镜面反射了。
  • Type:设置当前反射探针的模式,Baked:烘焙模式,Custom:自定义模式:Realtime:实时刷新模式
  • Importance:优先级,当反射探针相互覆盖的时候,判定优先级
  • Intensity:强度
  • BoxProjection:盒子模式,这个使用于平面反射,比如一个盒子
  • BlendDistance:混合距离。当反射区域和其它探针混合的时候,设置混合距离,仅用于延迟探测
  • BoxSize:探测范围的大小
  • BoxOffset:探测范围的偏移值
  • Cubemap Capture Settings:捕获立方体贴图
  • Resolution:分辨率
  • HDR:启用高清渲染模式
  • ShadowDistance:阴影距离
  • ClearFlags:指定用什么内容填充空的区域,(设置一下就明白了,因为探测的范围是有限的,没有探测的范围用什么填充需要指定一下)
  • BackgroundColor:背景颜色(对ClearFlags设置固定颜色有用)
  • CullingMask:清理遮罩
  • OcclusionCulling:遮挡剔除,(可以参考一下我写的OccluaionArea的内容,就是剔除不在屏幕内的模型)
  • Clipping Plane:裁剪平面

SkyBox(天空盒)

  • CustomSkybox:自定义天空盒子,指定一个你想替换的材质球(注意点,一定要挂在相机上

SpriteRender(精灵渲染)

  • Sprite:指定一张你想渲染的图,注意是精灵格式的
  • Color:颜色
  • Flip:快速翻转模型,指定一个轴,图片按这个轴快速翻转
  • Draw Mode:绘制模式
  • MaskInteraction:指定一个遮挡交互的层
  • Sprite Sort Point:决定了排序时候的位置
  • Material:用于渲染的材质球
  • SortingLayer:分类层
  • OrderInLayer:在同层中的排序

SortingGroup(分类组)

  • 说明:这个组件是和SpriteRender配合使用的,在UI中我们是可以通过Hierarchy窗口中的层级顺序来控制那些UI应该显示在前面还是在后面,但是在SpriteRender中却没有,所以Unity为我们提供了SortingGroup的组件,他可以把一个层级中的Sprite排序,按排序顺序渲染,就是把Sprite打成一个一个的组,然后按照组的顺序来渲染,不理解的话可以留言告诉我,我后面单独出一下这部分的教程。
  • Sorting Group:排序组的名字
  • Order in Layer:排序ID,也就是在同一个排序组下的优先级
  • Sort At Root:这个会忽略父组的影响,直接从根节点排序

StreamingController(控制流)

  • MipMapBias:设置纹理金字塔的偏移值(Mipmap是一种游戏性能优化得劲技术,它是通过相机生产一套缩小版的纹理,在远离相机的时候使用,既可以节约性能,又可以解决贴图的锯齿感)增大偏移值可以节约性能,增大这个值也就是增大MipmapLevel,Level0也就是原始纹理,Level1,就是缩小一倍的纹理,以此内推。

CanvasRender(画布渲染)

  • 说明:这个组件是UI渲染的条件,和meshRender在模型渲染的时候的重要性一样,了解一下就行,因为添加UI的时候会默认为你添加上的。
  • Cull Transparent Mesh:剔除透明的网格,当某些顶点的颜色通道接近于0的时候会剔除对于的顶点。

作者的一点废话 

Unity Render的内容比较多一点,后面会更新补齐的,周末会更新快一点。

如果帮助到你就请点个赞吧,你的支持是我创作的动力!!
日志:
2024年5月15日 23:39//上传Unity Render的内容

2024年5月17日 23:39//添加了Ligh的内容

2024年5月18日 17:45补充完剩下的内容

2024年5月20日 19:04修改添加了部分内容

相关文章:

  • cuda 内核启动
  • 前端基础入门三大核心之HTML篇:探索WebAssembly —— 开启网页高性能应用新时代
  • 成都爱尔胡建斌院长提醒近视超过600度,记得每年检查眼底!
  • excel转pdf并且加水印,利用ByteArrayOutputStream内存流不产生中间文件
  • attributes.nodeName和attributes.nodeValue有什么区别(代码举例说明)
  • rust的版本问题,安装问题,下载问题
  • SpringCloud微服务调用的超时机制和CompletableFuture异步调用的超时机制原理一样吗?
  • 【Linux】-Elasticsearch安装部署[16]
  • 12、Go Gin使用JWT实现认证机制
  • 晶体振荡器
  • go routing 之 gorilla/mux
  • Flutter 中的 AnimatedPhysicalModel 小部件:全面指南
  • 设计模式 15 Decorator Pattern 装饰器模式
  • 【LeetCode算法】第69题:x的平方根
  • linux mail命令及其历史
  • __proto__ 和 prototype的关系
  • 【css3】浏览器内核及其兼容性
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • export和import的用法总结
  • HTML5新特性总结
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • javascript面向对象之创建对象
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • React Transition Group -- Transition 组件
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 前端代码风格自动化系列(二)之Commitlint
  • 如何解决微信端直接跳WAP端
  • 手机端车牌号码键盘的vue组件
  • 用jquery写贪吃蛇
  • mysql面试题分组并合并列
  • NLPIR智能语义技术让大数据挖掘更简单
  • Spring第一个helloWorld
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​Linux·i2c驱动架构​
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #1014 : Trie树
  • #define与typedef区别
  • #pragma pack(1)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (4)事件处理——(7)简单事件(Simple events)
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (四)React组件、useState、组件样式
  • (转)EOS中账户、钱包和密钥的关系
  • (转载)Linux 多线程条件变量同步
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端