我爲德爾福XE2使用最新的GLScene樹幹 我已經開發了一個GUI-ish類型的項目,它使用3D而不是2D來繪製 draw屏幕上的GUI元素。使用GLScene或OpenGL for Delphi製作質地適合的4點多邊形/平面
它可以工作,但由於顯而易見的原因,圖形位置不是像素完美的。
我已經成功映射了3D視圖,因此TGLSceneViewer上的1個像素或多或少地在屏幕上顯示1個像素。這對我來說足夠了。
但是我放棄了在我的GUI中使用3D的想法,而我將專注於 ,因爲它是GPU加速的,所以專門使用GLScene for2D圖形表示。
然後我記得在以前的項目中使用了投影變換,其中我使用Graphics32 作爲我的GUI。
利用射影變換,我可以簡單地在3D空間中繪製點, 閱讀這些點的三維座標,座標轉換爲二維座標和 適用那些對TBitmap32射影變換參數,中提琴, 我我的軟件具有3D功能。
所以,我的問題是:
是否有可能「拉伸」在GLScene中或OpenGL紋理,使紋理 4點之間的配合,或平面內,所以,每當我移動的角落一架飛機到一個新的位置, 紋理會相應拉伸?
這樣我可以使用GLScene 2D圖形,但做一些簡單的欺騙,使事情看起來像它的3D。
下面的鏈接指向在互聯網上的圖像是一個可視化表示什麼,我在尋找: http://i.stack.imgur.com/hDdqa.png
爲什麼不使用FireMonkey?它是原生的,2D和3D,並且是硬件加速的(包括2D版本)。幾乎所有你想要的東西,沒有從頭開始編寫它的努力。 – 2014-09-30 13:54:17
如果我記得正確,Firemonkey的表現並不好。還是我在這裏錯了? – xaid 2014-09-30 14:39:16
當它無法在早期版本(XE4及以下版本)中使用Direct2D時,出現了回退到GDI +的問題。只要您使用的是Vista或更高版本,您應該沒問題。我每天在XE6上使用它進行二維工作,這很好。就像任何圖書館一樣,你需要知道一些事情,例如,如果你畫出很多文本對象來緩存文本對象,這很方便。對於VCL,你也需要知道類似的東西!總的來說,它運行良好,速度很快,我很高興。 – 2014-09-30 14:42:29