Re: [請益] 有關openGL的文字輸出

看板GameDesign作者 (狂人)時間14年前 (2012/03/02 01:09), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
不知道原po找到答案沒,容我在這裡野人獻曝一番。 這個問題其實很簡單,可以參閱OpenGL官方文件 "避開OpenGL常見的16個陷阱"第九項: http://tinyurl.com/7w8er46 (其實看圖說故事就可以了,Fig. 3&4) 簡單的說只要glRasterPos*()指定的位置位於view volume之外, 就會變成無效的位置而沒辦法畫出東西。 因為就po的code看起來是在處理2D的畫面, 所以要解決問題也很簡單: 只要運用gluOrtho2D把view volume加大就行了, 再配合glViewport把加大的部分挪到視窗外面,不要影響到視線。 以下範例可以在視窗"外"加上一圈寬50、高50px的view volume: // (前略) // ... 清除color buffer,開始繪圖 // WINDOW_*變數是你的視窗寬高,請不要照抄 // glViewport(-50, -50, WINDOW_W, WINDOW_H); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(-50, WINDOW_W+50, -50, WINDOW_H+50); // 繪製文字 ... (後略) 這樣就可以貼超出視窗範圍了而不會爆了。 關於gluOrtho2D與glViewport的詳細使用說明網路上資料很多, 在此不另贅述。 謝謝收看~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.241.251

03/02 03:35, , 1F
哦哦,大推,原來可以這樣用...... 感謝Alimen :)
03/02 03:35, 1F
文章代碼(AID): #1FJwrC0X (GameDesign)
文章代碼(AID): #1FJwrC0X (GameDesign)