簡體   English   中英

C#中的簡單3D圖形

[英]Simple 3D Graphics in C#

我當前正在開發一個需要進行可視化的應用程序,而我要做的最復雜的事情就是顯示類似點的對象。

對於我而言,任何超出此范圍的操作都是完全過大的,因為除了繪制點狀對象外,我什么也不會做。

話雖這么說,對我的需求最簡單的解決方案是什么?

最簡單的方法可能是使用WPF 3D 這是一個保留模式的圖形系統,因此,如果您沒有很大的需求(即:特效着色器等),則可以非常容易地直接設置和使用。

否則,更復雜的3D系統(例如XNA )可能更合適。 這將需要更多的工作來設置,但可以給您更多的控制權。

我建議您看看C#的Microsoft XNA

將它們渲染為真實點還是球形? (在此情況下,您可以使用球體的可見大小作為參考來查看更接近的“點”。)在前一種情況下,我建議您自己簡單地乘以適當的變換矩陣,即可將這些點投影到您的觀察平面上,而不是使用完善的3D引擎(因為您不渲染任何三角形或執行照明/着色)

有關將3D投影到2D平面的一些理論背景,請參閱此Wiki文章 如果您使用XNA,則它具有Matrix幫助器函數,即使您沒有將其用於任何實際渲染,該函數也可以為您生成適當的轉換矩陣。 對於積分,問題變得非常瑣碎,因為無需考慮任何法線。 您只需將組成的View Projection矩陣乘以每個點,剪切位於視錐范圍之外(即,在視平面后面,太遠或在視口的2d范圍之外)的所有點,然后將點渲染為X,Y。 該計算是否會反饋每個點相對於您的觀察平面的“深度”,因此您可以使用它適當地縮放或着色這些點,否則很難快速理解這些點的3d位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM