[問題] 撰寫openGL的API

看板C_and_CPP作者 (門中有心)時間10年前 (2013/10/14 23:54), 編輯推噓5(5019)
留言24則, 8人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) OpenGL 問題(Question): 大家好 小弟對於openGL非常陌生, 只是大概知道他可以利用顯示卡的硬體效能直接在螢幕上顯示圖案 裡面有一些api可以繪製出物件或取像的攝影機 我希望能做出一個api,功能如下: 假設我的輸出螢幕解析度為 1920*1080 當有任一物體在空間中(0,0,0) 此時我希望有2台orthographic camera,在空間中z=0的平面上, 以z軸為軸心,從+-3度位置拍攝(0,0,0) (由於是orthographic camera所以不用考慮相機距離) 由此可得到兩張不同角度的照片,解析度為1920*1080 我希望將第一張照片的奇數行取至輸出螢幕的奇數行, 而偶數行則取至輸出螢幕的偶數行 我會希望這件事情能real time運作, 例如我按左,物體便會往左移動而顯示在顯示器上面 所以當然會希望兩台camera只擷取到需要的pixel灰階值已增快運算速度 大致上的功能敘述如上 請大家幫我評估一下 實現可能性,困難度, 以及實現的方法(使用語法的關鍵字,參考書籍,等等任何有幫助的建議) 麻煩大家了,在此為有提供有效幫助的朋友一人300P以作為感謝之用 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.3.170

10/15 00:05, , 1F
聽起來是裸視3D螢幕
10/15 00:05, 1F

10/15 00:57, , 2F
大概是opengl基礎集大成的程度吧
10/15 00:57, 2F

10/15 00:57, , 3F
先找一般的教學看看吧 不然不知道從何講起
10/15 00:57, 3F

10/15 01:12, , 4F
很簡單啦 熟的人一小時內做出來給你
10/15 01:12, 4F

10/15 01:12, , 5F
最難的搞不好是讀 3D model,因為你沒講格式是什麼
10/15 01:12, 5F

10/15 07:46, , 6F
推樓上,無難度不過請自己加油。
10/15 07:46, 6F

10/15 07:47, , 7F
建議用 shader 寫,可以比較方便寫奇數行 偶數行。
10/15 07:47, 7F

10/15 08:54, , 8F
沒有shader也可以用stencil buffer解決行數交錯問題
10/15 08:54, 8F

10/15 08:59, , 9F
我不會說它簡單,從零學起需要很大的努力,但一定辦得到
10/15 08:59, 9F

10/15 10:18, , 10F
樓上的方法是準備兩個 stencil buffer 來檔住不要畫的部份
10/15 10:18, 10F

10/15 10:18, , 11F
一個檔奇數 一個檔偶數行
10/15 10:18, 11F

10/15 11:00, , 12F
感謝樓上五位的建議 p幣稍後寄出
10/15 11:00, 12F

10/15 18:19, , 13F
用Shader的話glu就沒辦法直接用了喔(茶)
10/15 18:19, 13F

10/15 18:20, , 14F
雖然我覺得現代的OpenGL本來就應該從Shader入門才是
10/15 18:20, 14F

10/15 19:11, , 15F
Shader 入門 +1
10/15 19:11, 15F

10/15 19:44, , 16F
用FTGL寫中文字的話,配上shader也會出槌
10/15 19:44, 16F

10/15 19:46, , 17F
不過既然是初學,應該不用考慮那些歷史包袱
10/15 19:46, 17F

10/15 20:01, , 18F
FTGL 支援很多畫字方式啊,又不是只有 texture map XD
10/15 20:01, 18F

10/15 20:02, , 19F
雖然我還是比較愛 pangocairo 啦 orz
10/15 20:02, 19F

10/15 22:29, , 20F
pangocairo 在 windows 太難編了
10/15 22:29, 20F

10/15 23:13, , 21F
官網有編好的你不用 ...
10/15 23:13, 21F

10/16 02:43, , 22F
官網編好的只有一種 case 不合我的美學
10/16 02:43, 22F

10/16 02:44, , 23F
要我為了他的case 把所有 library 的runtime 都改的跟他的
10/16 02:44, 23F

10/16 02:44, , 24F
一樣 這樣如果遇到其它的 library 不一樣就gg了
10/16 02:44, 24F
文章代碼(AID): #1IN1EYoD (C_and_CPP)