我正在構建一個簡單的實體建模應用程序。用戶需要能夠在正交和透視視圖中操作對象。例如,當屏幕上有一個框並且用戶點擊它來選擇它時,它需要在角落和中心獲得'手柄',以便用戶可以將鼠標移動到這樣的手柄上並將其拖動到放大或移動框。在3d視圖中實現操縱手柄的方法
有什麼策略可以做到這一點,哪一個是最好的?我可以想到兩個明顯的:
1)將手柄視爲3d對象。即對於一個盒子,在主盒子的角落處添加小盒子。問題:這不能在透視圖中工作,我需要確定相對於當前縮放級別的框的大小(無論用戶放大/縮小的距離,手柄都需要具有相同的大小)
2)場景渲染後添加手柄。渲染到屏幕外的緩衝區,以某種方式確定角的2d位置,並使用常規2D繪圖技術繪製手柄。問題:我將如何進行測試?我也需要做一個兩階段測試的方法,如何在2D渲染圖像中繪製?回到GDI?
這兩種方法可能存在更多問題。有沒有解決這個問題的行業標準方法?
我正在使用OpenGL,如果這有所作爲。
我看到你的觀點,增加視覺線索的角度。儘管這對用戶來說很自然,但我還不確定。例如那些被其他物體夾住的手柄呢?我將研究一些其他3d建模者,看看他們是如何做到的,並在我的測試應用程序中嘗試這兩種方法。感謝您花時間回答。 – Roel 2009-05-07 10:08:45
一種選擇是允許透視留下,但在深度測試關閉的情況下呈現這些。它們將始終可見(即使在其他對象之上)。我不會將其設爲默認方式,但這是一個不錯的選擇,所以您可以切換開/關是否始終顯示手柄,即使是「通過」對象。 – 2009-05-07 15:45:11
我仍然需要找出如何與深度緩衝區一模一樣,但我認爲這是可行的。我有很多試用和錯誤之前:)謝謝。 – Roel 2009-05-07 17:38:01