[問題] OpenGL的glLookAt()的座標問題

看板C_and_CPP (C/C++)作者 (pomn)時間16年前 (2009/08/20 10:37), 編輯推噓6(6017)
留言23則, 4人參與, 最新討論串1/1
最近在學OpenGL,設定camera的部分用到glLookAt() 這是我找到的function解釋 glLookAt( /* 相機位置 */ GLdouble eyex, GLdouble eyey, GLdouble eyez, /* 注視點位置 */ GLdouble cx, GLdouble cy, GLdouble cz, /* 相機朝上的方向 */ GLdouble upx, GLdouble upy, GLdouble upz ) 但在嘗試畫圖時,發現如果把注視點位置(cx,cy,cz)設為(0,0,0) 卻畫不出東西,不知道注視點位置這樣的解釋是否合理 p.s.網路找到是 相機的朝上的方向 都是直覺得設成(0,1,0) 是使用Borland C++ Builder 6 寫程式的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.77.9 ※ 編輯: pomn 來自: 140.129.77.9 (08/20 10:38)

08/20 10:39, , 1F
1. 你的 modelview 矩陣是否正確?
08/20 10:39, 1F

08/20 10:40, , 2F
2. LookAt 不是 GL 函式而是 GLU 函式
08/20 10:40, 2F

08/20 10:41, , 3F
3. 呼叫 gluLookAt 時是否有把矩陣切換到 PROJECTION?
08/20 10:41, 3F

08/20 10:41, , 4F
4. model 的大小正確嗎?是否超出 clipping frustum?
08/20 10:41, 4F

08/20 11:10, , 5F
我是看http://0rz.tw/SwGWi圖片的例子,所以對gluLookAt還是
08/20 11:10, 5F

08/20 11:10, , 6F
很疑惑....
08/20 11:10, 6F

08/20 11:29, , 7F
你的eye的位置對不對??
08/20 11:29, 7F

08/20 11:30, , 8F
gluLookAt() 給的座標都是以現在的座標為準(也就是直接
08/20 11:30, 8F

08/20 11:30, , 9F
作用在current matrix與其現值上), eye是從哪裡看, c是
08/20 11:30, 9F

08/20 11:31, , 10F
看向哪裡(注視點位置如果我中文沒理解錯應該也對), up
08/20 11:31, 10F

08/20 11:32, , 11F
中文有點難解釋, 但是你拿過相機拍照, 自然就應該理解要
08/20 11:32, 11F

08/20 11:33, , 12F
個up是幹麻的. (up與視線沒垂直的小弟不會解釋....Orz)
08/20 11:33, 12F

08/20 13:01, , 13F
你是用ortho還是perspective投影?
08/20 13:01, 13F

08/20 13:24, , 14F
是用glOrtho 這個function....
08/20 13:24, 14F

08/20 13:47, , 15F
啊 剛才發現筆誤 用 gluLookAt 的時候要切 MODELVIEW
08/20 13:47, 15F

08/20 13:52, , 16F
我是照著例子的GL_MODELVIEW沒錯
08/20 13:52, 16F

08/20 14:01, , 17F
你的view frustum怎舍的
08/20 14:01, 17F

08/20 14:14, , 18F
如果LookAt之前正常畫出來, LookAt後才畫不出東西的話,
08/20 14:14, 18F

08/20 14:16, , 19F
理論上和projection那邊的setting比較沒關係吧??
08/20 14:16, 19F

08/20 14:17, , 20F
如果沒LookAt就畫不出來了就.... 原po要不要貼code比較
08/20 14:17, 20F

08/20 14:17, , 21F
快啊....Orz
08/20 14:17, 21F

08/20 14:20, , 22F
也許他ortho根本就設定錯了~~剛好設定相反??= =
08/20 14:20, 22F

08/20 15:02, , 23F
我是用#15_b6H8s的程式碼去設定的...OpenGL超級手冊的範例
08/20 15:02, 23F
文章代碼(AID): #1AZBRaAW (C_and_CPP)
文章代碼(AID): #1AZBRaAW (C_and_CPP)