CreateNewHoudiniStandardMaterial() public static method

public static CreateNewHoudiniStandardMaterial ( string assetCacheFolderPath, string materialName, bool bWriteToFile ) : Material
assetCacheFolderPath string
materialName string
bWriteToFile bool
return Material
		public static HEU_MaterialData CreateMaterialInCache(int materialKey, string materialName, HEU_MaterialData.Source sourceType, bool bWriteToFile, List<HEU_MaterialData> materialCache,
			string assetCacheFolderPath)
		{
			HEU_MaterialData materialData = ScriptableObject.CreateInstance<HEU_MaterialData>();
			materialData._materialSource = sourceType;
			materialData._materialKey = materialKey;

			materialData._material = HEU_MaterialFactory.CreateNewHoudiniStandardMaterial(assetCacheFolderPath, materialName, bWriteToFile);
			materialData._material.name = materialName;

			materialCache.Add(materialData);
			return materialData;
		}
示例#2
0
		private void GenerateEditPointBoxNewMesh()
		{
			if (_selectedAttributesStore == null)
			{
				return;
			}

			Vector3[] positionArray = new Vector3[0];
			_selectedAttributesStore.GetPositionAttributeValues(out positionArray);

			int numPoints = positionArray.Length;
			if (numPoints != _previousEditMeshPointCount)
			{
				_editPointsSelectedIndices.Clear();
				_previousEditMeshPointCount = numPoints;
			}

			if (numPoints > 0)
			{
				float boxSize = HEU_EditorUtility.GetSerializedProperty(_toolsInfoSerializedObject, "_editPointBoxSize").floatValue;
				Color unselectedColor = HEU_EditorUtility.GetSerializedProperty(_toolsInfoSerializedObject, "_editPointBoxUnselectedColor").colorValue;
				Color selectedColor = HEU_EditorUtility.GetSerializedProperty(_toolsInfoSerializedObject, "_editPointBoxSelectedColor").colorValue;

				if (_editPointBoxMaterial == null)
				{
					_editPointBoxMaterial = HEU_MaterialFactory.CreateNewHoudiniStandardMaterial("", "EditPointMaterial", false);
				}

				Color[] pointColors = new Color[numPoints];
				for (int i = 0; i < numPoints; ++i)
				{
					pointColors[i] = unselectedColor;
				}

				int numSelected = _editPointsSelectedIndices.Count;
				for (int i = 0; i < numSelected; ++i)
				{
					pointColors[_editPointsSelectedIndices[i]] = selectedColor;
				}

				_editPointBoxMesh = HEU_GeometryUtility.GenerateCubeMeshFromPoints(positionArray, pointColors, boxSize);

				_GUIChanged = true;
			}
		}
		public static HEU_MaterialData CreateHoudiniMaterialData(HEU_SessionBase session, HAPI_NodeId assetID, HAPI_NodeId materialID, HAPI_NodeId geoID, HAPI_PartId partID, List<HEU_MaterialData> materialCache, string assetCacheFolderPath)
		{
			string materialName = "";

			if (materialID == HEU_Defines.HEU_INVALID_NODE_ID)
			{
				return GetOrCreateDefaultMaterialInCache(session, geoID, partID, false, materialCache, assetCacheFolderPath);
			}
			else
			{
				materialName = HEU_SessionManager.GetUniqueMaterialShopName(assetID, materialID);
			}

			HEU_MaterialData materialData = ScriptableObject.CreateInstance<HEU_MaterialData>();
			materialData._materialSource = HEU_MaterialData.Source.HOUDINI;
			materialData._materialKey = materialID;

			materialData._material = HEU_MaterialFactory.CreateNewHoudiniStandardMaterial(assetCacheFolderPath, materialName, true);
			materialData._material.name = materialName;

			//Debug.LogFormat("New Material ID: {0} - {1}", materialID, materialName);

			if (materialID != HEU_Defines.HEU_INVALID_NODE_ID)
			{
				// Get material info from Houdini to populate the Unity material values

				HAPI_MaterialInfo materialInfo = new HAPI_MaterialInfo();
				if (session.GetMaterialInfo(materialID, ref materialInfo))
				{
					if (materialInfo.exists)
					{
						materialData.UpdateMaterialFromHoudini(materialInfo, assetCacheFolderPath);
					}
				}
			}

			//Debug.LogFormat("Created new material with id={0} and name={1}", materialID, materialName);

			materialCache.Add(materialData);
			return materialData;
		}