1.1.hello_window :创建一个800x600 的window;
1.2.hello_window_clear:利用glClearColor()/glclear() 设置窗口颜色;
2.1.hello_triangle:画一个三角形;
2.2.1hello_triangle_indexed :用EBO 画一个三角形;
2.3.hello_triangle_exercise1:画两个三角形表示一个矩形
2.4.hello_triangle_exercise2分别用两个VAO/VBO画两个三角形表示一个矩形
2.5.hello_triangle_exercise3分别用两个VAO/VBO两个片段着色器 画两个三角型;一个三角形为橙色,一个三角形为黄色;
3.1.shaders_uniform用Uniform 指定片段着色器输出颜色;
3.2.shaders_interpolation用layout 方式将定点颜色数据传至着色器, 画个一个五彩颜色的三角形.
3.3.shaders_class为了方便调用,新建sharder 类;
3.4.shaders_exercise1将三角型顶点朝下;
3.5.shaders_exercise2给三角形位置加个偏移;
3.6.shaders_exercise3将顶点着色器的位置当成片段着色器颜色输出;
4.1.textures加载一张纹理图片;
4.2.textures_combined将纹理贴在箱子上;
4.3.textures_exercise1将箱子上的纹理左右反向;
4.4.textures_exercise2设置纹理坐标为0-2, 设置纹理绘制为repeat, 生成4个笑脸;
4.5.textures_exercise3设置纹理坐标位于顶点坐标中间位置;
4.6.textures_exercise4设置纹理合成透明值;
5.2.transformations_exercise1旋转+平移
5.2.transformations_exercise2旋转+平移+缩放
6.1.coordinate_systemsmodel + view + projection 坐标系统
6.2.coordinate_systems_depth立方体贴图,将一个箱子六个面都贴上纹理;
6.3.coordinate_systems_multiple画十个立方体贴图;
6.4.coordinate_systems_exercise3画十个立方体贴图,第三的倍数个时进行旋转;
7.2.camera_keyboard_dt画出立方体贴图,通过按键可浏览不同贴图的位置;
7.3.camera_mouse_zoom画出立方体贴图,通过鼠标可浏览不同角度位置并可缩放;
7.4.camera_class定义camera 类,可从不同角度浏览立方体位置;
7.5.camera_exercise1通过按键可改变浏览位置;
7.6.camera_exercise2自定义lootAt 矩阵
1.colors
2.1.basic_lighting_diffuse基础光照+漫反射
2.1.basic_lighting_diffuse
2.2.basic_lighting_specular基础光照+漫反射+镜面光照
2.3.basic_lighting_exercise1改变光源的位置
2.4.basic_lighting_exercise2
2.5.basic_lighting_exercise3
3.1.materials :不同材料对光的反射不同。
3.2.materials_exercise1
4.1.lighting_maps_diffuse_map
4.2.lighting_maps_specular_map
4.3.lighting_maps_exercise2
4.4.lighting_maps_exercise4
5.1.light_casters_directional
5.2.light_casters_point
5.3.light_casters_spot
5.4.light_casters_spot_soft
6.multiple_lights
1.1.depth_testing :深度测试
1.2.depth_testing_view : 指定当目标像素小于当前像素, 绘制目标像素;
2.stencil_testing : 模板测试
3.1.blending_discard : 将多个纹理进行blending
3.2.blending_sort : 根据透明值进行blending
4.face_culling_exercise1
5.1.framebuffers : 将纹理绑定至framebuffer
5.2.framebuffers_exercise1 : 将纹理绑定至framebuffer
6.1.cubemaps_skybox : 天空盒
6.2.cubemaps_environment_mapping : 立方体贴图
8.advanced_glsl_ubo :uniform buffer object 多个着色器之间共享变量
9.1.geometry_shader_houses : 通过画三角形画出一个房子
9.2.geometry_shader_exploding
9.3.geometry_shader_normals
10.1.instancing_quads :画多个重复的实例,glDrawArrayInstanced();
10.2.asteroids : 绘制小行星
10.3.asteroids_instanced
11.1.anti_aliasing_msaa:抗锯齿
11.2.anti_aliasing_offscreen
1.advanced_lighting
2.gamma_correction
3.1.1.shadow_mapping_depth
3.1.2.shadow_mapping_base
3.1.3.shadow_mapping
3.2.1.point_shadows
3.2.2.point_shadows_soft
3.3.csm
4.normal_mapping
5.1.parallax_mapping
5.2.steep_parallax_mapping
5.3.parallax_occlusion_mapping
6.hdr
7.bloom
8.1.deferred_shading
8.2.deferred_shading_volumes
9.ssao
1.1.lighting
1.2.lighting_textured
2.1.1.ibl_irradiance_conversion
2.1.2.ibl_irradiance
2.2.1.ibl_specular
2.2.2.ibl_specular_textured