热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

着色器_介绍

着色器语言(OpenGLShadingLanguage),GLSL是着色器语言的通称,是一门编程语言,用于创建做编程的着色器,OpenGL

着色器语言(OpenGL Shading Language) ,GLSL是着色器语言的通称,是一门编程语言,用于创建做编程的着色器,OpenGL 着色器语言允许应用程序显示的指定在处理顶点和片段时所指定的操作.

学习目标



理解使用OpenGL 2.0 着色器语言编写的可编程着色器的结构和内容

OpenGL 图像管线和可编程着色器



OpenGL 操作分为两个部分,第一部分对顶点进行处理,第二部分对片段进行处理。这些操作可以通过代码进行控制,但是程序内部的执行顺序不能进行控制,这种操作模式被称为"固定功能的管线".

 

OpenGL 固定功能管线


  • 顶点数据
    先上一张图了解一下顶点处理过程

  •  

    顶点处理管线


    当OpenGL 使用固定功能的管线处理顶点的时候,它负责提供下面的值,主要用于后面的栅格化处理:
    1.视觉空间坐标
    2.主颜色和辅助颜色
    3.纹理坐标
    4.雾坐标
    5.点的大小


    顶点管线可能不会对上面所有的值进行更新,这些值都是应用程序根据glVertex()* 和 其他顶点数据调用所输入的数据进行计算的.
    顶点着色器不是代替了所有的顶点管线中的操作,在顶点着色器执行完之后,下面的操作仍然可以出现:
    1.透视除法
    2.窗口映射
    3.图元装配
    4.平截头(视景体)和用户裁剪
    5.背面剔除
    6.双面光照选择
    7.多变形模式处理
    8.多变形偏移
    9.深度范围截取

     

  • 片段处理
    同样先上一张图,方便大家理解

 

片段处理管线

 

片段着色器可以处理的操作有:
1.提取纹理单元,用于纹理贴图
2.纹理应用
3.雾
4.主色和辅助色颜色混合
提示:无论是否使用片段着色器,OpenGL 总是会执行下面的操作:
5.单调或平滑着色
6.像素覆盖计算
7.像素所有权测试
8.裁剪操作
9.点画模式应用(OpenGL 3.1 已经删除掉了)
10.alpha 测试(OPenGL 3.2 已经删除了)
11.深度计算
12.模板测试
13.alpha 测试
14.对像素进行逻辑操作
15.颜色值得抖动
16.颜色掩码操作

总结



主要介绍了着色器语言是干神马的,以及顶点着色器和片段着色器的作用,下一节,我们将进行语法学习!



作者:酷走天涯
链接:https://www.jianshu.com/p/309d489bc344
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


推荐阅读
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 自学编程与计算机专业背景者的差异分析
    本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 本文详细介绍了如何在 Spring Boot 应用中通过 @PropertySource 注解读取非默认配置文件,包括配置文件的创建、映射类的设计以及确保 Spring 容器能够正确加载这些配置的方法。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 解决IIS无法访问映射网络驱动器的问题
    探讨IIS在尝试访问映射的网络驱动器时遇到的问题及其解决方案,包括配置和权限设置等方面的详细分析。 ... [详细]
  • 本报告涵盖了个人博客账号和码云账号的注册过程,以及对网络工程专业学习的反思与展望。通过回顾初入大学时的专业选择,分析当前的专业知识和技能水平,并对未来的职业规划进行了详细讨论。 ... [详细]
  • 图数据库中的知识表示与推理机制
    本文探讨了图数据库及其技术生态系统在知识表示和推理问题上的应用。通过理解图数据结构,尤其是属性图的特性,可以为复杂的数据关系提供高效且优雅的解决方案。我们将详细介绍属性图的基本概念、对象建模、概念建模以及自动推理的过程,并结合实际代码示例进行说明。 ... [详细]
  • 本文详细介绍了如何在Ubuntu系统中下载适用于Intel处理器的64位版本,涵盖了不同Linux发行版对64位架构的不同命名方式,并提供了具体的下载链接和步骤。 ... [详细]
  • 汇编语言等号伪指令解析:探究其陡峭的学习曲线
    汇编语言以其独特的特性和复杂的语法结构,一直被认为是编程领域中学习难度较高的语言之一。本文将探讨汇编语言中的等号伪指令及其对初学者带来的挑战,并结合社区反馈分析其学习曲线。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
author-avatar
叨B叨B叨叨叨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有