作者VictorTom (鬼翼&娃娃魚)
看板C_and_CPP
標題Re: [問題] BCB內OPENGL畫點問題&3DMAX
時間Wed Sep 2 22:08:34 2009
※ 引述《WindSkyBlue (風 天空 藍)》之銘言:
: 我用BCB 6 寫了一隻偵測圖片上R值255的點
: 然後匯出座標 (這些座標是物件Image上的)
: 然後這些座標再傳到另一個Form
: 這個Form就是用來畫OpenGL的
: 現在可以把在點畫出來了
: 問題1: 我畫得這些點都不對,因為Image上的點座標是從左上開始X,Y
: opengl這邊是從畫面中心開始算X,Y
如果是Ortho投影, 可以簡單的把Frustrum設成Left/Bottom都是0....
然後Right/Top是你Image的Width/Height, ViewPort也是Width/Height....
這樣你在3D空間下的座標原則上會一一對應到Screen的每一個Pixel去....
Projective投影, 小弟就不太確定這樣搞會不會造成投影結果變形了....
至於座標可能會有個Y方向顛倒的問題, 餵給GL畫之前就應該要處理好....
: 問題2: 畫的點超出OpenGL這個Form,如何改成可以因視窗大小調整
: 例如我畫一張人臉,可能執行只看的到一條線,
你應該要從匯入的data裡自己找出極值, 然後先調整好GL Form的大小....
再不然, 圖片大小已知, 所以繪圖不可能超過圖片大小, 那就開那麼大....
如果你是希望繪圖範圍固定在Form內, 就用極值反推ViewPort scaling的值....
: 問題3: 如果bcb 要用3dmax的模 要從哪個方向找呢?
: 問題很多,還勞煩各位大大
這個小弟不熟, 有請其他大大來解決:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.174.98
→ NDark:存成obj自己分析讀進來 09/02 22:10
推 WindSkyBlue:對的確會變成反的...剛剛忘了講 09/02 22:26
→ VictorTom:Y反的是因為MS Win的Screen座標系與GL的Y方向是相反的:) 09/02 22:38
推 Bencrie:讀檔可能要MAX的SDK 09/02 22:59