我有一套程序图像,我想将其作为广告牌添加到我的螺旋3D应用程序中。如何将程序生成的广告牌添加到螺旋3D中
目前我的应用程序看起来如下:
public partial class _3DControl
{
HelixViewport3D hVp3D;
public _3DControl()
{
InitializeComponent();
createView();
}
public void createView()
{
hVp3D = new HelixViewport3D();
var lights = new SunLight();
lights.Altitude=40;
lights.Ambient=0.4;
this.Content = hVp3D;
hVp3D.Children.Add(lights);
this.Show();
}
public void UploadBillboard(BitmapImage im, System.Windows.Media.Media3D.Point3D position,double width,double height)
{
//create material
var mat = MaterialHelper.CreateImageMaterial(im, 0);
var bboard = new BillboardVisual3D();
bboard.Material = mat;
//set coordinates
bboard.Position = position;
bboard.Width = width;
bboard.Height = height;
//add the billboard
hVp3D.Children.Add(bboard);
}
但是当我调用该函数添加一个广告牌:
HelixLinker.GetHelix().UploadBillboard(((Bitmap)e).bitmapToBitmapImage(),
new System.Windows.Media.Media3D.Point3D(0, 0, 0), 100, 100);
然后我什么也看不到被添加,任何知道我在做什么错误?
我也试过用RectangleVisual3D类。
public void UploadRect(BitmapImage im, System.Windows.Media.Media3D.Point3D position, double width, double height)
{
var mat = MaterialHelper.CreateImageMaterial(im, 0);
var bboard = new RectangleVisual3D();
bboard.Material = mat;
bboard.Width = width;
hVp3D.Children.Add(bboard);
}
其中如果在这种情况下execuded以同样的方式导致了(有前途)图像
但似乎没有材料
要正确设置。
注意:我希望BillboardVisual3D是正确的课程,我正在研究一些可以让我把图像“放在地板上”的东西,可以这么说,我想要有没有图像的平面图像深度和透明度。
获得进一步的信息,随便问任何想法(这是我用Helix做的第一件事,因此我不知道什么信息是重要的)。 – Thijser