openGL系列文章目錄
文章目錄
- openGL系列文章目錄
- 前言
- 一、openGL鍵盤事件不響應
- 二、解決步驟
- 1.glfw庫事件響應回調函數
- 錯誤原因
- 運作結果
- 源碼下載下傳
前言
Gouraud 着色也容易受到其他僞影影響。如果鏡面高光整個範圍都在模型中的一個三角
形内——即高光範圍内一個模型頂點也沒有——那麼它可能不會被渲染出來。由于鏡面反射
分量是依頂點計算的,是以,當模型所有頂點都沒有鏡面反射分量時,其光栅化後的像素
也不會有鏡面反射光。
一、openGL鍵盤事件不響應
二、解決步驟
1.glfw庫事件響應回調函數
glfwSetKeyCallback(window, key_press_callback);
void key_press_callback(GLFWwindow* window, int key, int scancode, int action, int mode)
{
if ((key == GLFW_KEY_ESCAPE) && (action == GLFW_PRESS))
{
glfwSetWindowShouldClose(window, GL_TRUE);
}
if (action == GLFW_PRESS)
{
keys[key] == GLFW_TRUE; //這裡一定一定不能寫成“==“,否則 按鍵WSAD按鍵失效!!!!!!!
}
else if (action == GLFW_RELEASE)
{
keys[key] == GLFW_FALSE; //這裡一定一定不能寫成“==“,否則 按鍵WSAD按鍵失效!!!!!!!
}
}
修改
void key_press_callback(GLFWwindow* window, int key, int scancode, int action, int mode)
{
if ((key == GLFW_KEY_ESCAPE) && (action == GLFW_PRESS))
{
glfwSetWindowShouldClose(window, GL_TRUE);
}
if (action == GLFW_PRESS)
{
keys[key] = GLFW_TRUE; //這裡一定一定不能寫成“==“,否則 按鍵WSAD按鍵失效!!!!!!!
}
else if (action == GLFW_RELEASE)
{
keys[key] = GLFW_FALSE; //這裡一定一定不能寫成“==“,否則 按鍵WSAD按鍵失效!!!!!!!
}
}
錯誤原因
把
keys[key] == GLFW_TRUE;
keys[key] = GLFW_FALSE;
改成
keys[key] = GLFW_TRUE;
keys[key] = GLFW_FALSE;