protected virtual void addVertices(Mesh srcmesh, int id, ref Matrix4x4 mt, StructurePallet3 pallets) { base.addVertices(srcmesh, ref mt); // NormalMeshCreator のもの var palletList = makePalletList(pallets); var iv = vtxProgress; var srccols = srcmesh.colors32; for (var i = 0; i < srcmesh.vertexCount; i++, iv++) { var c = srccols.Length != 0 ? srccols[i] : new Color32(0, 0, 0, 0); //255 ); var palletId = c.r; //( c.r & c.g & c.b ) != 0 ? 0 : 4 - (( ( c.r & 1 ) * 3 ) | ( ( c.g & 1 ) * 2 ) | ( ( c.b & 1 ) * 1 )); if (palletId > 4) { palletId = 0; } var color = palletList[palletId]; color.a = (byte)(id & 0xff); bids[iv] = color; } }
public virtual void addGeometory(Mesh srcmesh, int id, ref Matrix4x4 mt, StructurePallet3 pallets) { addIndices(srcmesh, ref mt); addVertices(srcmesh, id, ref mt, pallets); idxProgress += srcmesh.triangles.Length; vtxProgress += srcmesh.vertexCount; }
Color32[] makePalletList(StructurePallet3 pallets) { var palletColors = new Color32[5]; palletColors[0] = new Color32(255, 255, 255, 255); palletColors[1] = pallets.color0; palletColors[2] = pallets.color1; palletColors[3] = pallets.color2; palletColors[4] = pallets.color3; return(palletColors); }
public Material get(Material srcMat, StructurePallet3 pallet) { if (material == null) { var mat = new Material(srcMat.shader); mat.CopyPropertiesFromMaterial(srcMat); /* * mat.SetColor( "_Pallet0", Color.white ); * mat.SetColor( "_Pallet1", pallet.color0 ); * mat.SetColor( "_Pallet2", pallet.color1 ); * mat.SetColor( "_Pallet3", pallet.color2 ); * mat.SetColor( "_Pallet4", pallet.color3 ); */ mat.SetColorArray("_Pallet", new Color[] { Color.white, pallet.color0, pallet.color1, pallet.color2, pallet.color3 }); material = mat; } return(material); }
/* * public void setBoneMatrix( int id, ref Matrix4x4 mt ) * { * mr.material.SetMatrix( "m" + id.ToString(), mt ); * } */ public void initPallet(StructurePallet3 pallet) { mr.sharedMaterial = pallet.getStructureMaterial(mr.sharedMaterial); }