c++教程 glfw包含了opengl嗎?
glfw包含了opengl嗎?不包括在內(nèi)。Glfw在OpenGL中幫助您創(chuàng)建一個(gè)簡(jiǎn)單的窗口。類(lèi)似于glut/freeglut。但是OpenGL是被驅(qū)動(dòng)的。只要你安裝了圖形驅(qū)動(dòng)程序,就會(huì)有OpenGL。
glfw包含了opengl嗎?
不包括在內(nèi)。Glfw在OpenGL中幫助您創(chuàng)建一個(gè)簡(jiǎn)單的窗口。類(lèi)似于glut/freeglut。但是OpenGL是被驅(qū)動(dòng)的。只要你安裝了圖形驅(qū)動(dòng)程序,就會(huì)有OpenGL。直接用就行了。一般來(lái)說(shuō),如果用于開(kāi)發(fā),glfw、glew和OpenGL就足夠了。Glew用于智能地加載許多OpenGL擴(kuò)展。編譯時(shí),首先加載OpenGL,然后加載glew,最后加載glfw。如果是windows,您可能需要gdi32。$g-墻-gmain.cpp文件-Lglfw-lglew32-lopengl32等。
GLFW庫(kù)在多線(xiàn)程中如何分別打開(kāi)窗口?
OpenGL本身不是API,只是一個(gè)規(guī)范,由Khronos制定和維護(hù)。OpenGL嚴(yán)格規(guī)定了每個(gè)函數(shù)應(yīng)該如何執(zhí)行以及它們應(yīng)該如何返回。至于如何實(shí)現(xiàn)其中的每個(gè)功能,將由OpenGL庫(kù)的開(kāi)發(fā)人員來(lái)決定。因?yàn)镺penGL規(guī)范沒(méi)有指定實(shí)現(xiàn)的細(xì)節(jié),所以允許特定的OpenGL庫(kù)使用不同的實(shí)現(xiàn),只要它們的函數(shù)和結(jié)果與規(guī)范匹配。早期OpenGL采用即時(shí)渲染模式(即固定的渲染管道),繪制圖形非常方便。OpenGL的大部分函數(shù)都被庫(kù)隱藏,開(kāi)發(fā)人員很少控制OpenGL的計(jì)算方式。開(kāi)發(fā)人員需要更多的靈活性。隨著時(shí)間的推移,規(guī)范變得更加靈活,開(kāi)發(fā)人員對(duì)繪圖細(xì)節(jié)有了更多的控制。即時(shí)渲染模式非常容易使用和理解,但效率太低。因此,從opengl3.2開(kāi)始,規(guī)范開(kāi)始放棄即時(shí)渲染模式,引入核心模式,徹底去除了原有的功能。在我們能夠繪制出優(yōu)秀的效果之前,首先要做的是創(chuàng)建一個(gè)OpenGL上下文和一個(gè)用于顯示的窗口。但是,每個(gè)系統(tǒng)上的這些操作是不同的。OpenGL有目的地抽象這些操作。這意味著我們必須自己創(chuàng)建窗口、定義OpenGL上下文和處理用戶(hù)輸入。幸運(yùn)的是,有些庫(kù)已經(jīng)提供了我們需要的功能,其中一些是專(zhuān)門(mén)為OpenGL提供的。這些庫(kù)為我們節(jié)省了編寫(xiě)平臺(tái)相關(guān)代碼的時(shí)間,并為我們提供了一個(gè)要呈現(xiàn)的窗口和上下文。最流行的庫(kù)是glut、SDL、sfml和glfw。Glfw是一個(gè)專(zhuān)門(mén)針對(duì)OpenGL的C語(yǔ)言庫(kù),它提供了一些渲染
建議您查看以下內(nèi)容:
learnponggl CN。另外,讓我們了解一下glad、glew、glfw和freeglut之間的區(qū)別:
glew(OpenGL擴(kuò)展Wrangler庫(kù))是底層OpenGL接口的封裝,它可以使代碼跨平臺(tái)。
Glad與glew具有相同的功能,因此可視為升級(jí)版。
Freeglut(OpenGL實(shí)用工具包)主要用于創(chuàng)建OpenGL上下文、接收一些鼠標(biāo)和鍵盤(pán)事件等。
Glfw(圖形庫(kù)框架)是freeglut的升級(jí)版本,其功能基本相同。
一般來(lái)說(shuō),glad和glfw一起使用。例如,我在上面發(fā)布的網(wǎng)站是。
Glew和freeglut一起使用,例如上面的OpenGL紅皮書(shū)示例。