unity最大像素unity3d灯光教程个数哪里设置

unity3d Texture2d如何设置图片的像素颜色_百度知道
unity3d Texture2d如何设置图片的像素颜色
提问者采纳
我记得是。然后。 这些都是调用的Texture2D类方法、像素块。完成修改。得到的是一个color或者color[]。Setpixel录入你修改的数据,可以轻松解决,获取某一个点.Getpixel接口楼上错误,Apply。希望对你有帮助、区域的像素。 建议楼主去看看相关Texture2D的接口方法。这个是设置材质球的颜色。你进行编辑之后
他说要先设定可以读出图片文件的设置,我都不知在哪里。否则Getpixel无效
你首先要给Texture2D
实例化,否则你读啥数据啊?也就是你要有图片目标,将其转换成Texture2D类,再操作
不是那个意思,我把它弄成一个public Texture2D 变量,然后再面板里拖一张图片进入,但是用Getpixel命令时报错。文档中说这个纹理需要在导入设置里设置为Is Readable(可读),否则此函数将会无效。
噢。那就是你的图片导入设置的问题了。你要设置格式为Advance,然后,Write/Read(好像是这个哈)打上勾吧?就可以编辑图片了。 这样的话,你需要注意。一旦程序改变了图片,那么图片资源就真的被改变了,无法恢复。你可以备份之后,测试。 有问题留言。我先出去了。。。
提问者评价
其他类似问题
为您推荐:
其他1条回答
Color._SpecColor&quot.SetColor ("或者renderer.material.color = Color.redrenderer.red );
这个是设置图片整体颜色,我只要设置某一部分
您可能关注的推广
unity3d的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁当前位置: >
Unity3D美工需要知道的知识
时间: 12:02 来源:互联网 作者:网络 浏览:
Unity3D美工需要知道的知识1.引擎没有说具体的面数限制,按机器性能而定。2.导入图形或者MESH的方法无非两种,一种是直接拷贝到文件目录下的Assets文件夹下面,Unity3d引擎会自动找到添加的文件,并且能在PROJECT面板中找到它。另一种是我们在PROJECT面板中用右键菜单,导入素材。当然,我是用MAYA导入的,U3D引擎对于MAYA的支持还是不错的,但是也需要注意,不要用中文的目录结构,最好直接从MAYA的工程文件夹中导入,最好在导入MESH前先吧贴图文件放到相应的文件夹,或者相关文件夹的子文件夹。在我们导入场景文件的时候,需要在导入设置中勾选创建碰撞,这样导入的场景我们就可以踩在上面了。(这跟我们添加碰撞组件是有些不同)3. Unity3d引擎支持大多数常用的贴图,比如漫反射贴图,高光贴图,法线贴图。如此一来,它就成了一个名副其实的次时代引擎了。当然与UNREAL引擎的强大材质编辑器不同,U3D引擎主要是编辑材质的方式是使用一种专门的语言,类似于CgFX和Direct3D的语法。当然如果不是专门的图形程序员,我们只要掌握相关的SHADER的使用方法就可以了。在我们安装完U3D引擎后,系统自带的SHADER足够我们日常大多数情况下使用了。如果我们还有特殊的要求,可以去官网上下载相关的程序,然后把代码保存为&.shader&的文件,放到相应的目录底下,然后我们就有了这种SHADER。&掌握并且理解了上面我说的三点,你就可以作为一个U3D引擎的美工开始工作了。其中有几个需要我们进行深入探讨的几个方面:一是导入的MESH的要求,如何减面,UV的情况怎样,是否可以重叠UV。&二是导入的贴图规范,我们的各种贴图要达到怎样的程度才能导入,并不是直接拍了照片贴上就很有效果的,我们需要在三维软件中烘焙,之后才能导入。还有光照贴图怎么制作。&三是各种材质的应用,比如说我们最常用在皮肤上的3S材质效果,如何在U3D引擎中实现这种效果?至此,你可以轻松的驾驭U3D引擎的Assets部分了。然后我们要用引擎构建关卡。好吧现在你要成为一个U3D引擎的关卡设计师,当然这里面也有很多美工要做的事情。我们不用每天对着素材模型,贴图骂娘了。作为关卡设计师,特别是U3D的,一定要有一个GAME OBJECT的概念,在这个可爱引擎中,我们可以看到各种的元素都是由GAME OBJECT组成的,在GAME OBJECT上我们又可以添加组件在实现特定的功能,比如最简单的位移。我在第一次使用这个引擎的时候,突然兴致大发想要在场景中创建一盏灯,弄了半天都没成,后来才明白,灯光是要附着在GAME OBJECT上的。同理,声音也是要附着在这上面的。还要有一个PREFABS得概念,就在层级菜单中的蓝色文字所代表的属性,其实就是在游戏中可以无限复制的意思,比如子弹,比如无数的需要出现的小物件儿。类似于三维软件以及其他引擎,U3D的灯光分为那么普通的几类,电光源、方向光、自然光。了解灯光的属性和使用方法。还有U3D引擎的物理系统。当我看到这个系统的时候我的心都开花了,一想到各种独立游戏中无敌的物理效果心里就暗爽。比如我们可以用最简单的方法做一个足球游戏。&还是做游戏好,这个引擎能做网页游戏,也可以做PC单机游戏,网络游戏,也可以做IPHONE平台的手机游戏。真是万能了!当然,上面很多都是初学时候的经验,下面是我后来加上的一些内容,是经过学习总结和辛苦翻译的。让你的游戏能够顺畅的运行是成功的第一个要求。感谢UNTIY,他们通过大量的优化和调整可以让这个引擎发布的游戏运行于各种不同性能的硬件系统。下面是一个通用的优化游戏性能的方法。&如果你比较关心游戏的速度,请合并模型。最好能够把合并的模型使用同样的材质和贴图。Rendering Statistics(渲染静态网格)窗口时很有用的!现在的图形显卡可以很好的支持很多的多边形,但是他们他们还是有一些瓶颈的。所以如果你有一个有100个三角形的MESH,它渲染起来所需要花费的运算跟1500个面数的物体是没有多大差别的。因此最佳的渲染设置时每个模型大约个三角面。只有在游戏组件中的属性栏中勾选Mesh Renderer选项显卡才会渲染相应的模型,并且在场景中的空的GameObject组件是不会被渲染的。所以再次重复,最好的导入渲染设置时合并Objects直到他们每个模型在1500个三角面面甚至更高一些,并且为整个模型使用一个材质。如果只是把两个模型合并在一起但是不共同使用同一个材质并不会给你的图形带来一点优化。如果你想有效的合并物体,你需要保证你合并后的模型使用一个材质。(其实就是尽量减少材质球的数量)在你合并物体的时候需要知道一件事:如果你在你的场景中用到了很多小的灯光,你可以把场景中离得很近的物体合并为一个Object。按照上面的思路,如果一个MESH具有多个材质球,那就说明在计算机渲染的时候是要进行多重运算的。最普遍的你之所以一个MESH用多个材质的原因是因为两个材质不能使用相同的贴图。所以如果你想要优化渲染设置,你最好确定你合并的那些MESH的材质是相同的。Unity对于向显卡导出各种多边形是很擅长的,它可以很详尽的把所有的图形导入到显卡,并且优化数据。你需要做的只是确定你的图形显示卡正常工作。而不是要调整很多手动调节的设置。The number of Pixel Lights affecting an object heavily affects performance.&相当数量的实时灯光对于游戏速度也是有限制的。如果你想要有一个不错的展示,并且不关心凹凸贴图和实施灯光(Bumpmapping or Pixel Lighting),可以去Edit-&Render Settings...然后设置Pixel Light Coun为0.这将会给所有的Object使用顶点灯光。这将会让所有的物件在每一帧都会被渲染一次。这是一个比较极端的LOD设置,所以你的游戏就可以再比较老的图形显卡下运行了。Pixel lights&像素灯光如果你使用的是像素灯光,那么每个被这个灯光照射到的GameObject都会在每一帧被渲染一次。如果你合并了两个距离很远的物体,他就会增加物件的大小,然后你就会需要一些灯光来照亮这些物体。如果你的物件是分开的,灯光将不会渲染远处的物体,这将会导致模型得到多次渲染,相比较没有被合并的模型,我们并没有得到多少实惠。因此,如果你的GameObject中有很多独立物件的时候,你可以让他们离得比较远。当渲染一个模型的时候,UNTIY如果发现很多灯光在MESH的周围,它将会找出那个是主要影响这个MSEH的灯光,在Edit-&Render Settings中的设置就是用来调整有多少个灯光最终作为像素灯光有多少作为顶点灯光。每一个灯光通过计算离MESH得距离和自己灯光强度来决定自己的重要程度。在游戏中的某些灯光是很重要的,所以,每一个灯光都会有一个Render Mode设置,这个用来设置哪一个可以被用来设置为Force Pixel&或者&Force Vertex.想象一下假如我们是一个驾车的游戏,你的角色在夜晚打开车灯,前面的车灯就是游戏中最重要的灯光。因此,前大灯的渲染模式将会被设置为Force Pixel当然如果你有一个不是很重要的灯光,也是选择使用&Force Vertex&的渲染模式,这个方式也不会对游戏的速度有很大的影响的。影子阴影普遍运算量比较大。如果运用得当,可以让游戏画面出色,你也可以乐队相关文档。角色建模优化你的角色应该只被用于一个蒙皮模型渲染器。当然有时候可能需要多个蒙皮的模型,但是如果你同时用两个蒙皮来作为一个角色,它就相当于你进行了两个角色的运算量。&你同样需要保持MESH的材质数量尽可能低。一般建议身体的材质数量为2-3个,当然如果你有武器的材质,也是需要单独一个的,因为你需要换武器。&减少骨骼的数量,一般来说游戏中的骨骼数量为15-60个。骨骼越少运行速度越快,一般来说30块骨骼就可以让角色动的很舒服了。如果你不是有特殊的设置,我们强烈建议每个角色30个骨骼。&&&&&多边形的数量主要是看你对游戏的质量要求,500-6000个三角面是比较推荐的。如果你的游戏场景中将会出现多个角色,那么就要适当的降低一下多边形数量了。如果你想要在比较老的机器上运行,你需要更少的多边形数量。比如,半条命2游戏的角色通常是个三角面。达到AAA标准的次时代游戏比如像是PS3或者XBOX360上的游戏角色通常有个三角面。&&&把IK控制器和FK控制器分离,当动画导入以后,IK的节点将会烘焙到FK上,其实UNITY并不需要IK节点,你可以删除它们。&&&&&创建一个公共的骨架,这样就可以让你让不同的角色之间共享动作了。&给每一个骨骼正确的命名,方便团队工作,也方便类似于Motionbuilder的动作软件,不然你得每次指定骨骼。优化综合的图形卡&优化模型参数&使用尽量少的面&&& UV接缝的数量尽可能少&烘焙灯光烘焙灯光到光照贴图或者到顶点颜色。MAYA具有不错的制作光照贴图的工具,UNITY可以从MAYA中导入第二个UV贴图或者顶点颜色。制作环境的光照贴图的流程要比直接在场景中打灯光要繁琐的多,但是运行速度明显增快。&如果你使用全局光并且平滑光照贴图,可以让画面效果明显增强。&甚至次时代游戏比如战争机器始终在很多方面使用光照贴图。通常他们在场景中使用光照贴图,然后在上面放置一个动态灯光。在UNITY中也可以制作相应的光照贴图Shader.
(责任编辑:雷霆风)
免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
猜你也喜欢看这些 ??????
其他类型的Unity美化 ??????查看: 1416|回复: 0
最后登录注册时间阅读权限90积分30564
资深设计师, 积分 30564, 距离下一级还需 19436 积分
纳金币30850 精华62
优化图形性能良好的性能对大部分游戏的成功具有决定作用。下面是一些简单的指导,用来最大限度地提高游戏的图形渲染。
图形需要哪些开销游戏的图形部分主要开销来自电脑的两个系统: GPU 或 CPU。优化的第一条原则是找到性能出现问题的地方;因为 GPU 和 CPU 的优化策略不尽相同(甚至可能截然不同 — 因此,通常在优化 CPU 的时候会给 GPU 带来更多工作,反之亦然)。主要瓶颈以及检查瓶颈的方式:GPU 通常受供给比率或内存带宽的限制。
以更低的显示分辨率运行游戏是否更快? 如果是,您极有可能受到了 GPU 上的攻击比率限制。
CPU 通常受需要渲染的对象的数量限制,又称“绘制调用”。
在渲染统计信息 (Rendering Statistics) 窗口中查看“绘制调用”,如果数值超过数千(电脑)或数百(手机),那么您可能需要优化对象数量。
当然,这些只是经验法则;瓶颈也可能存在于其他地方。非主要瓶颈:渲染不是问题,不管是对 GPU 还是 CPU!例如,您的脚本或物理可能是问题的根源。使用分析器 找出问题所在。GPU 需要处理的顶点过多。多少个顶点比较“适中”取决于 GPU 以及顶点着色器的复杂程度。对于手机来说,主要图形“不应超过 10 万个”,电脑则“不应超过 1000 万个”。CPU 要处理的顶点过多,因为这些对象要在 CPU 上进行顶点处理。这可能是蒙皮网格、棉布仿真、粒子等。
CPU 优化 — 绘制调用数量为了渲染屏幕上的所有对象,CPU 任务艰巨 — 这些工作包括识别哪些光照效果会影响对象,设置着色器和着色器参数,向显卡驱动发送调用命令,然后显卡驱动准备将命令发送至显卡。所有这些“逐对象” CPU 开销都不小,因此,如果您拥有大量可见对象,它可以累计。例如,如果您有 1000 个三角形,如果所有三角形都在一个网格内,而不是 1000 个独立的网格分别拥有一个三角形,那么,成本将明显降低。
这两种情况在 GPU 的开销非常类似,但是 CPU 渲染 1000 个对象(而不是一个)需要进行非常繁重的工作。为了减少 CPU 的工作,最好减少可见对象的数量。手动或使用 Unity 的绘制调用批处理将邻近的对象组合在一起。通过将独立的纹理放在更大的纹理地图集等操作,在对象中使用更少的材质。尽量避免使用会导致对象多次渲染的效果(反光、阴影、逐像素光照等,如下所示)。
将对象组合起来,让每个网格至少拥有数百个三角形,且每个网格仅使用一种材质 (Material)。组合两个材质不同的对象不会给性能带来任何的改善,理解这一点非常重要。拥有多种材质最常见的原因是两个网格不共享相同的纹理,因此,如果要优化 CPU 性能,应该确保组合的所有对象共享同样的纹理。但是,在正向渲染路径中使用大量像素光照时,有一些情况会使得合并物体不奏效,解释如下。
GPU: 优化模型几何体在优化模型几何体时,有两条基本规则:切勿使用过多的三角形尽量降低 UV 贴图接缝和硬边缘的数目(顶点增加一倍)
请注意,图形硬件处理顶点的实际数量通常和 3D 应用程序显示的数量有所不同。建模应用程序通常显示几何顶点的数量,例如构建模型不同角点的数量。但是,对于图形卡,将需要一些几何顶点拆分成两个或两个以上的逻辑顶点来渲染。如果顶点有多个法线、UV 坐标或顶点颜色,则必须分割。因此,在 Unity 的顶点计数始终比 3D 应用程序计数高很多。虽然模型中的几何体的总数主要与 GPU 相关,Unity 的某些特性可以在 CPU 上处理模型,例如,网格蒙皮。
光照性能完全不需要计算的光照始终是最快的!使用光照贴图 “烘焙”一次静态光照,而不是逐帧计算。生成光照贴图环境的过程仅比在 Unity 将光照直接放置在场景稍微长一点点,但是:它的运行更快(2 种逐像素光照快 2-3 倍)由于可以烘焙全局光照,且光照贴图渲染器可以使渲染结果更光滑,因此,它的视觉效果更好。
在很多情况下,这是着色器和内容可以使用的简单的技巧,而无需在场景中添加更多的光照。例如,您无需添加直接照射至相机的光照,取得“边缘照明”效果,只需直接在着色器中添加专门的“边缘照明”计算即可。
正向渲染光照逐像素的动态照明将显著增加每个受影响的像素的渲染开销,并可能导致对象多次渲染。在硬件较弱的设备上,如手机或低端 PC GPU,应避免多于一个像素照明 (Pixel Light) 照亮任何单一物件,并尽量使用光照贴图照亮静态物体,而不是逐帧计算其光照。逐顶点的动态照明显著增加顶点转变的开销。尽量避免多个灯照亮任何给定物体。如果使用像素光照,那么,每个网格渲染的次数和被像素灯照亮的次数一样。如果结合两个距离较远的网格,就将增加组合物体的有效大小。照亮这个组合物体的任何一部分的所有像素灯都会在渲染过程中计算,所需的渲染通道数量也会增加。一般而言,渲染组合物体的通道数量是每个单独物体的通道数量之和,因此,组合不会有任何好处。出于这个原因,您不应组合距离较远而不会同时受到不同像素灯影响的网格。在渲染时,Unity 找到了网格周围的所有灯光,并计算出哪些灯光对网格具有最大的影响。质量设置 (Quality Settings) 用来修改最终成为像素光照的灯光数量,以及顶点光照的数量。每种灯光都会按照灯光与网格的距离,以及灯光的强度计算其重要性。此外,仅从游戏环境来看,某些灯光更为重要。因此,每种灯光都可以设置渲染模式 (Render Mode) 为重要 (Important) 或者不重要 (Not Important)。标记为不重要 (Not Important) 的光照通常具有较低的渲染开销。举个例子,试想一下一款赛车游戏,玩家的汽车打开车头灯在夜间行驶。车头灯是游戏中最重要的光源。因此,它们的渲染模式 (Render Mode) 应设置为重要 (Important)。另一方面,在游戏中其他不那么重要的灯(如其他汽车的尾灯),即使成为像素灯也不会很大地提升游戏的视觉效果。此类灯光的渲染模式 (Render Mode) 可放心设置为不重要 (Not Important),避免在不能改善游戏的地方浪费渲染性能。优化逐像素光照可同时节约 CPU 和 GPU: CPU 的绘制调用更少,GPU 要处理的顶点更少,且所有这些额外的对象渲染需要的点阵化像素更少。
GPU: 纹理压缩和 Mipma使用压缩纹理 (Compressed Textures) 可以减少纹理的尺寸(使加载时间更快,内存占用更少),同时也可以显著增强渲染性能。压缩纹理仅使用未压缩 32 位 RGBA 纹理所需的内存带宽的一小部分。
使用 Mip Maps 纹理根据经验,三维场景中使用的纹理应始终启用生成 Mip Maps (Generate Mip Maps)。在 GPU 渲染时,纹理压缩可以以同样的方式帮助限制纹理数据传输量,mip 贴图的纹理让 GPU 能让较小的三角形使用较低分辨率的纹理。此规则的唯一例外是当 texel(纹理像素)1:1 映射到渲染屏幕像素时,如 UI 元素或二维游戏中。
LOD 和每层消隐距离 (Per-Layer Cull Distances)在一些游戏中,可能更多地要剔除小对象,以减少 CPU 和 GPU 负荷。例如,在足够远的距离内,大型建筑物依然可见,而小石块和碎片可以隐藏。这可以通过细节层次 系统或在相机上手动设置每一层的消隐距离实现。可以将更小的对象放在隔离层中,并使用 Camera.layerCullDistances 脚本功能设置每层消隐距离。
实时阴影实时阴影非常精美,但是它们可能消耗大量性能,不管是 CPU 的额外绘制调用,还是 GPU 的额外处理。
GPU: 编写高性能着色器的技巧高端 PC GPU 和低端移动 GPU 的性能可能有天壤之别。就算单个平台同样如此。在 PC,高速 GPU 的运行速度可能比迟钝的集成 GPU 快几十倍;在移动平台上,您也会发现 GPU 大有不同。因此,请记住,移动平台和低端 PC 的 GPU 性能比您的开发机器要慢得多。一般来说,着色器需要手动优化,以减少计算和纹理读取,获得良好的性能。例如,一些内置 Unity 着色器的“手机”等价物更为快速(但是有一些限制或极限,这也正是其快速运行的原因)。以下是一些指导,让您了解哪些因素对于移动和低端 PC 显卡最为重要:
复杂的数学运算复杂的数学函数(如 pow,exp,log,cos,sin,tan 等等)会大大增加 GPU 负担,所以一个好的经验法则是,此类运算在每个像素中不得超过一个。考虑在合适时使用查找纹理作为替代选择。但是,我们不建议您编写自己的 normalize,dot,inversesqrt 等运算。如果使用内置运算,驱动程序会为您生成更好的代码。请记住:alpha 测试(抛弃 (discard))运算会让片段速度变慢。
浮点运算编写自定义的着色器时,应始终指定浮点变量精度。为获得最佳性能,挑选精度尽可能小的浮点格式至关重要。很多台式机 GPU 均完全忽略运算精确,但是它对于大量移动 GPU 的性能具有重大影响。如果着色器使用 Cg/HLSL 编写,那么精度规定如下:float — 完整的 32 位浮点格式,适合用于顶点变换,但性能最慢。half — 简化的 16 位浮点格式,适用于纹理 UV 坐标且比 float 大约快两倍。fixed — 10位定点格式,适合色彩、照明计算和其它高性能操作,速度大约比 float 快 4 倍
如果着色器以 GLSL ES 编写,那么浮点精度将分别规定为 highp、mediump、lowp。
让游戏速度更快的简易检查表保持顶点数在 200K 以下,针对 PC 时每帧应为 3M,主要取决于目标 GPU。若使用内置着色器,请在移动 (Mobile) 或未点亮 (Unlit) 的类别中选择。它们对非移动平台同样有效,但是是更复杂的着色器的简化和限制版本。每个场景中不同材质的数量尽可能少 — 不同对象之间尽可能共享相同的材质。在非移动对象上设置静态 (Static) 属性,允许静态批处理 (static batching) 等内部优化。切勿在不必要的情况下使用像素灯 — 选择只有一个(最好是方向光)像素灯的光线影响您的几何图形。切勿在不必要的情况下使用动态光源 — 而应选择烘焙照明。可能的话使用压缩纹理格式,否则使用 16 位纹理优于 32 位。切勿在不必要的情况下使用雾效。了解遮挡剔除 的好处,在有大量遮挡的复杂静态场景中,可以用它来减少可见几何体的数量和绘制调用。计划您的关卡,以充分利用遮挡剔除。使用天空盒制造“伪造”的遥远几何体。使用像素着色器或纹理组合器混合多种纹理,而不使用多通道方法。如果编写自定义着色器,应始终使用最小的浮点格式:
fixed / lowp — 用于颜色、光照信息和法线,half / mediump — 用于纹理 UV 坐标,float / highp — 避免在像素着色器中计算顶点的位置,而应使用顶点着色器。
在像素着色器中尽量避免使用复杂数学运算,如 pow、sin、cos 等。每个片段中使用较少的纹理。
站长推荐 /1
纳金名模第105期吧凳3d模型:数量100个,大小为225MB。完全免费下载哦!这样的福利我和我的小伙伴们都惊呆了!!下载地址:
400-067-3919
Powered by - X2.5
Narkii Inc.

我要回帖

更多关于 unity3d 灯光 的文章

 

随机推荐