Unity5 怎么把Mesh渲染成unity5 rendertexturee

&NGUI有个Demo,实现了这个功能,UI界面显示一个3D模型,但是这种方法并不具备适用性。现在我们的项目中还没用到这种超前的3D界面设计,我们常用的UI都是由大堆的UI通过层级堆叠出来的。那按照我们现在UI的制作方法怎么实现这种UI界面显示3D模型,3D模型还可以自由徐旋转运动的功能呢。RenderTexture就是一种很好用的方法。1.首先我们需要一个UITexture在UI界面中占领一个位置和层级。&现在我们看到装备栏中,一块绿油油的马赛克图片已经占领了我们给要渲染的3D模型的位置。2.创建一个RenderTexture用来接收摄像机拍摄的画面,保存在这个RenderTexture上。&3.要显示的内容图片已经创建完成了,绑定到已经做好的UITexture上。&4.现在最重要的就要进入关键步骤了,如何把3D模型渲染到这张RenderTexure上呢?我们只需要在场景稍微偏偏的一个地方创建一个摄像机,删除它多余的组件,只留Camera组件。将创建好的RenderTexture绑定它的属性上,这样就可以把摄像机看到的内容全部渲染到RenderTexure这张“图片”上了。&5.现在我们在摄像机前面看看效果(右下角是摄像机看到的画面)&下面是保存在RenderTexure上的画面。&再下面是UI界面显示的画面。&一毛一样,有木有!!!运行起来,模型在动,UI上的人也在动,有木有!!!6.为了避免穿帮,我们添加一个Layer专门给这个摄像机使用,另外按照功能考虑,这个摄像机并不需要渲染很远距离的东西,把Clipping planes的far属性调到一个合适的值就可以。&拓展:现在3D全身模型没问题了,那如果3D头像也想用实时渲染的模型呢。图像框还是圆形的怎么办呢?下面我来做个尝试。1.先确定框体大小,做好位置和层级的占位。&2.再做一张RenderTexure,人物离近一点不就行了。那么问题来了,这还是方形的,圆形头像怎么办?&3.首先我们需要一个中间一个圆形镂空的模型。&4.延后类,模型瞄准位置,摆上。&是不是很完美。5.谁说不完美?!还差一步!创建个shader,代码在下面:Shader &DuanShader/maskshader&{SubShader {Tags {&Queue& = &Geometry-10& }Lighting OffZTest LEqualZWrite OnColorMask 0Pass {}}}镂空模型选用这个shader,在看内容。同样的佩服,通用的味道,效果就是这么完美。&蛮牛社区()分享最新的游戏研发和虚拟现实相关技术内容。Unity3D教程手册(unitymanual)
 文章为作者独立观点,不代表大不六文章网立场
unitymanual游戏蛮牛 ---
中国最大的手机游戏开发者技术社区! 热门文章最新文章unitymanual游戏蛮牛 ---
中国最大的手机游戏开发者技术社区! &&&&违法和不良信息举报电话:183-
举报邮箱:Copyright(C)2017 大不六文章网  Mesh是Unity内的一个组件,称为网格组件。3D网格是Unity中最重要的图形元素。在Unity中存在多种组件用于渲染标准网格或者蒙皮网格、拖尾或者3D线条。
  在Unity-》Component-》Mesh组件内,有Mesh Filter,Text Mesh, Mesh Render三个子项。在圣典中可以看到,有四项内容:
&网格过滤器
&网格渲染器
&蒙皮网格渲染器
&文本渲染器
  比较通俗的理解就是,Mesh是指模型的网格,建模就是建网格。细看Mesh,可以知道Mesh的主要属性内容包括顶点坐标,法线,纹理坐标,三角形绘制序列等其他有用属性和功能。因此建网格,就是画三角形;画三角形就是定位三个点。
  而Mesh Filter内包含一个Mesh组件,可以根据MeshFilter获得模型网格的组件,也可以为MeshFilter设置Mesh内容。
  Mesh Render是用于把网格渲染出来的组件。MeshFilter的作用就是把Mesh扔给MeshRender将模型或者说是几何体绘制显示出来。
  梳理一下内容,大概就是Unity中的对象就是GameObject,每个GameObject都可以有一个MeshFilter组件(也可以没有),该组件又有Mesh属性(这个一定有),而该属性又有个Ver贴上,也就是一个Vector3数组,储存着顶点信息。
  网格(Mesh)对象拥有顶点及其相关数据(法线和UV坐标)和三角形属性的属性。顶点可以任何顺序提供,但是法线和UV数组必须有序,这样索引均与顶点对应(即法线数组的元素0提供顶点0的法线,等等)。顶点为Vector3,代表对象局部空间的点。法线为标准化的Vector3,再一次在本地坐标中代表方向。UV指定为Vector2,但由于Vector2类型没有成为U和V的字段,因此也就相应的将其转换为了X和Y。
  三角形指定为在顶点数组中充当索引的整数三元组。数组不使用特殊类类表示三角形,而只是一个简单的整数指数列表。每一个三角形都是以三个为一组,因此,前三个元素定义为第一个三角形,后面三个元素定义为第二个三角形,并依此类推。
  三角形的一个重要细节就是拐角处顶点的顺序。尽管从哪个拐角开始并不重要,但顶点应予以排序,这样当俯视三角形的可见外表面时,各个拐角会按顺时针转动。
  此处也应该知道了UV坐标表示的是什么。
抓取百度百科的信息:
  "UV"这里是指u,v纹理坐标的简称(它和空间模型的X, Y, Z轴是类似的). 它定义了图片上每个点的位置的信息. 这些点与3D模型是相互联系的, 以决定表面纹理贴图的位置. UV就是将上每一个点精确对应到模型物体的表面.&
扯到UV坐标,想起来有人问的材质,贴图和纹理有什么区别。其实,除了看到Textures文件夹内都是图形,和Materials文件夹内都是材质球外,我也不知道这三者有什么区别。对了,材质球可以根据光照、贴图、纹理进行生成,然后扔给GameObject的Render组件里的Material属性。
知乎上的回答如下:
整个 CG 领域中这三个概念都是差不多的,在一般的实践中,大致上的层级关系是:
材质 Material包含贴图 Map,贴图包含纹理 Texture。
纹理是最基本的数据输入单位,游戏领域基本上都用的是位图。此外还有程序化生成的纹理 Procedural Texture。
贴图的英语 Map 其实包含了另一层含义就是&映射&。其功能就是把纹理通过 UV 坐标映射到3D 物体表面。贴图包含了除了纹理以外其他很多信息,比方说 UV 坐标、贴图输入输出控制等等。
材质是一个数据集,主要功能就是给渲染器提供数据和光照算法。贴图就是其中数据的一部分,根据用途不同,贴图也会被分成不同的类型,比方说 Diffuse Map,Specular Map,Normal Map 和 Gloss Map 等等。另外一个重要部分就是光照模型 Shader ,用以实现不同的渲染效果。
对了,如果导入的模型的网格具有蒙皮信息,Unity会自动创建一个Skinned Mesh Renderer.
注意:在使用Mesh Filter的时候必须同时提供一个Mesh Renderer组件,因为需要将其渲染出来,否则你不见他。
Text Mesh&:文件过滤器,用于显示3D文字的。
Mesh Renderer&:网格渲染器。用于渲染网格显示游戏对象。
Mesh Renderer的Materials可以放置多张贴图,用于显示在游戏对象的外表。
阅读(...) 评论()}

我要回帖

更多关于 unity rendertexture 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信