目前我有一個光源,一個平面和一個立方體,還有另一個節點,我想檢查它是否沒有被光線擊中。我想檢查整個節點本身是否沒有被光線擊中。該節點是單個元素,不在層次結構中。如何檢查節點是否被光照或不亮?
回答
照明是在GPU上發生的事情。即使您在自己的引擎中直接使用OpenGL或類似工具,找到關於照明效果的東西往往不是非常簡單或高效的事情。
這就是說,取決於你想知道什麼(以及你需要多久知道一次),有一些近似值可能有用。
對於聚光燈,調用視圖的
isNodeInsideFrustum:withPointOfView:
方法,傳遞你想了解的第一個參數,該光點光作爲第二個節點的節點。這會告訴您節點的邊界框的任何部分是否位於燈光「看到」的區域中(但如果中間還有其他節點遮擋燈光)。檢查
attenuationEndDistance
的光線是否與節點的position
(或其邊界框的拐角)的距離相反。使用
hitTestWithSegmentFromPoint:toPoint:options:
檢查從光線開始到結束於該節點(其position
或邊界框邊角)的光線。如果命中測試發現該節點,則光可以達到它(模衰減)。如果命中測試首先發現另一個節點,那麼您關心的節點至少部分處於陰影中。
嘗試變化或這些技巧的組合可能會讓你找到你想要的,或足夠接近的東西。但要小心:測試有一個CPU時間成本,所以你可能不想每幀都要做一個(或幾個)測試。
謝謝,這有助於很多 –
Wooaw ..非常有用,Tks! – TonyMkenu
- 1. treeview檢查節點是否被選中
- 2. 如何檢查節點是否屬性
- 3. 如何檢查QPushButton是否被點擊
- 4. 如何檢查GetComponent()是否被點擊?
- 5. 如何檢查一個DOM節點是否是`html`節點
- 6. Java如何檢查樹中的節點是否被選中?
- 7. 如何檢查是否有子節點被觸摸Swift 3
- 8. 檢查節點是否有
- 9. 如何檢查節點是否被刪除或沒有在鏈表中
- 10. 檢查圖像是否被光柵化
- 11. 你如何檢查父節點的孩子是否在Kendo TreeView中被檢查?
- 12. 如何檢查一個節點是否是另一個節點的子節點?
- 13. 檢查是否有點設置或不
- 14. Android如何檢查攝像頭是否被用來拍攝照片或視頻
- 15. 檢查是否有類,並檢查是否被點擊
- 16. xsl檢查根節點是否包含任何子節點
- 17. 如何檢查使用JS或節點
- 18. 如何檢測照片是否被拍攝(照相機意圖)
- 19. 如何檢查類文件或jar文件是否被檢測?
- 20. 如何檢查照片是否在嘗試上傳照片時被選中
- 21. 如何知道相機閃光燈是否已經點亮(iOS)?
- 22. 如何檢測是否有子節點被觸摸:Sprite Kit
- 23. 檢查一個節點是否完全被選中
- 24. jquery檢查收音機是否被選中或是否被檢查
- 25. 如何檢查控件是否獲得焦點或不在android
- 26. 檢查節點是否存在於Javascript
- 27. 檢查節點是否存在
- 28. 檢查xml節點是否存在?
- 29. 檢查JSON節點是否爲空
- 30. 檢查文檔是否爲ROOT節點
你想知道表面(特定)點是否在陰影中嗎?或者,你想知道表面上的任何點是否在陰影中?或者,你想知道整個表面是否在陰影中?節點只包含單個元素還是層次結構?就目前來看,很難確切地說出你在問什麼。 –
另外,沒有被光線撞擊和處於另一個物體的陰影之間是有區別的。例如,指向左側的聚光燈不會將光投射到正確的節點上。 –
我編輯了我的問題,使其更清楚,你認爲你現在可以回答嗎? –