2014-08-28 47 views
0

我已經將一個網格對象(來自blender的.obj文件)導入到openGl窗口(glfw)上下文中。我正在關注3D拾取的各種教程,以便讓我選擇它。我無法理解的是,如何在單點點擊時讓網格的子部分突出顯示。例如,如果您在車門上點擊,整個車門就會突出顯示。不用進入遊戲引擎,因爲我的意圖是將這個概念應用於應用程序中的3D圖表,最直接的實現方法是什麼?突出顯示網格的特定部分C++ OpenGL

PS - 之前有人低估了這一點,我花了幾個小時在谷歌嘗試搜索答案,所以道歉,如果這是離題/不適合。

+0

這是一個單一的網格,還是你正在處理代表車的不同部分(門等)的多個網格?如果可能,請發佈您的頂點和片段着色器源代碼。 – 2014-08-29 00:29:45

+0

如果您使用諸如門,鏡子,車頂,輪胎等對象創建汽車零件。然後,您可以在類對象示例中實現一個函數,門對象響應鼠標單擊並執行功能,例如:繪畫,彩色或開門功能。 – Juniar 2014-08-29 02:14:47

+0

我想我會導入對應於主網格的不同可選部分的幾個對象,然後從那裏取出謝謝。 – Maelstorm 2014-08-31 15:25:02

回答

0

網格有一些頂點顏色或紋理形式的顏色信息。要突出部分網格,您需要更改所用頂點數組或顏色的顏色信息。這可能是很昂貴的cpu操作來生成所需的數組和紋理,但是在數據生成後,將其傳輸到屏幕上不會花費時間。主要的複雜性在於修改網格的數據結構。

+0

將顏色作爲制服發送給着色器的網格不是更容易嗎?那麼你不必修改CPU上的任何東西。 – user1118321 2014-08-29 01:49:28