learnOpenGl

news/2024/12/29 2:14:21/

LearnOpenGl

1,入门

       1.1.hello_window

               创建一个800x600 的window;
       1.2.hello_window_clear

                利用glClearColor()/glclear() 设置窗口颜色;

       2.1.hello_triangle

                画一个三角形;
        2.2.hello_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.1.transformations

                纹理旋转
        5.2.transformations_exercise1

                旋转+平移
        5.2.transformations_exercise2

                旋转+平移+缩放
        6.1.coordinate_systems

                model + 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 矩阵

    2,光照:
        1.colors

               
        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
        6.multiple_lights_exercise1

3,模型:
        1.model_loading

4,高级操作:
        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
    5 高级光照:
        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
    6,pbr:
        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
    7, in practice:
        1.debugging
        2.text_rendering
        3.2d_game


http://www.ppmy.cn/news/1868.html

相关文章

MySQL分区表对NULL值的处理

GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。作者:王权富贵 1.概述 MySQL的分区表没有禁止NULL值作为分区表达式的值,无论它是列值还是用户提供的表…

【docker】配置深度学习环境

目录基本环境搭建问题与解决容器启动后添加端口映射安装完虚拟环境后 CUDA调用不了opencv的使用问题自定义软件包的使用基本环境搭建 容器基本操作: # 按照服务器配置拉取对应的镜像 docker pull pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel# 查看主机端口 没有信…

JAVA中如何精确取到时间间隔

文章目录0 写在前面1 使用方法2 举例3 写在最后0 写在前面 做业务的时候,总要统计数据,几月份到几月份的全部数据。这个时候就要找到起始月份的具体时间和终止月份的具体时间。 此时我们用原始的Date类去处理就比较麻烦,可以自己写一个工具类…

校园论坛(Java)—— 校园周边模块

校园论坛(Java)—— 校园周边模块 文章目录校园论坛(Java)—— 校园周边模块1、写在前面2、系统结构设计2.1 各个页面之间的调用关系2.2 校园周边页面设计3、校园周边模块设计3.1 校园周边主界面的实现3.2 增加附近的交通信息4. 总…

微服务守护神-Sentinel-概念

引言 书接上篇 微服务应对雪崩的容错方案 ,大概知道微服务容错方案可以从隔离、超时、限流、熔断、降级这几方面入手。好了,理论了解了,那代码落地方案?这是后本篇的主角要登陆场:Sentinel,微服务的守护神…

(Java)Mybatis学习笔记(四)

前言 继续学习自定义映射,今天便是mybatis初步学完的最后一天了,加油,奥里给~ 搭建MyBatis框架 步骤说明 创建表时把email打成了eamil,导致报了下错 1️⃣在mybatis下创建一个module 2️⃣配置pom.xml文件,导入相…

SpringCloud框架(三):微服务优化,Feign的最佳实现方案

SpringCloud环境搭建:生产和消费 RestTemplate Spring章节复习已经过去,新的章节SpringCloud开始了,这个章节中将会回顾微服务相关 主要依照以下几个原则 每一个组件的Demo和Coding上传到我的代码仓库在原有基础上加入一些设计模式&#xf…

kubernetes,service详解下

kubernetes,service详解下 HeadLiness类型的Service 在某些场景中,开发人员可能不想使用Service提供的负载均衡功能,而希望自己来控制负载均衡策略,针对这种情况,kubernetes提供了HeadLiness Service,这类…