[程式] 想請問一下關於3D的Picking實現方式
先說說谷狗+自己目前的所知道的狀況。
1.純數學手段:ray picking(射線去遍歷所有三角型)
自己有寫好一套實現的代碼,但似乎無法靠顯卡來加速,
尤其是碰到有bone的模型,矩陣運算我都盡可能交給顯卡處理,
要去做picking等於要再重算所有點,開始覺得不太可行。
2.open gl/DirectX特殊的處理法。
open gl可以用selection mode,做一次假rendering,
然後判定每個點的深度來做到picking的效果。
DirectX則感覺很麻煩,雖然可以用D3DXIntersect來做到,
但是他提供的函式界面實在不好操作,綁死DX系統,很難做整合。
3.算出涵蓋模型範圍的長方體,用這個長方體做picking。
雖然犧牲掉精度,但可以接受。
碰到難處的部分一樣是有bone的模型,這個長方體是否該隨時去更新?
感覺一直去比對好像也是很蠢的做法。
評估了以上3種方法,感覺好像都有不太理想的地方...
因此想請教一下,真正遊戲會實作的方式是如何?
或者美術輸出模型的時候會帶有哪些特殊的資料,以供picking使用?
還請各位前輩指教,感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.163.46
→
04/08 01:24, , 1F
04/08 01:24, 1F
→
04/08 01:25, , 2F
04/08 01:25, 2F
→
04/08 01:26, , 3F
04/08 01:26, 3F
→
04/08 01:27, , 4F
04/08 01:27, 4F
→
04/08 01:29, , 5F
04/08 01:29, 5F
哦哦,十分感謝,那我先去查一下這部分的內容...
您的回應速度快到讓我嚇到@@ (沒想到深夜冷門板會這麼快得到回覆XD)
推
04/08 03:54, , 6F
04/08 03:54, 6F
→
04/08 03:54, , 7F
04/08 03:54, 7F
→
04/08 03:55, , 8F
04/08 03:55, 8F
→
04/08 03:55, , 9F
04/08 03:55, 9F
還沒實際建立過AABB tree,相關的演算法我會去了解一下,感謝您:)
※ 編輯: xtxml 來自: 123.193.163.46 (04/08 07:35)
推
04/08 09:52, , 10F
04/08 09:52, 10F
→
04/08 09:53, , 11F
04/08 09:53, 11F
推
04/08 10:12, , 12F
04/08 10:12, 12F
→
04/08 10:13, , 13F
04/08 10:13, 13F
→
04/08 15:27, , 14F
04/08 15:27, 14F
推
04/09 17:45, , 15F
04/09 17:45, 15F