首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >OpenGL阴影语言不同类型的变量(限定符)

OpenGL阴影语言不同类型的变量(限定符)
EN

Stack Overflow用户
提问于 2011-05-31 19:38:24
回答 3查看 6.4K关注 0票数 13

我一直在用OpenGL编写程序。最近,我开始学习OpenGL阴影语言。我是个新手,所以请在你的回答中详细说明。

我的问题是:

  1. GLSL中不同类型的变量(限定符)是什么?
  2. 它们是用来干什么的?
  3. 他们之间有什么不同?

我只熟悉“可变”变量,它从顶点阴影传递到碎片阴影,以便在顶点之间进行内插。除此之外,我什么也不知道。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-31 23:37:21

在OpenGL 3+中:

  • 不建议使用varying
  • const是给..。常量!
  • uniform用于每次抽签调用(最多是)值
  • in用于从前一个管道阶段输入,即,如果使用glAttribDivisor和硬件实例化,则每个顶点(或每个片段)值最多为每个原语。
  • out用于下一阶段的输出

关于片段着色器的输出:在OpenGL3和up中,片段着色器输出的大多数内置变量(例如gl_FragColor,除了gl_FragDepth之外)都是不推荐的,应该用用户定义的out变量替换。

如果要输出到默认的框架缓冲区,则声明作为片段着色器输出的任何内容都会在颜色缓冲区中结束。如果您已经使用多个颜色缓冲区(即多个呈现目标)绑定了FBO,则需要通过out手动将每个glBindFragDataLocationIndexed变量绑定到正确的颜色缓冲区索引。

关于GLSL ('server')端和OpenGL ('client')端的所有详细信息都可以找到:

  • OpenGL规范中,特别是第248-250页,用于在片段着色器上输出颜色缓冲区.
  • GLSL规格中,第38页和关于着色器输出。
票数 21
EN

Stack Overflow用户

发布于 2011-05-31 19:56:29

  • 统一:每次抽签调用的固定数据,通常用于参数化着色器。
  • 变量:在VS和FS之间传输数据,在过程中沿原语进行插值。
  • 属性:这是顶点属性数据,顶点着色器的输入。它是为原语中的每个顶点指定的。
票数 2
EN

Stack Overflow用户

发布于 2011-05-31 19:43:31

查看教程:http://www.lighthouse3d.com/tutorials/glsl-tutorial/

有统一的变量(所有线程都是静态的)

属性变量(每个顶点注入)

变化(如你所知)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6196007

复制
相关文章
类型限定符
extern:声明一个变量,extern 声明的变量没有建立存储空间 const:定义一个常量,常量的值不能修改 volatile:防止编译器优化代码 register:定义寄存器变量,提高效率。如果 CPU 有空闲寄存器,register 就生效,如果没有空闲寄存器,那么 register 无效。
nnngu
2019/10/28
5870
OpenGL ES 着色语言
OpenGL ES 3.0的顶点着色器和片段着色器第一行总是声明着色器版本。 # version 300 es 没有声明版本的表示用的 OpenGL ES着色语言的1.0版本,对应OpenGL ES 2.0。
103style
2022/12/19
5930
IOS – OpenGL ES 调节图像阴影 GPUImageHighlightShadowFilter
GPUImageHighlightShadowFilter 属于 GPUImage 颜色处理相关,用来处理图片阴影,shader 源码如下:
猿说编程[Python和C]
2023/03/19
3900
IOS – OpenGL ES 调节图像阴影 GPUImageHighlightShadowFilter
26.opengl高级光照-阴影映射
涉及的代码不少,其实逻辑不复杂,参考原文和代码: learnopengl-阴影映射 learnopengl-阴影映射-代码
公号sumsmile
2020/07/16
1.1K0
C语言中不同变量的访问方式
C语言中的变量大致可以分为全局变量,局部变量,堆变量和静态局部变量,这些不同的变量存储在不同的位置,有不同的生命周期。一般程序将内存分为数据段、代码段、栈段、堆段,这几类变量存储在不同的段中,造成了它们有不同的生命周期。
Masimaro
2018/08/31
1.9K0
Python 语言基础变量获得变量类型
如果你对你 Python 使用的变量类型不是非常清楚的话,你可以使用函数 type 来获得变量的类型。
HoneyMoose
2021/03/08
5290
Python 语言基础变量获得变量类型
c语言之获取变量的类型
#include<typeinfo> using std::cout; int main() { int i; cout << typeid(i).name(); //输出结果为int return 0; } 需要引入头文件:#include<typeinfo>
西西嘛呦
2020/08/26
3.6K0
Python 语言基础变量的类型转换
和所有的程序语言都一样,如果使用了变量,但是变量是不同的数据类型,那么就会涉及到类型的转换。
HoneyMoose
2021/03/08
6970
Python 语言基础变量的类型转换
OpenGL ES 着色器语言丨音视频基础
我们在音视频基础主题专栏中关于渲染的文章里介绍了 OpenGL 和 OpenGL ES 的基础理论知识和相关 API,其中涉及到了一些简单 Shader 的使用,而编写 Shader 则需要用到 OpenGL Shader Language(后面简称 GLSL)和 OpenGL ES Shading Language(后面简称 GLSL ES)。
关键帧
2023/02/14
1.6K0
OpenGL ES 着色器语言丨音视频基础
OCCI处理CHAR类型字符串变量的不同
一个旧应用,原先应用是用proc写的,9i的库,现在应用需要改为使用OCCI,其中有一段查询逻辑:select ... where upper(state)=upper(:1)。
bisal
2019/01/29
9230
27.opengl高级光照-点光源阴影
接上一篇继续,实际中的光源几乎不会是平行光,点光比较多。点光的阴影生成原理和阴影映射基本相同,区别是阴影映射使用一张2D图作为深度缓存,点光照射是6个面,需要6个面的纹理来存储深度值
公号sumsmile
2020/07/21
1.4K0
27.opengl高级光照-点光源阴影
OpenGL ES _ 着色器_语法
OpenGL ES _ 入门_01 OpenGL ES _ 入门_02 OpenGL ES _ 入门_03 OpenGL ES _ 入门_04 OpenGL ES _ 入门_05 OpenGL ES _ 入门练习_01 OpenGL ES _ 入门练习_02 OpenGL ES _ 入门练习_03 OpenGL ES _ 入门练习_04 OpenGL ES _ 入门练习_05 OpenGL ES _ 入门练习_06 OpenGL ES _ 着色器 _ 介绍 OpenGL ES _ 着色器 _ 程序 OpenGL ES _ 着色器 _ 语法 OpenGL ES_着色器_纹理图像 OpenGL ES_着色器_预处理 OpenGL ES_着色器_顶点着色器详解 OpenGL ES_着色器_片断着色器详解 OpenGL ES_着色器_实战01 OpenGL ES_着色器_实战02 OpenGL ES_着色器_实战03
酷走天涯
2022/05/13
1.1K0
OpenGL ES _ 着色器_语法
OpenGL ES 3.0 简介
OpenGL ES 3.0实现了具有 可编程着色功能 的图形管线,由 OpenGL ES 3.0 API 和 OpenGL ES 着色语言3.0规范 组成。 下图中深色背景的 顶点着色器 和 片段着色器 为可编程阶段。
103style
2022/12/19
1.4K0
OpenGL ES 3.0 简介
GLSL ES 语言—变量数值类型
GLSL ES 要求你具体指明变量的数据类型: <类型> <变量名> 如 vec4 a_position。 在进行赋值操作(=)时,等号左右两侧的数据类型必须一样,否则会出错。
张晓衡
2019/09/11
3.1K0
【说站】python不同类型变量如何计算
以上就是python不同类型变量计算的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/23
5070
【说站】python不同类型变量如何计算
Shader 入门:GLSL ES(运算符和限定符)
使用 uniform 限定符来表示一个统一且只读的全局变量,该变量为所有着色器所共用。
陈皮皮
2020/07/10
2.9K0
Go 语言基础--变量&数据类型
Golang 变量声明和初始化比起其他语言要简单一些,并且丰富不少。 语法: var identifier type var 代表声明一个变量,identifier为变量名(go中变量名由字母、数字、下划线构成,首个字符不能为数字),type为变量类型。其中go变量的命名规则是建议驼峰式的。 常见的方式:
邹志全
2019/07/31
3840
C语言教程 - 变量和类型
不同类型的变量定义了它们的界限。一个char的范围只能从-128到127,而一个long的范围可以从-2,147,483,648到2,147,483,647(long和其他数字数据类型在不同的计算机上可能有另一个范围,例如——在64位计算机上从-9,223,372,036,854,775,808到9,223,372,036,854,775,807)。
星姮十织
2021/12/25
4600
变量类型-c语言学习笔记
#include <stdio.h> int main() { //unsigned定义一个无符号类型的字符变量 //计算机中使用8位来存储 //0000 0000 --> 最小值0 //1111 1111 --> 最大值255 //存储范围:0~255 unsigned char c=100; printf("%d\n",c); c=255; printf("%d\n",c); //定义一个char型变量,有符号型 //char型,使用Bbit来存储数据 //0 000 00
Youngxj
2018/06/07
5060
存储类型和变量的作用域(C语言)
在计算机中,用于存程序和数据的物理单元有寄存器和随机存储器(RAM)。寄存器速度快,空间少,常常只存放参加运算的少数变量。RAM比寄存器速度慢,但空间大,可存放程序和一般数据。RAM又分为堆栈区、系统区、程序区和数据区
ZackSock
2020/01/22
1.1K0

相似问题

用OpenGL阴影语言进行采摘

14

如何修复OpenGL阴影语言警告

13

是否有用于OpenGL阴影语言的lint工具?

311

openGL上的简单阴影着色器语言

11

WebGL和OpenGL使用相同的阴影语言吗?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文