2013-10-12 76 views
0

如何在桌面应用程序中使用C#生成可用玻璃纸3D眼镜看3D的基本3D形状(红色和蓝色)? (请注意,这个问题不限于任何特定的语言,如果我能在任何语言中领先一步,那就太好了,我总是可以从中学到东西,并最终知道如何尝试用我想要的语言来实现这一点。 )3D形状和玻璃纸眼镜

我见过这么多的问题,但答案看起来非常复杂,并没有让我到最后的任何地方。我甚至找不到关于此的任何文档或文章。

+1

...玻璃纸3D眼镜... ????这是什么 ? – Jasper

+1

@Jasper我认为他的意思是说,当3D是一件新事物时,你曾经从电影院那里得到那些双色“太阳眼镜”。你知道有1个红色镜头和1个蓝色镜头?我认为Giovani想要创建2个形状并将它们叠加在一起,以使它们看起来像3D ......不过,不知道如何在C#/ Winforms中做到这一点。 – sab669

+0

@ sab669没错。你理解100%。我要添加一些标签。这在C#中可能是不可能的,但如果我可以用C++或VB或其他.NET语言编写它,我可以使用它。即使是非基于.NET的语言也是一个很好的起点。 – uSeRnAmEhAhAhAhAhA

回答

2

要生成立体照片3D图像,首先必须从两个略有不同的视口渲染场景,每个人都为每个眼睛一个场景。它们越远,场景越小,3D感越强。

最简单的方法是使用一些现有的库来渲染图像。使用“照相机”,将其稍微放在视图中心的左侧(和右侧)。渲染两个图像,并获取像素。

第二步是将两幅图像组合成立体图3D图像。一种方法是将一个图像的红色通道与另一个图像的绿色和蓝色通道相结合。

(Pseduo-C#:)

Color Combine(Color left, Color right) 
{ 
    return new Color(left.Red, right.Green, right.Blue); 
} 

Image Combine(Image left, Image right) 
{ 
    Image result = new Image(left.Width, left.Height); 
    for (int y = 0; y < left.Height; y++) 
    for (int x = 0; x < left.Width; x++) 
    { 
     result.SetPixel(x, y, Combine(left.GetPixel(x, y), right.GetPixel(x, y))); 
    } 
}