glm-math

    0熱度

    1回答

    我正在努力的OpenGL圖形引擎,我遇到了一個非常奇怪的問題。基本上我正在導入(通過Assimp).DAE場景(由Cinema4D製作),其中還包含一個攝像頭。相機位於原點並向左旋轉20度並向上旋轉20度,以使立方體的一部分出現在視口的右下角。 當渲染我先計算出「全球性」的lookAt矩陣,通過將攝像頭節點的世界變換矩陣場景圖中的的lookAt矩陣: cameraMatrix = transfor

    0熱度

    1回答

    我的程序是一個房間,中間有一個光源(球體)。 我希望做一個「迪斯科」的模式,這將使球向左移動和沿x軸的權利。同時在紅色和藍色之間切換顏色。 這是我的代碼,使模式的部分。 g_disco_mode是一旦模式被選擇就爲真的變量。 static void update_scene() { ... // Disco mode if (g_disco_mode)

    1熱度

    1回答

    我的程序是一個房間,中間有一個聚光燈(由球體描繪)。 我想在房間的角落增加2個燈,但我不知道如何改變main功能在我的片段着色器允許這樣。我編輯了我的主程序來設置2個新燈的屬性並將它們綁定到片段着色器。 片段着色器 #version 330 core #define MAX_MATERIALS 12 #define MAX_LIGHTS 3 // interpolated values

    1熱度

    1回答

    我想創建一個GLM向量(glm :: vec3專門)的std :: set。由於C++不知道如何對向量執行<操作,因此我必須傳入比較函數。 我可以通過創建像這樣的結構寫我自己: struct compareVec { bool operator() (const glm::vec3& lhs, const glm::vec3& rhs) const { retur

    0熱度

    1回答

    我無法弄清楚如何從我的對象的模型矩陣中提取圍繞全局y軸的旋轉。 我有我的對象作爲glm :: mat4的當前模型矩陣,我需要取消圍繞y軸的旋轉。 glm中有沒有什麼功能我沒注意到?

    1熱度

    1回答

    我想弄清楚在OpenGL中將3D轉換矩陣轉換爲2D的方法。我的z座標被忽略(我正在使用地面投影)。 這裏是什麼,我想實現一個例子: // Given a transformation matrix // | r00 r01 r01 t0 | // | r10 r11 r11 t1 | // | r20 r21 r21 t2 | // | 0. 0. 0. 1. | // // Igno

    -1熱度

    1回答

    只是一個有關GLM的快速問題。 我是C++和GLM的新手,對我很感興趣。 我不明白這行做了什麼: glm::vec4 vec(1.0f, 0.0f, 0.0f, 1.0f); 什麼是 「血管內皮細胞」?方法名稱?一個構造函數?如果我重構它(重命名它),它仍然有效。 我知道它一定是一個變量,但它看起來像一個方法給我。 謝謝

    0熱度

    1回答

    這是很容易設置ViewMatrix與GLM: glm::lookAt(Position, Direction, UpVector); ,但如果我嘗試使用的Funktion與modelMatrix,我會得到comfusing值(型號是不是在正確的位置並且旋轉看起來不正確)。 我只是想設置一個對象相同的方式設置相機。 我可以使用lookAt功能並在之後進行一些更改嗎?或者我必須爲此編寫自己的功能?

    0熱度

    2回答

    我無法通過統一的sampler2Ds發送兩個紋理到我的片段着色器。我的片段着色器有兩個制服,但看起來我的代碼將同一圖像發送給兩個採樣器。首先綁定的紋理似乎自動綁定到兩個制服。 完整C++代碼如下: #define GLEW_STATIC #include <GL/glew.h> #include <GLFW/glfw3.h> #include <glm/glm.hpp> #include

    2熱度

    1回答

    我可以實現AABB方法來檢測碰撞,它很容易且便宜,但是我想實現OBB以獲得更高的精度,所以我創建了包含8個邊界的模型初始化的邊界框頂點和中心,每幀我轉換所有的頂點與變換矩陣,以適應定向包圍盒,但我不明白的方法來檢測兩個OBB之間的碰撞,我找不到一個簡單和清晰的教程,解釋算法與代碼觀點不是數學,因爲我不是數學家。 ,如果我有 struct Box { glm::vec3 vertices[