OpenGL 将着色器附加到程序

2024-04-22

有没有办法访问附加到程序的着色器?也就是说,给定一个程序,我可以做类似的事情:

vertexShader = getVertexShaderFromProgram(program);

(我想在验证我的程序的函数中记录着色器编译状态,但我只保留对程序的引用,而不是着色器。)


  1. glGetAttachedShaders() http://www.opengl.org/sdk/docs/man/html/glGetAttachedShaders.xhtml获取附加到给定程序对象的着色器的名称。

  2. glGetShaderiv( ..., GL_SHADER_TYPE, ... ) http://www.opengl.org/sdk/docs/man/html/glGetShader.xhtml获取着色器的类型(顶点、几何体、片段)。

  3. glGetShaderiv( ..., GL_SHADER_SOURCE_LENGTH, ... ) http://www.opengl.org/sdk/docs/man/html/glGetShader.xhtml在每个着色器名称上以确定源的长度。

  4. glGetShaderSource() http://www.opengl.org/sdk/docs/man/html/glGetShaderSource.xhtml获取每个附加着色器的源字符串。

EDIT:如果您需要的只是着色器名称和类型,您可以在步骤 2 后停止。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenGL 将着色器附加到程序 的相关文章

  • 如何创建一个 numpy 数组来描述三角形的顶点?

    我喜欢使用 Numpy 创建要传递到的顶点数组glsl Vertices将是一个包含 3 个顶点信息的 numpy 数组 Each vertex包括 pos x y 具有 32 位的 64 位有符号浮点格式 R 分量位于字节 0 3 中 3
  • OpenGL 超级采样抗锯齿?

    在办公室 我们正在使用旧的 GLX Motif 软件 该软件使用 OpenGL 的 AccumulationBuffer 来实现保存图像的抗锯齿功能 我们的问题是Apple从其所有驱动程序中删除了AccumulationBuffer 从OS
  • glGenerateMipmap 是否在 sRGB 纹理的线性空间中执行平均?

    OpenGL 3 3 规范似乎没有要求 mipmap 生成在线性空间中完成 我能找到的只有以下内容 派生的 mipmap 数组的内部格式都与 levelbase 数组和派生数组的维度如下 第 3 8 14 节中描述的要求 的内容 派生数组是
  • Qt 5 和 OS X Mavericks 问题

    我正在使用 Cmake 在 OS X 10 9 上构建 QT 项目 自 Mavericks 以来 OpenGL 标头的位置似乎发生了变化 文件夹 System Library Frameworks OpenGL framework Head
  • 着色器/矩阵问题 - 看不到对象

    我试图在屏幕上放置一个立方体并点亮它 我想要在立方体上添加 phong 阴影 当我运行代码时 我可以看到背景图像 但看不到立方体 我相当确定立方体本身是正确的 因为我已经设法用纯色着色器显示它 我已经设法编译着色器程序 但我根本看不到立方体
  • 从文件中读取 GLSL 着色器

    我正在尝试从如下所示的文件中读取顶点和片段着色器 version 330 core in vec3 ourColor out vec4 color void main color vec4 ourColor 1 0f but when i
  • 将glm四元数转换为旋转矩阵并与opengl一起使用

    所以我将对象的方向存储在 glm fquat 中 我想用它来旋转我的模型 我怎么做 我试过这个 glPushMatrix glTranslatef position x position y position z glMultMatrixf
  • OpenGL 说“from_param 收到了一个不连续的数组”

    安装 Yosemite 后 我必须升级 numpy PyOpenGL 等 现在 以前运行的程序给了我以下堆栈跟踪 file latebind pyx line 44 in OpenGL accelerate latebind Curry c
  • 三角形未在 OSX 上的 OpenGL 2.1 中绘制

    我正在学习有关使用 OpenGL 在 Java 中创建游戏引擎的教程 我正在尝试在屏幕上渲染一个三角形 一切运行良好 我可以更改背景颜色 但三角形不会显示 我还尝试运行作为教程系列的一部分提供的代码 但它仍然不起作用 教程链接 http b
  • glutPostRedisplay 不在循环内工作

    我试图让一个人在 y 轴上跳跃 所以我使用 2 秒的循环 第一秒它应该向下移动并弯曲膝盖 第二秒它应该向上移动 然后在起始位置完成 现在我刚刚开始让这个人在第一秒内跪下并弯曲膝盖 我还没有编写动画的其余部分 问题是 glutPostRedi
  • QOpenGLFunctions 缺少重要的 OpenGL 函数

    QOpenGLFunctions 似乎缺少重要的函数 例如 glInvalidateFramebuffer 和 glMapBuffer 据我了解 QOpenGLFunctions 加载桌面 OpenGL 函数和 ES 函数的交集 如果是这样
  • 即使在顶点着色器中使用,glGetUniformLocation()也会返回-1

    我正在尝试用法线渲染一个简单的立方体 我使用以下代码来初始化着色器 void initShader const char vertexShaderPath const char fragmentShaderPath cout lt lt I
  • 如何将点光源转换为卵形/椭圆形?

    我希望通过具有不同 x 和 y 值的 vec2 半径将当前的圆形光变成椭圆形 有没有办法根据我当前在片段着色器中的代码来做到这一点 uniform struct Light vec4 colour vec3 position vec2 ra
  • lwjgl 3 , glUniformMatrix4 导致 jre 崩溃

    我正在使用 lwjgl 3 并学习现代 opengl 3 我想将统一矩阵发送到顶点着色器 以便我可以应用转换 我尝试过 但程序因此错误而崩溃 A fatal error has been detected by the Java Runti
  • 将像素传递给 glTexImage2D() 后会发生什么?

    例如 如果我创建一个像素数组 如下所示 int getPixels int pixels new int 10 pixels 0 1 pixels 1 0 pixels 1 1 etc glTexImage2D getPixels glTe
  • Eclipse 标记 OpenGL 函数无法解析

    我尝试在 Eclipse C C 中使用一些 OpenGL 函数 一些 标准 函数如 GlClear 可以被 eclipse 识别 而其他函数如 glBindBuffer 和 glEnableVertexAttribArray 则不能 它们
  • 使用 C# 截取任何外部应用程序的屏幕截图

    我们有一个 C WPF 应用程序 我们想要在其中截取我们启动的任意应用程序的屏幕截图 即 我们可以引用我们启动的进程 应用程序可能已最小化或位于其他窗口后面 但我们仍然只需要单个应用程序的图像 而不是重叠像素 我知道使用 BitBlt 或的
  • 如果我用opengl绘图的话SDL Renderer就没用了吗?

    我正在学习 SDL2 但我也在使用使用 OpenGL 调用的 imgui 库 从我在网上各种博客上读到的内容来看 我无法轻松混合 SDL2 渲染器和 opengl 调用 我要么使用其中之一 要么使用另一个 我读过的大多数教程都使用渲染器 所
  • 无法在 WSL2 上运行 OpenGL

    我尝试在 WSL2 上运行 OpenGL 代码 但在尝试运行可执行文件时出现以下错误 GLFW error 65543 GLX Failed to create context GLXBadFBConfig Unable to create
  • 为什么拥有单独的投影矩阵但结合模型和视图矩阵会有好处?

    当您学习 3D 编程时 您会被告知用 3 个变换矩阵来思考是最简单的 模型矩阵 该矩阵对于每个模型都是独立的 它根据需要旋转和缩放对象 最后将其移动到 3D 世界中的最终位置 模型矩阵将模型坐标转换为世界坐标 视图矩阵 对于大量对象 如果不

随机推荐

  • C++ 特征值/向量分解,只需要快速的前n个向量

    我有一个 3000x3000 协方差相似矩阵 在其上计算特征值 特征向量分解 它是一个 OpenCV 矩阵 我使用cv eigen 完成工作 然而 我实际上只需要前 30 个特征值 向量 我不关心其余的 从理论上讲 这应该可以显着加快计算速
  • 托盘栏中打开多个图标

    我正在开发一个 Windows 应用程序 当我运行该应用程序时 托盘栏上会出现多个图标 当我将鼠标悬停在这些图标上时 它们就会消失 有人知道为什么会发生这种情况吗 protected override void OnClosed Event
  • 在 ASP.NET 身份框架中更改时刷新当前用户的角色?

    使用 VS 2013 标准 MVC 模板和身份提供程序框架 用户已登录 我有 UserManager AddToRole User Identity GetUserId Members Line X RedirectToAction Ind
  • 无法通过 Godaddy 服务器在 ASP.NET 中发送电子邮件

    我有一个托管在 Godaddy 上的 ASP NET 应用程序 我想从中发送电子邮件 当它运行时 我得到 不允许使用邮箱名称 服务器响应是 抱歉 您所在位置的中继被拒绝 代码和Web config的重要部分如下 msg new MailMe
  • 防止 RichTextBox 自动滚动

    我有一个使用 RichTextBox 控件实现的只读数据记录窗口 我希望能够禁用用户单击控件时发生的自动滚动 以便用户可以选择特定日志进行复制 粘贴操作或其他操作 然而 一旦用户单击 RichTextBox 它就会自动滚动到底部 这使得这变
  • 在上下文中绘图时如何翻转坐标?

    我从 UIImage 创建一个上下文 然后使用 CGContextDrawImage bitmapContext CGRectMake 0 0 originalImage size width originalImage size heig
  • 适用于 BlackBerry 的 QR 码阅读器

    是否有 BlackBerry 库 组件 开源或商业 可集成到我自己的应用程序中充当 QR 码阅读器 我想将它完全集成到我的应用程序中 或者 有没有办法使用开源中兴图书馆 http code google com p zxing 与相机结合使
  • UIViewController 的 viewDidAppear 在模式关闭后不会被调用

    UIViewController 视图 A 通过将另一个视图控制器 视图 B 作为模态控件调用来调用它 自我呈现模态视图控制器 视图是动画的 TRUE 视图 B 通过调用而存在 自我解雇ModalViewControllerAnimated
  • 禁用 youtube api 的全屏

    我有一个带有片段的应用程序 在这些片段内我有框架布局 我在其中添加了 YouTubePlayerSupportFragment 但是当我单击全屏时 会引发此异常 java lang RuntimeException 无法启动活动 Compo
  • 使用 Spring 映射嵌套 json 和 POJO

    我正在实现一个 REST API 它使用 json 发送和接收数据 我对这个 API 设计完全陌生 我正在使用 Spring 框架和 requestbody responsebody 进行映射 最初 我有一个这样的 pojo public
  • 通过 ID 从 Firebase 检索 Java 对象

    我正在编写一个 Android 应用程序 我正在尝试检索该类的对象User java按 Firebase 相关表中的 ID 我想知道如何从Java端获取它 只要我尝试了中所述的示例Firebase 官方文档 https www fireba
  • 时间戳转字符串日期

    我不知道如何将时间戳转换为日期 我有 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R lay
  • 实体框架、外键和EntityKey

    我的实体框架和外键有问题 我有一个表 BC Message Assets 其中有 3 个 FK MessageId AssetId 和 StatusId 我像这样创建我的 MessageAsset MessageAsset messageA
  • 如何快速将6字节无符号整数复制到内存区域?

    我需要将 6 字节整数值复制到内存区域中 从其开头开始并尽可能快地复制 如果硬件支持这样的操作 我想使用它 我现在使用的是 x64 处理器 编译器是 GCC 4 6 3 The memset不适合这项工作 因为它只能复制字节 这std fi
  • 无法在 Ubuntu 16.04.2 LTS 上启动 docker(初始化 graphdriver 时出错)

    使用systemctl启动docker时遇到以下错误 Job for docker service failed because the control process exited with error code See systemct
  • 查找给定纬度/经度的位置(邮政编码、城市、州)的最快方法

    我需要一个免费 开源 的解决方案 给定纬度 经度可以返回最近的城市 州或邮政编码 mysql 不是一个选择 如果可能的话 小型轻量级数据库将是最好的 更新 没有网络服务 每天有 5000 万次展示 即使是最小的插件也会造成伤害 因此添加服务
  • 画布图像的图像效果不通过 php 上传保存,但适用于下载同一画布文件

    这是显示该问题的 YouTube 视频 https www youtube com watch v znzLQSYlsKM https www youtube com watch v znzLQSYlsKM 我给出了视频描述中涉及的所有代码
  • AngularJS 从文本创建 html/link/anchor (escape/unescape html in view)

    我有一个具有指定值的控制器 scope post please visit http stackoverflow com quickly 我的 html 中有一些文本 p post p 我想制作一个可点击的网址链接 用锚标记包围它 我尝试将
  • 使用 HTML5sortable 序列化 AJAX 数据

    我正在使用一个简洁的 jQuery 排序插件 HTML5 Sortablehttp farhadi ir projects html5sortable http farhadi ir projects html5sortable 但还没有找
  • OpenGL 将着色器附加到程序

    有没有办法访问附加到程序的着色器 也就是说 给定一个程序 我可以做类似的事情 vertexShader getVertexShaderFromProgram program 我想在验证我的程序的函数中记录着色器编译状态 但我只保留对程序的引