当前位置: 首页>>代码示例>>C#>>正文


C# pb_Object.SewUVs方法代码示例

本文整理汇总了C#中pb_Object.SewUVs方法的典型用法代码示例。如果您正苦于以下问题:C# pb_Object.SewUVs方法的具体用法?C# pb_Object.SewUVs怎么用?C# pb_Object.SewUVs使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pb_Object的用法示例。


在下文中一共展示了pb_Object.SewUVs方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ProjectFacesAuto

	/**
	 * Projects UVs on all passed faces, automatically updating the sharedIndicesUV table
	 * as required (only associates vertices that share a seam).
	 */
	public static void ProjectFacesAuto(pb_Object pb, pb_Face[] faces)
	{
		int[] ind = pb_Face.AllTrianglesDistinct(faces);
		Vector3[] verts = pbUtil.ValuesWithIndices(pb.vertices, ind);
		
		/* get average face normal */
		Vector3 nrm = Vector3.zero;
		foreach(pb_Face face in faces)
			nrm += pb_Math.Normal(pb, face);
		nrm /= (float)faces.Length;

		/* project uv coordinates */
		Vector2[] uvs = pb_Math.PlanarProject(verts, nrm);

		/* re-assign new projected coords back into full uv array */
		Vector2[] rebuiltUVs = pb.uv;
		for(int i = 0; i < ind.Length; i++)
			rebuiltUVs[ind[i]] = uvs[i];

		/* and set the msh uv array using the new coordintaes */
		pb.SetUV(rebuiltUVs);
		pb.msh.uv = rebuiltUVs;
		
		/* now go trhough and set all adjacent face groups to use matching element groups */
		foreach(pb_Face f in faces)
		{
			f.elementGroup = -1;
			SplitUVs(pb, f.distinctIndices);
		}

		// pb_IntArray[] sharedIndices = pb.sharedIndices;

		pb.SewUVs(pb_Face.AllTrianglesDistinct(faces), .001f);

		// foreach(pb_Face f in faces)
		// {
		// 	foreach(pb_Edge e in f.edges)
		// 	{
		// 		foreach(pb_Face f2 in faces)
		// 		{
		// 			if(f2 == f) continue;
						
		// 			int index = f2.edges.IndexOf(e, sharedIndices);

		// 			// Found an aligned edge
		// 			if( index > -1 )
		// 			{
		// 				if(f.elementGroup < 0)
		// 				{
		// 					if(f2.elementGroup < 0)
		// 					{
		// 						f.elementGroup = pb.UnusedElementGroup(0);
		// 						f2.elementGroup = f.elementGroup;
		// 					}
		// 					else
		// 					{
		// 						f.elementGroup = f2.elementGroup;
		// 					}
		// 				}
		// 				else
		// 				{
		// 					if(f2.elementGroup < 0)
		// 						f2.elementGroup = f.elementGroup;
		// 					else
		// 					{
		// 						foreach(pb_Face iter in System.Array.FindAll(faces, element => element.elementGroup == f2.elementGroup))
		// 							iter.elementGroup = f.elementGroup;
		// 					}
		// 				}
		// 			}
		// 		}
		// 	}
		// }
	}
开发者ID:itubeasts,项目名称:I-eaT-U,代码行数:78,代码来源:pbUVOps.cs


注:本文中的pb_Object.SewUVs方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。