[問題] OpenGL 只畫特定物體

看板C_and_CPP (C/C++)作者 (kosodoro)時間14年前 (2012/03/12 23:15), 編輯推噓4(4015)
留言19則, 5人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Visual Studio 2010(VC++) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) OpenGL、lib3ds(匯入3ds model至OpenGL)、OpenCV 問題(Question): 最近在接觸OpenGL,但目前遇到了一些問題,特此來向各位請教 假設現在畫了兩個Object(從3ds檔匯入的model), OpenGL會根據兩個Object的位置適當地做遮擋 我現在的問題是: 能不能只畫其中一個Object,但仍然有遮擋的效果呢? 也就是說被另一Object遮住的地方會留空,不會畫出另一個Object OpenGL會不會給每一個Object一個類似ID的資料, 判斷目前畫的這個pixel是屬於哪個Object的, 然後我可以根據ID來決定要畫哪一個Object? 或者是有無其他方法能夠達到上述目的? 第一次在本版發文,有何不妥還請見諒 也請不吝惜地給予指教,謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.162.52.123

03/12 23:30, , 1F
先把不想畫的物件畫到depth buffer裡
03/12 23:30, 1F

03/12 23:31, , 2F
開了depth test比他遠的東西都不會被畫出來
03/12 23:31, 2F

03/12 23:33, , 3F
用glColorMask(0,0,0,0)這樣第一個畫的東西就不會顯示
03/12 23:33, 3F

03/13 00:01, , 4F
請問原po是想對兩個obj做布林運算~?
03/13 00:01, 4F

03/13 00:10, , 5F
Selection buffer ?
03/13 00:10, 5F

03/13 00:30, , 6F
感謝以上幾位的回答 我再把我想要做的工作說明詳細點
03/13 00:30, 6F

03/13 00:31, , 7F
我是希望將3D Object疊到一張圖上,然後Object會根據圖片
03/13 00:31, 7F

03/13 00:32, , 8F
做部分遮擋(假設我能知道相片中物體的深度資訊)
03/13 00:32, 8F

03/13 00:34, , 9F
另外請問一樓的方法第一個Object的部分可以達到透明的效
03/13 00:34, 9F

03/13 00:35, , 10F
果嗎?我希望沒有被畫出來的地方呈現的就是相片的部分
03/13 00:35, 10F

03/13 00:47, , 11F
你的意思是你有一張相片和他的深度,你要在中間插其他
03/13 00:47, 11F

03/13 00:47, , 12F
物件?
03/13 00:47, 12F

03/13 00:48, , 13F
這樣的話先把相片畫出來,用我的方法把深度畫進去
03/13 00:48, 13F

03/13 00:48, , 14F
Yes,我希望我能在圖片中擺放一個新物件
03/13 00:48, 14F

03/13 00:48, , 15F
然後在畫要插入的物件
03/13 00:48, 15F

03/13 00:53, , 16F
所以做法是先用glColorMask畫出遮擋物,
03/13 00:53, 16F

03/13 00:53, , 17F
在以一般的方法畫出插入的物件就好了嗎?
03/13 00:53, 17F

03/13 00:54, , 18F
畫到depth buffer裡只的是?
03/13 00:54, 18F

03/13 02:24, , 19F
如果你只是要遮擋的方法,也可以考慮stencil buffer
03/13 02:24, 19F
文章代碼(AID): #1FNXCT0Z (C_and_CPP)
文章代碼(AID): #1FNXCT0Z (C_and_CPP)