我正在使用C# WPF,尝试从3D模型中渲染2D视图,以便将其用作UI项的预览图像。为了实现这一目标,我正在尝试正确使用RenderTargetBitmap类(链接1)。以下是我的使用方式:Irrelevant since update。
问题在于生成的位图完全是黑色的。
完整的文件pastbin: http://paste.isomorphis.me/jgz 感谢您的时间! :)
更新: 由于一位顾问的建议,我已经纠正了使用“measure”、“arrange”和“InvalidateVisual”初始化布局的方式,但我仍然生成了一个黑色的位图。
public void SetModelImage()
{
RenderTargetBitmap bmp = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32);
PngBitmapEncoder png = new PngBitmapEncoder();
Viewport3D myViewport3d = new Viewport3D();
ModelVisual3D myModelVisual3D = new ModelVisual3D();
Model3DGroup myModel3DGroup = new Model3DGroup();
GeometryModel3D myGeometryModel = new GeometryModel3D();
this.previewModel = new PngBitmapEncoder();
PerspectiveCamera myPCamera = new PerspectiveCamera();
myModel3DGroup.Children.Add(this.content);// ajoute le modele
myModelVisual3D.Content = myModel3DGroup;
myModelVisual3D.Content = this.content;
myViewport3d.Children.Add(myModelVisual3D);
bmp.Render(myViewport3d);
this.previewModel.Frames.Add(BitmapFrame.Create(bmp));
string filepath = "C:\\Users\\Remi\\Desktop\\toto.png";
using (Stream stm = File.Create(filepath))
{
this.previewModel.Save(stm);
}
}
问题在于生成的位图完全是黑色的。
完整的文件pastbin: http://paste.isomorphis.me/jgz 感谢您的时间! :)
更新: 由于一位顾问的建议,我已经纠正了使用“measure”、“arrange”和“InvalidateVisual”初始化布局的方式,但我仍然生成了一个黑色的位图。