《OpenGL编程指南(原书第9版)》——2.1 着色器与OpenGL「建议收藏」

《OpenGL编程指南(原书第9版)》——2.1 着色器与OpenGL

大家好,又见面了,我是全栈君。

2.1 着色器与OpenGL

现代OpenGL渲染管线严重依赖着色器来处理传入的数据。如果不使用着色器,那么用OpenGL可以做到的事情可能只有清除窗口内容了,可见着色器对于OpenGL的重要性。在OpenGL 3.0版本以前(含该版本),或者如果你用到了兼容模式(compatibility prof?ile)环境,OpenGL还包含一个固定功能管线(f?ixed-function pipeline),它可以在不使用着色器的情况下处理几何与像素数据。从3.1版本开始,固定功能管线从核心模式中去除,因此我们必须使用着色器来完成工作。
无论是OpenGL还是其他图形API的着色器,通常都是通过一种特殊的编程语言去编写的。对于OpenGL来说,我们会使用GLSL,也就是OpenGL Shading Language,它是在OpenGL 2.0版本左右发布的(在之前它属于扩展功能)。它与OpenGL的发展是同时进行的,并通常会与每个新版本的OpenGL一起更新。虽然GLSL是一种专门为图形开发设计的编程语言,但是你会发现它与“C”语言非常类似,当然还有一点C++的影子。
着色器是OpenGL非常基础的操作,因此很有必要尽早介绍它,让读者能够尽快适应它的代码编写。任何一种OpenGL程序本质上都可以被分为两个部分:CPU端运行的部分,采用C++之类的语言进行编写;以及GPU端运行的部分,使用GLSL语言编写。
本章将介绍编写着色器的方法,以循序渐进的方式讲解GLSL,讨论如何编译着色器并且与应用程序相结合,以及如何将应用程序中的数据传递到不同的着色器中。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108181.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Struts2拦截器实现异常处理[通俗易懂]

    Struts2拦截器实现异常处理[通俗易懂]Struts2拦截器实现异常处理机制在j2ee项目中,系统内部难免会出现一些异常,如果把异常放任不管直接打印到浏览器可能会让用户感觉莫名其妙,也有可能让某些用户找到搞定系统的方法。所以不要在页面上输出错误信息,使用log日志的方式处理异常并记录异常。就拿struts2+hibernate+spring项目说明:通常一个页面请求到后台以后,首先是到action(也就是所谓mvc的c

    2022年9月1日
    4
  • LoadRunner压力测试:测试报告结果分析

    LoadRunner压力测试:测试报告结果分析我们以测试场景“登录-退出”为例,对测试报告的结果进行分析说明。一、测试说明功能登录退出测试目的进行用户登录,评估服务器增长能力场景说明打开登录首页,用户名登录;进入登录后首页页面,点击退出登录事务说明用户登录动态数据说明登录用户名/登

    2022年7月18日
    25
  • Struts2–自定义拦截器三种方式(实现Interceptor接口、继承抽象类AbstractInterceptor、继承MethodFilterInterceptor)「建议收藏」

    Struts2–自定义拦截器三种方式(实现Interceptor接口、继承抽象类AbstractInterceptor、继承MethodFilterInterceptor)「建议收藏」实现自定义拦截器在实际的项目开发中,虽然Struts2的内建拦截器可以完成大部分的拦截任务,但是,一些与系统逻辑相关的通用功能(如权限的控制和用户登录控制等),则需要通过自定义拦截器实现。本节将详细讲解如何自定义拦截器。1.实现Interceptor接口在Struts2框架中,通常开发人员所编写的自定义拦截器类都会直接或间接地实现com.opensymphony.xwork2.in…

    2022年5月14日
    50
  • 何日请缨提锐旅,一鞭直渡清河洛。

    何日请缨提锐旅,一鞭直渡清河洛。

    2021年9月29日
    43
  • 10道Hadoop面试真题及解题思路「建议收藏」

    10道Hadoop面试真题及解题思路「建议收藏」(一)海量日志数据,提取出某日访问百度次数最多的那个IP。首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这100

    2022年6月22日
    22
  • 进入zookeeper客户端的操作步骤_ajp连接器配置secretRequired

    进入zookeeper客户端的操作步骤_ajp连接器配置secretRequiredzookeeper客户端使用原生JavaApi操作节点

    2022年4月21日
    104

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号