Learning Modern 3D Graphics Programming
最近學(xué)習(xí)管道編程季率,閱讀<<Learning Modern 3D Graphics Programming>>。里面提供的代碼環(huán)境使用了glSDK,只能運(yùn)行在Linux和Window環(huán)境下攀唯。于是蟀悦,在學(xué)習(xí)的同時(shí)媚朦,我也照著官方Demo開(kāi)發(fā)mac環(huán)境下的教程。每個(gè)章節(jié)最后的效果可能有所差別日戈,但是涉及到的知識(shí)點(diǎn)與整體框架和Demo相同莲镣。
環(huán)境搭建
搭建環(huán)境一開(kāi)始參考官方Demo使用freeglut,但總是無(wú)法編譯shader涎拉,提示不支持shader #330版本。后來(lái)發(fā)現(xiàn)osX官方提供了GLUT框架的圆,通過(guò)指定使用glutInitDisplayMode(GLUT_3_2_CORE_PROFILE|...|...)
可以編譯shader鼓拧。最后也處于對(duì)window和Linux平臺(tái)的兼容,于是決定使用glfw3的庫(kù)作為開(kāi)發(fā)環(huán)境越妈。
<pre><code>ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
install glfw3:
brew install homebrew/versions/glfw3
</code></pre>通過(guò)glfw3設(shè)置OpenGL版本季俩。
<pre><code>glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
</code></pre>
github項(xiàng)目地址