请问unity3d中,那些比较复杂的材质球是怎么做出来的?谢谢啦
发布网友
发布时间:2022-04-30 12:31
我来回答
共3个回答
热心网友
时间:2022-06-23 21:41
这是我在蓝铅笔上面看到的关于材质球的一些技巧。
里面提到的中心要点就是联结(combine),联结,再联结。而对于具体怎么联结他却略过不提,于是只好自己研究。
先解释下联结的原理和意思:文档里说,显卡对于一个含100个面片的物体的和含1500个面片的物体的渲染消耗几乎是等价的。所以如果你有N个同一材质的东西,那么把他们联成同一个物体再统一用一个material那么对于显卡的渲染消耗就要降低N倍。
再讲具体做法,方法有2:
1是直接在max等工具里联结好,贴上同一材质再导进来,这方法固然好却不灵活,而且通常不实用,因为项目里大量同一材质的东西都是unity系统的树啊花花草草啊石头等。
2、就是在unity里再联结,这个要怎么做呢,其实也挺简单的,经常看Island Demo项目的人应该很早就注意到里面的石头这些都是连在一起的,原因就在这里,他提供了现成就脚本实现联结。
先到Island Demo的Assets/Script下找到CombineChildren.cs和MeshCombineUtility.cs两个脚本复制到自己的项目文件(我们要用的只是前者,但他会调用后者,没有后者unity会报错,所以把后者扔到项目里不管就好)
然后把你项目里那些用同一Materials的东西扔到一个空物体里面去,再把CombineChildren.cs贴到那个空物体上,搞定!
下面,我们来看看这个神奇的脚本帮我们做了什么工作,运行游戏之前,见图1,Island Demo就是按上述方法做了个_RocksCombined的东西,上面只贴着这个脚本,他里面全是岛上个一块块小石头,用的是同一个Materials
运行游戏后,神奇的事情发生了。
这个_RocksCombined上面出现了一个Combined Mesh,并带有他里面石头的Material,他里面的小石头的MeshRenderer的钩都自动去掉了,即被disable了。
这就是这个脚本自动帮我们做的优化方法,实现了对同材质物体的联结,从而降低了系统开销。
热心网友
时间:2022-06-23 21:41
自己写的shader,要会计算机图形学,会cg语言
热心网友
时间:2022-06-23 21:41
用Unity的Shader 语言写出来的。
请问unity3d中,那些比较复杂的材质球是怎么做出来的?谢谢啦
1是直接在max等工具里联结好,贴上同一材质再导进来,这方法固然好却不灵活,而且通常不实用,因为项目里大量同一材质的东西都是unity系统的树啊花花草草啊石头等。2、就是在unity里再联结,这个要怎么做呢,其实也挺简单的,经常看Island Demo项目的人应该很早就注意到里面的石头这些都是连在一起的,...
unity3d 一个物体如何赋予多个材质球?
当导入的模型有多重材质时,unity3d中也会对应有多个材质球。当然您也可以在unity3d中将物体的Materials-Size设为大于1的数,然后赋予多个材质,但是这样显然不会得到预期的效果。
关于unity3d的材质球的问题?
探讨Unity3D材质球问题,首先,导入FBX模型时,右侧面板通常会提供导出材质的选项,导出后即可进行编辑。在操作过程中,有几点需要注意。通常,FBX模型导入到场景中会自动以预制件(prefab)形式存在,这种情况下,若先解开了预制件的关联,再进行材质导出,可能会引起场景中物体材质的丢失。解决办法包括重新指...
unity3d怎么给物体上材质球,贴图
给物体上材质球:有两种方式,一种是把制作好的材质球拖到Scene面板中的物体,另一种是把制作好的材质球拖到Hierarchy面板中的物体。
UNITY3D 导入模型的问题!!!
对于这样的情况,我建议在资源窗口中找到贴图文件,然后拖拽到模型相应位置,使之生成材质球。至于动作,我看到你的资源中有.tga和.jpg的文件,并未看到动画文件。如果有动画文件,可以试试看先加上一个animation的组件,然后把相应的动画拖拽到组件上就好了。以上只是我个人见解,如果不正确,请看到的人...
unity3d里面的序列帧动画怎么做
贴图选同一个材质球,然后build atlas 就会在一张图片上了
unity3d 如何代码修改某个shader的颜色
1.打开软件,新建工程如下图所示。点击创建工程按钮。2.在层级面板中穿件Cube,在项目面板鼠标右键中创建材质,如下图所示 3.在项目面板下创建脚本文件,如图所示 4.双击脚本文件打开,编写代码如下 5.创建标准shader,如下图所示 6.并将创建的shader替换给Cube对象 7.双击打开5中创建的Shader文件,...
unity怎么在材质球的贴图上添加更多的图案
添加方法如下:1、在项目面板中选择资源文件夹,右键单击资源文件夹,单击创建选择材质。2、将贴图添加到着色器:在计算机中选择所需的图像,将图像拖动到项目面板中的资源文件夹中。3、选择创建的材质球,在检查器面板中找到反照率属性,单击该属性左侧的小圆弹出一个窗口。只需在弹出窗口中选择unity3D...
现在学unity3D以后找工作如何,前途怎样
Unity3D具有许多关键模块,如碰撞检测、射线投射、动画、移动控制以及材质球等,这些都是基础但重要的概念。此外,Unity3D能够跨平台打包,这意味着你可以使用它来创建可以在多个平台上运行的游戏,包括安卓系统。这需要对安卓SDK有一定的了解。在游戏开发领域,除了Unity3D,还有其他游戏引擎,例如虚幻4(UE4...
【Unity3D】URP中的打包资源加载
一般解决方式,是Edit/Project Settings/Graphics,将Shader加入到Always Includes Shaders中,我不喜欢这种方法,因为Always Includes Shaders一般是加载那些Hidden Shader的。所以我是新建一个材质球引用Shader,并把材质球拖到需要用到的位置。 值得注意的是,URP中的Shader...