Vertex ShaderPixel Shader介绍

2024-03-28 18:58

本文主要是介绍Vertex ShaderPixel Shader介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Vertex Shader & Pixel Shader 介绍

1.固定功能的图形处理流水线(fixed function graphics pipeline)

能够实现Vertex Shader和Pixel Shader的显卡的图形处理流水线被称作为是可编程的,相对而言,在此之前的图形处理流水线被称作为是固定功能(fixed function),下面是OpenGL图形处理的一个简图:

      完整的OpenGL图形处理流水线为称作为OpenGL机器(OpenGL machine,在OpenGL参考手册上可以找到这份框架图),就像一个电路图一样,上面有许许多多的开关,我们可以打开或者闭合这些开关,还可以设置图中各个处理单元的参数以控制处理的方法,但是无论如何整个系统的功能已经确定下来了,你只有使用或者不使用某些功能和控制某些功能的具体执行方法的权利而无法实现自己定制的功能,所以这样的图形处理流水线被称作为是固定功能的。(有实力的显卡厂商在自己的OpenGL实现中添加了许多OpenGL扩展实现了一些标准OpenGL规范所没有的功能,现在有了可编程的图形流水线,一般用户也有机会实现一些自己定制的功能。)

2. Vertex Shader & Pixel Shader

虽然实现Vertex Shader和Pixel Shader功能的图形流水线被称作为是可编程的,但是实际上可编程的只有流水线的一部分,正如Vertex Shader 和Pixel Shader的字面意思一样,现在可编程的部分只有处理顶点的和处理象素的单元。

    Vertex Shader 和 Pixel Shader在不同的文档里面有不同的叫法,Nvidia在自己的OpenGL扩展中把Vertex Shader叫做Vertex Program、把Pixel Shader叫做Texture Shader,3Dlabs在自己提出一份OpenGL 2.0的提议里面把这两者分别叫做Vertex Shader和Fragment(片元)Shader。抛开叫法的差异,实际上的功能都是差不多的,下面的一段话对这种状况作了一个完美的解释:

    Shader or Program? Shader has been used as the preferred name as this fits in with common usage in RenderMan and DX8. There is some argument that shading has connotations of being a color operation so doesn't fit with a vertex operation. RenderMan doesn't make this distinction, nor does DX8. It seems wise to go along with the common usage of shader as a general term for a program which operates on some part of a graphics pipeline.

    (Shader 还是 Program,在RenderMan和DX8中,通常情况下倾向于使用Shader这个名字。这个叫法有一些争议,因为Shading蕴涵地表示为进行了相关的颜色操作而不适合用来描述顶点操作。但是在RenderMan和DX8中并没有理会这种区别。所以跟随通常的叫法,把Shader作为在图形处理流水线某些部分起作用的program的一般术语似乎是一个明智的做法。)

这篇关于Vertex ShaderPixel Shader介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/856440

相关文章

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

JSR-107缓存规范介绍

《JSR-107缓存规范介绍》JSR是JavaSpecificationRequests的缩写,意思是Java规范提案,下面给大家介绍JSR-107缓存规范的相关知识,感兴趣的朋友一起看看吧... 目录1.什么是jsR-1072.应用调用缓存图示3.JSR-107规范使用4.Spring 缓存机制缓存是每一