ray-picking

    1熱度

    1回答

    我正試圖在OpenGL ES 2.0中爲iPad應用程序實現採用光線投射。具體來說,我想知道用戶使用的不同高度的正方形單元格組成的類似Minecraft的地圖的哪個單元格。但是,我的代碼沒有找到與任何單元格的交集。 在我的手勢識別方法,我先拿到點和視口尺寸 UITapGestureRecognizer* tapRecognizer = (UITapGestureRecognizer*) recog

    0熱度

    1回答

    現在對象向各個方向移動。 但我想對象只移動X或Z,而不是Y. 我試試這個。但結果不好。 上的MouseMove // OBJECT SELECTED if (SELECTED) { var intersects = ray.intersectObject(PICKING_PLANE);SELECTED.position.set(intersects[ 0 ].point.x, 0,

    0熱度

    1回答

    在檢測鼠標光標附近的對象以捕捉到(在三維視圖中)的問題中,我們使用拾取光線方法(基本上形成光標的直接鄰域的三維區域,然後檢測該區域中存在的對象) 。 我不知道這是否是解決任務的唯一方法。例如,我可以使用視圖矩陣來獲取視圖空間中對象的二維座標,然後搜索光標附近的任何對象嗎? 我對採擷射線方法並不滿意,因爲它相對昂貴,所以問題基本上是關於是否任何基於空間轉換的方法通常會更快。我是3D編程新手,請給我一

    2熱度

    1回答

    我正在構建一個java3d GUI,使用它可以創建自定義場景圖形,無需知道代碼,我想用鼠標選擇特定的框,並且我希望能夠移動它們。所以我需要採摘.. 在我的場景圖中有說,2盒和2個球。我只想挑一個,知道哪一個被挑選出來。我可以找出是什麼類型的對象被點擊,就像我點擊特定的球體或框,我可以找到,但我不知道如何找出它是哪個對象,所以我可以處理它。 任何人都可以向我推薦解決方案嗎?我想要的只是知道 選擇了哪

    0熱度

    1回答

    我想在我的OpenGL場景中跟蹤被建模爲高度圖的世界地面上的鼠標座標。目前沒有像硬件鑲嵌那樣的花哨的東西。請注意,這個問題是不是約對象採摘。 目前我在做這顯然是因爲下降一回讀操作的性能如下: 渲染世界(地面) 在回讀的深度值鼠標座標 渲染場景的其餘 交換緩衝區和渲染下一幀 回讀介於兩個渲染步驟之間,因爲我需要地面的深度值,前面沒有任何物體。它使用以下命令完成: GLfloat depth; gl

    0熱度

    1回答

    我試圖通過指令從this website實現採摘射線。 現在我基本上只希望能夠點擊地面訂購我的小身影朝這點走。 由於我的地平面是平坦的,非旋轉和非平移的,我必須找到我的採擷射線當y命中0的x和z座標。 到目前爲止好,這是我的拿出: //some constants float HEIGHT = 768.f; float LENGTH = 1024.f; float fovy = 45.f;

    0熱度

    1回答

    我想在Android屏幕上獲取觸摸點的顏色。但它只顯示RGB =(0,0,0)值。我搜查了其他網站。它說我應該在下面添加一些代碼,但它沒有改變任何東西。 getHolder().setFormat(PixelFormat.TRANSLUCENT); setEGLConfigChooser(8,8,8,8,0,0); 所以任何建議,將不勝感激在此先感謝。 ByteBuffer PixelBuf

    2熱度

    1回答

    我想有一個光線可以從畫面到3D空間上點擊鼠標跟蹤。據我所知,默認的位置和方向是這樣的: 從這個代碼: GLint viewport[4]; GLdouble modelview[16]; GLdouble projection[16]; GLfloat winX, winY; GLdouble near_x, near_y, near_z; GL

    0熱度

    1回答

    以下代碼可以是使用glkit進行顏色拾取的完整模板。我只需要理解爲什麼屏幕外緩衝區中的所有像素都被着色(0,0,0),如下面的nslog所示。 注意:頂點數組在頭文件中被定義爲一個常量數組,它在我的項目的另一部分的屏幕上顯示得很好(我的問題在於屏幕外)。 頭文件 typedef struct { float Position[3]; float Color[4]; f

    1熱度

    1回答

    我無法找到在3D中使用射線追蹤方法拾取正確且可理解的表達式。有沒有人用任何語言實現這個算法?直接共享工作代碼,因爲由於僞代碼無法編譯,所以它們通常是用缺少的部分編寫的。