У меня есть треугольники, которые я накладываю изображение цветка. Саму рамку я сделал прозрачной, картинка, которую я накладываю, тоже имеет прозрачную часть и непрозрачный цветок. Но при наложении прозрачность работает некорректно. Вот код, который у меня есть сейчас.
Код: Выделить всё
private ModelVisual3D AddObjectToScene(Object3D obj)
{
var model = new ModelVisual3D();
var model3D = new GeometryModel3D();
var mesh = new MeshGeometry3D();
Console.WriteLine("Start Load GetNormals");
foreach (var norm in obj.normals) Console.WriteLine($"X: {norm.X}, Y: {norm.Y}, Z: {norm.Z}");
mesh.Normals = NormalsConvert(obj.normals);
Console.WriteLine("Start Load Positions");
mesh.Positions = VerticesConvert(obj.vertices);
Console.WriteLine("Start Load TriangleIndices");
var triangleIndices = new Int32Collection();
foreach (var surf in obj.surfaces)
{
var surfaceIndices = ConvertSurfaces(surf.vertices);
foreach (var index in surfaceIndices) triangleIndices.Add(index);
}
mesh.TriangleIndices = triangleIndices;
mesh.TextureCoordinates = TextureConvert(obj.texCoords);
model3D.Geometry = mesh;
var myMaterialGroup = new MaterialGroup();
Material mt1 = new DiffuseMaterial(new SolidColorBrush(Color.FromArgb(0, obj.material.diffuseColor.R, obj.material.diffuseColor.G, obj.material.diffuseColor.B)));
Material mt2 = new EmissiveMaterial(new SolidColorBrush(obj.material.emissiveColor));
Material mt3 =
new SpecularMaterial(new SolidColorBrush(obj.material.specularColor.ChangeAlpha(0)), obj.material.reflectionIndex);
Material texture = null;
if (obj.material.material_file_name != null)
{
var imageBrush = new ImageBrush
{
ImageSource = new BitmapImage(new Uri(obj.material.material_file_name, UriKind.RelativeOrAbsolute)),
Opacity = 1
};
texture = new DiffuseMaterial(imageBrush);
}
myMaterialGroup.Children.Add(mt1);
myMaterialGroup.Children.Add(mt3);
myMaterialGroup.Children.Add(mt2);
if(texture!=null)
myMaterialGroup.Children.Add(texture);
model3D.Material = myMaterialGroup;
model.Content = model3D;
return model;
}
Кадр Сакуры
Подробнее здесь: https://stackoverflow.com/questions/792 ... obj-format