/// <summary> /// Initializes a new instance of the <see cref="PhongMaterial"/> class. /// </summary> /// <param name="core">The core.</param> public PhongMaterial(PhongMaterialCore core) : base(core) { AmbientColor = core.AmbientColor; DiffuseColor = core.DiffuseColor; DisplacementMap = core.DisplacementMap; EmissiveColor = core.EmissiveColor; Name = core.Name; NormalMap = core.NormalMap; ReflectiveColor = core.ReflectiveColor; SpecularColor = core.SpecularColor; SpecularShininess = core.SpecularShininess; DiffuseMap = core.DiffuseMap; DiffuseAlphaMap = core.DiffuseAlphaMap; SpecularColorMap = core.SpecularColorMap; EmissiveMap = core.EmissiveMap; DisplacementMapScaleMask = core.DisplacementMapScaleMask; DiffuseMapSampler = core.DiffuseMapSampler; DisplacementMapSampler = core.DisplacementMapSampler; MaxTessellationDistance = core.MaxTessellationDistance; MinTessellationDistance = core.MinTessellationDistance; MaxDistanceTessellationFactor = core.MaxDistanceTessellationFactor; MinDistanceTessellationFactor = core.MinDistanceTessellationFactor; EnableTessellation = core.EnableTessellation; RenderDiffuseAlphaMap = core.RenderDiffuseAlphaMap; RenderDiffuseMap = core.RenderDiffuseMap; RenderDisplacementMap = core.RenderDisplacementMap; RenderNormalMap = core.RenderNormalMap; RenderEnvironmentMap = core.RenderEnvironmentMap; RenderShadowMap = core.RenderShadowMap; RenderSpecularColorMap = core.RenderSpecularColorMap; RenderEmissiveMap = core.RenderEmissiveMap; EnableAutoTangent = core.EnableAutoTangent; UVTransform = core.UVTransform; EnableFlatShading = core.EnableFlatShading; }
public override int GetHashCode() { return(GetType().GetHashCode() ^ Position.GetHashCode() ^ Size.GetHashCode() ^ NWidth.GetHashCode() ^ NHeight.GetHashCode() ^ UVMin.GetHashCode() ^ UVMax.GetHashCode() ^ UVTransform.GetHashCode() ^ Transform.GetHashCode() ^ MeshType.GetHashCode()); }
public void Read(AssetReader reader) { Texture.Read(reader); if (IsReadAlphaTexture(reader.Version)) { AlphaTexture.Read(reader); } if (IsReadSecondaryTextures(reader.Version)) { m_secondaryTextures = reader.ReadAssetArray <SecondarySpriteTexture>(); } if (IsReadVertices(reader.Version)) { m_vertices = reader.ReadAssetArray <SpriteVertex>(); m_indices = reader.ReadUInt16Array(); reader.AlignStream(AlignType.Align4); } else { m_subMeshes = reader.ReadAssetArray <SubMesh>(); m_indexBuffer = reader.ReadByteArray(); reader.AlignStream(AlignType.Align4); VertexData.Read(reader); } if (IsReadBindpose(reader.Version)) { m_bindpose = reader.ReadAssetArray <Matrix4x4f>(); } if (IsReadSourceSkin(reader.Version)) { m_sourceSkin = reader.ReadAssetArray <BoneWeights4>(); } TextureRect.Read(reader); TextureRectOffset.Read(reader); if (IsReadAtlasRectOffset(reader.Version)) { AtlasRectOffset.Read(reader); } SettingsRaw = reader.ReadUInt32(); if (IsReadUVTransform(reader.Version)) { UVTransform.Read(reader); } if (IsReadDownscaleMultiplier(reader.Version)) { DownscaleMultiplier = reader.ReadSingle(); } }
public YAMLNode ExportYAML(IExportContainer container) { YAMLMappingNode node = new YAMLMappingNode(); node.Add(TextureName, Texture.ExportYAML(container)); node.Add(AlphaTextureName, AlphaTexture.ExportYAML(container)); node.Add(TextureRectName, TextureRect.ExportYAML(container)); node.Add(TextureRectOffsetName, TextureRectOffset.ExportYAML(container)); node.Add(AtlasRectOffsetName, AtlasRectOffset.ExportYAML(container)); node.Add(UVTransformName, UVTransform.ExportYAML(container)); node.Add(DownscaleMultiplierName, DownscaleMultiplier); node.Add(SettingsRawName, SettingsRaw); return(node); }
public void Read(AssetReader reader) { Texture.Read(reader); AlphaTexture.Read(reader); TextureRect.Read(reader); TextureRectOffset.Read(reader); if (HasAtlasRectOffset(reader.Version)) { AtlasRectOffset.Read(reader); } UVTransform.Read(reader); DownscaleMultiplier = reader.ReadSingle(); SettingsRaw = reader.ReadUInt32(); }
public void Read(AssetStream stream) { Texture.Read(stream); AlphaTexture.Read(stream); Texture.Read(stream); TextureRectOffset.Read(stream); if (IsReadAtlasRectOffset(stream.Version)) { AtlasRectOffset.Read(stream); } UVTransform.Read(stream); DownscaleMultiplier = stream.ReadSingle(); SettingsRaw = stream.ReadUInt32(); }
public void Write(AssetsWriter writer) { Texture.Write(writer); AlphaTexture.Write(writer); writer.WriteArrayOf(SubMeshes, (o, w) => o.Write(w)); writer.WriteArray(IndexBuffer); writer.AlignTo(4); VertexData.Write(writer); writer.WriteArrayOf(BindPose, (o, w) => w.Write(o)); TextureRect.Write(writer); TextureRectOffset.Write(writer); AtlasRectOffset.Write(writer); writer.Write(SettingsRaw); UVTransform.Write(writer); writer.Write(DownscaleMultiplier); }
public void Read(AssetStream stream) { Texture.Read(stream); if (IsReadAlphaTexture(stream.Version)) { AlphaTexture.Read(stream); } if (IsReadVertices(stream.Version)) { m_vertices = stream.ReadArray <SpriteVertex>(); m_indices = stream.ReadUInt16Array(); stream.AlignStream(AlignType.Align4); } else { m_subMeshes = stream.ReadArray <SubMesh>(); m_indexBuffer = stream.ReadByteArray(); stream.AlignStream(AlignType.Align4); VertexData.Read(stream); } if (IsReadBindpose(stream.Version)) { m_bindpose = stream.ReadArray <Matrix4x4f>(); } if (IsReadSourceSkin(stream.Version)) { m_sourceSkin = stream.ReadArray <BoneWeights4>(); } TextureRect.Read(stream); TextureRectOffset.Read(stream); if (IsReadAtlasRectOffset(stream.Version)) { AtlasRectOffset.Read(stream); } SettingsRaw = stream.ReadUInt32(); if (IsReadUVTransform(stream.Version)) { UVTransform.Read(stream); } if (IsReadDownscaleMultiplier(stream.Version)) { DownscaleMultiplier = stream.ReadSingle(); } }
/// <summary> /// Initializes a new instance of the <see cref="PBRMaterial"/> class. /// </summary> /// <param name="core">The core.</param> public PBRMaterial(PBRMaterialCore core) : base(core) { AlbedoColor = core.AlbedoColor; MetallicFactor = core.MetallicFactor; RoughnessFactor = core.RoughnessFactor; AmbientOcclusionFactor = core.AmbientOcclusionFactor; ReflectanceFactor = core.ReflectanceFactor; ClearCoatStrength = core.ClearCoatStrength; ClearCoatRoughness = core.ClearCoatRoughness; AlbedoMap = core.AlbedoMap; NormalMap = core.NormalMap; EmissiveMap = core.EmissiveMap; RoughnessMetallicMap = core.RoughnessMetallicMap; AmbientOcculsionMap = core.AmbientOcculsionMap; IrradianceMap = core.IrradianceMap; DisplacementMap = core.DisplacementMap; SurfaceMapSampler = core.SurfaceMapSampler; IBLSampler = core.IBLSampler; DisplacementMapSampler = core.DisplacementMapSampler; RenderAlbedoMap = core.RenderAlbedoMap; RenderDisplacementMap = core.RenderDisplacementMap; RenderEmissiveMap = core.RenderEmissiveMap; RenderEnvironmentMap = core.RenderEnvironmentMap; RenderIrradianceMap = core.RenderIrradianceMap; RenderNormalMap = core.RenderNormalMap; RenderRoughnessMetallicMap = core.RenderRoughnessMetallicMap; RenderAmbientOcclusionMap = core.RenderAmbientOcclusionMap; RenderShadowMap = core.RenderShadowMap; EnableAutoTangent = core.EnableAutoTangent; DisplacementMapScaleMask = core.DisplacementMapScaleMask; UVTransform = core.UVTransform; EnableTessellation = core.EnableTessellation; MaxDistanceTessellationFactor = core.MaxDistanceTessellationFactor; MinDistanceTessellationFactor = core.MinDistanceTessellationFactor; MaxTessellationDistance = core.MaxTessellationDistance; MinTessellationDistance = core.MinTessellationDistance; }
public static void Build() { var skipList = new List <string>(); foreach (var i in entries) { var e = i.Value; var mw = e.right - e.left; var mh = e.bottom - e.top; var dx = (float)mw / (float)e.texWidth; var dy = (float)mh / (float)e.texHeight; if (dx >= 0.9 || dy >= 0.9) { skipList.Add(i.Key); } } foreach (var sl in skipList) { entries.Remove(sl); } foreach (var i in entries) { var e = i.Value; var mw = e.right - e.left; var mh = e.bottom - e.top; mw = Mathf.NextPowerOfTwo(mw); mh = Mathf.NextPowerOfTwo(mh); int left = e.left; int right = left + (mw - 1); if (right > e.texWidth - 1) { // shift left right = e.texWidth - 1; left = right - (mw - 1); } int top = e.top; int bottom = top + (mh - 1); if (bottom > e.texHeight - 1) { // shift up bottom = e.texHeight - 1; top = bottom - (mh - 1); } UVTransform uvt = new UVTransform(); uvt.offset = new Vector2(-(float)left / (float)e.texWidth, -(float)top / (float)e.texHeight); uvt.scale = new Vector2((float)e.texWidth / (float)mw, (float)e.texHeight / (float)mh); foreach (var j in e.subMeshMap) { var list = j.Value; Dictionary <int, UVTransform> uvtMap = null; if (meshMap.ContainsKey(j.Key)) { uvtMap = meshMap[j.Key]; } else { uvtMap = new Dictionary <int, UVTransform>(); meshMap[j.Key] = uvtMap; } foreach (var subMeshIdx in list) { uvtMap[subMeshIdx] = uvt; } } } }