OpenGL 编译着色器已损坏

2024-02-01

我正在尝试在 OpenGL 3.2 中编译着色器程序,但遇到奇怪的链接错误。

创建顶点和片段着色器并编译并附加它们后,我尝试将它们链接到程序中,但收到以下信息日志错误:

ERROR: Compiled vertex shader was corrupt.
ERROR: Compiled fragment shader was corrupt.

我完全不知道这意味着什么,我在谷歌上唯一能找到的就是忽略它。但是,当我 glUseProgram() 时,我得到一个无效的操作,所以我不能忽略这个错误。

此外,我刚刚更新到 XCode 5,并且相同的代码/着色器源正在运行。虽然不知道它是如何关联的..

编辑:着色器源

Vertex:

#version 150

in vec3 position;

uniform mat4 worldMatrix;
uniform float time;

out vec3 outPos;
void main(){
    gl_Position = worldMatrix*vec4(position, 1.0);
    outPos = position;
}

分段:

#version 150

out vec4 outColor;
uniform float time;
uniform float red;
uniform float green;
uniform float blue;

void main(){
    outColor=vec4(red, green, blue,1.0);
}

让它工作。

起初,我用另一个编辑器(文本伙伴)重写了着色器,然后有时它可以工作。然后我确保它正确地以 null 终止并且每次都有效。

也许不知何故存在像安登·M·科尔曼(Andon M. Coleman)建议的非印刷字符。

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

OpenGL 编译着色器已损坏 的相关文章

  • 将 CVPixelBuffer 渲染到 NSView (macOS)

    我有一个CVPixelBuffer我正在尝试在屏幕上有效地绘制 转变为低效率的方式NSImage可以工作 但速度非常慢 丢掉了大约 40 的帧数 因此 我尝试使用将其渲染在屏幕上CIContext s drawImage inRect fr
  • 如何以编程方式在 qml 中渲染 vtk 项目?

    到目前为止 我了解到我们在 QML 中有两个线程 我们的主应用程序线程和我们的 场景图 线程 http doc qt io qt 5 qtquick visualcanvas scenegraph html http doc qt io q
  • OpenGL 将着色器附加到程序

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

    我正在尝试从如下所示的文件中读取顶点和片段着色器 version 330 core in vec3 ourColor out vec4 color void main color vec4 ourColor 1 0f but when i
  • 纹理openGl。 C++、qt

    我试图用草纹理覆盖我的地形 由高度图制成 但它没有按预期工作 我什至无法在简单的 GL QUAD 上获取纹理 结果是多色网络 void GLWidget initializeGL glEnable GL TEXTURE 2D 在 QGLwi
  • QOpenGLFunctions 缺少重要的 OpenGL 函数

    QOpenGLFunctions 似乎缺少重要的函数 例如 glInvalidateFramebuffer 和 glMapBuffer 据我了解 QOpenGLFunctions 加载桌面 OpenGL 函数和 ES 函数的交集 如果是这样
  • OpenGL:调试“单通道线框渲染”

    我正在尝试实现论文 单通道线框渲染 它看起来很简单 但它给了我所期望的厚暗值 论文没有给出计算海拔高度的确切代码 所以我按照自己认为合适的方式进行了操作 代码应该将三个顶点投影到视口空间中 获取它们的 高度 并将它们发送到片段着色器 片段着
  • gluPerspective 与 gluOrtho2D

    我查看了 MSDN 上关于这两个函数的文档 但是 我不太明白这两个功能之间的区别 一个是用于设置 3D 相机视图 另一个是用于设置 2D 相机视图 如果能得到解答就太好了 预先感谢您的评论 正交投影基本上是没有透视的 3D 投影 本质上 这
  • 使用 glDrawElements 时在 OpenGL 核心配置文件中选取三角形

    我正在使用 glDrawElements 绘制三角形网格 并且希望能够使用鼠标单击来拾取 选择三角形 三角形的网格可以很大 在固定功能 OpenGL 中 可以使用 GL SELECT http content gpwiki org inde
  • 为什么我的 FPS 相机一劳永逸地滚动?

    如果我忽略四元数代数的肮脏细节 我想我理解了旋转和平移变换背后的数学 但仍然不明白我做错了什么 为什么我的相机一劳永逸地滚动 更具体地说 我应该如何从相机的方向 旋转矩阵 计算相机视图矩阵 我正在用 Python 编写一个简约的 3d 引擎
  • 简单的线框格式?

    我正在寻找一种用于线框模型的简单文件格式 我知道 VRML u3D 等 但这些对于我的需求来说似乎很重要 我的标准是 必须有明确的规格 要么是开放的 要么是非常完善 记录的 我只需要 想要 简单的模型 顶点和边 我不想处理面孔或物体 如果格
  • 对齐坐标系

    Let s say I have 2 coordinate systems as it is shown in image attached 如何对齐这个坐标系 我知道我需要将第二个坐标系围绕 X 平移 180 度 然后将其平移到第一个坐标
  • OpenGL 与 Eclipse CDT + MinGW + GLEW + GLFW:未定义的参考

    Edit 与此同时 我已经弄清楚了这一点 并在下面写了详细的答案 我刚刚尝试在 Win7 上从 Express 版本的 MSVC 10 切换到 Eclipse CDT 在配置时遇到了以下简单 OpenGL 代码的问题 在 Visual St
  • 为什么OpenGL使用float而不是double? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 GLUT 中使用鼠标滚轮

    我想在 OpenGL GLUT 程序中使用鼠标滚轮来放大和缩小场景 我怎么做 Freeglut 的 glutMouseWheelFunc 回调与版本相关 并且在 X 中不可靠 使用标准鼠标功能并测试按钮 3 和 4 OpenGlut 对 g
  • 为什么拥有单独的投影矩阵但结合模型和视图矩阵会有好处?

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

    我想创建一个向量链接列表 并在 GLUT 库的帮助下获取点击的位置并将它们附加到链接列表中 这些是我写的结构 typedef struct vector int x int y Vector typedef struct VectorLis
  • 更改 Qt OpenGL 窗口示例以使用 OpenGL 3.3

    我正在尝试更改 Qt OpenGL 示例以使用更现代的 opengl 版本 330 似乎合适 所以我做了 在 main cpp 上设置版本和配置文件 设置着色器版本 更改着色器以使用统一 它现在构建没有任何错误 但我只看到一个空白窗口 我错
  • OpenGL缓冲区更新[重复]

    这个问题在这里已经有答案了 目前我正在编写一个模拟水的程序 以下是我所做的步骤 创建水面 平面 创建VAO 创建顶点缓冲区对象 在其中存储法线和顶点 将指针绑定到此 VBO 创建索引缓冲区对象 然后我使用 glDrawElements 渲染
  • Visual Studio 2010 中的 SOIL 设置

    我无法得到SOIL http www lonesock net soil html正确使用 Visual Studio 2010 我远非 VS 专家 但据我所知 只需执行以下步骤即可使环境正常运行 属性 gt gt C C gt 常规 gt

随机推荐

  • 如何使用 Java 获取 AWS Glue 客户端

    我正在尝试从用 Java 编写的 Lambda 代码调用 AWS Glue 中的作业 但我无法获得 Glue 客户端 就像我们有这样的 DynamoClient AmazonDynamoDB client AmazonDynamoDBCli
  • 如何在保留空格的同时分割()字符串[重复]

    这个问题在这里已经有答案了 如何拆分一串单词并保留空格 这是代码 String words s split 字符串 s 包含 hello world 代码运行后 words 包含 hello world 理想情况下 它不应该是中间的空字符串
  • awk - 如果为 null,则打印最后一列值并使用默认值

    我正在使用 awk 命令来打印值 对于最后一列 如果没有找到值 我需要它来打印NA 例如 在下面的代码中 当 3 is NULL 我需要打印为NA 无论如何我可以包括一个if isnull条件什么的 awk F print 1 2 3 lo
  • Android 中的 TextView 可以显示数字文本吗?

    嗨朋友们 在我的应用程序中 要求文本值应显示在数字文本格式可以吗TextView 数字时钟如何显示 请提供任何帮助 从this下载字体link http font downloadatoz com font 24267 digital 7
  • 将 Intent 从 BroadcastReceiver 类发送到当前正在运行的活动

    我有一个扩展的类BroadcastReceiver 收到短信后 我想将信息传递到我的主要活动类 以在框中显示文本 如果文本已存在 则追加 public class SmsReceiver extends BroadcastReceiver
  • Algolia 对数组属性的过滤器未按预期工作

    我有一个关于 algolia 的索引 有这样的用户 UserA createdAt 1675364400000 email email protected cdn cgi l email protection products produc
  • 在Java中精确地将两个数字相乘[重复]

    这个问题在这里已经有答案了 我正在寻找一种在 Java 中将两个浮点数相乘的精确方法 我读到我应该使用 BigDecimal 但它并没有按预期工作 我究竟做错了什么 我的代码 BigDecimal a new BigDecimal 3 53
  • 为什么用 PIL 和 pytesseract 无法获取字符串?

    这是一个简单的Python 3光学字符识别 OCR 程序来获取字符串 我已经在这里上传了目标gif文件 请下载并另存为 tmp target gif try from PIL import Image except ImportError
  • 如果 onAttach() 没有在片段代码中被重写怎么办?

    根据片段生命周期onAttach 之前被调用onCreate 以便它将托管活动分配给片段 所以 我想知道如果它不被覆盖会怎样 所有片段回调的默认定义是否已经存在 来自文档 https developer android com refere
  • Python OpenCV HoughLinesP 无法检测直线

    我正在使用 OpenCV HoughlinesP 来查找水平线和垂直线 大多数时候它找不到任何线路 即使它找到一条线 它也与实际图像不接近 import cv2 import numpy as np img cv2 imread image
  • T D[N] 是否总是声明数组类型的对象?

    我很困惑 dcl 数组 1 http eel is c draft dcl array 1 在声明 T D 中 其中 D 的形式为 D1 constant expressionopt attribute specifier seqopt 声
  • 从测试内部访问 ScalaTest 测试名称?

    是否可以从 ScalaTest 测试中访问当前正在执行的测试的名称 我该怎么做 背景 我正在测试我的数据访问对象最终会抛出一个OverQuotaException如果用户例如创建太多页面 这些测试需要相当长的时间才能运行 为了感到更高兴 我
  • 将 HTML 传递给 HTML 模板

    我知道如果我们想将变量从 gs 传递到 HTML 模板 我们可以这样做 在 html 上 使用 div table thead th Qty th th Item th th Price th th Subtotal th thead tb
  • 使用保留下划线的 xjb 覆盖 JAXB 属性名称

    自定义 xjb 非常适合根据需要覆盖名称 但是我们会丢失名称中的下划线
  • \S、\W、\D 在正则表达式中代表什么?

    在 shell 脚本中 t 代表制表符 s 代表空白 w 代表单词 什么是 W capital W and D capital D 用于 W是相反的 w and D是相反的 d 就像 S是相反的 s W and D分别会匹配什么 w and
  • 刷新 InnoDB 缓存

    我有一些很少运行的报告查询 我需要保证它们的性能 而不依赖于将它们缓存在系统中的任何位置 在测试各种模式和存储过程更改时 我通常会看到第一次运行非常慢 而后续运行速度很快 所以我知道正在进行一些缓存 这使得测试更改变得很麻烦 重新启动 my
  • 如何将方法作为参数传入?

    我刚刚注意到我在 ASP NET 应用程序中重复了很多 C 代码 因此想要创建一个通用方法 我有一系列这样的私有方法 private void PopulateMyRepeatedControl DBUtil DB new DBUtil D
  • 谷歌电子表格中的逻辑例外/差异范围

    我想变得合乎逻辑 A B or A B 在谷歌电子表格中 所以 有 A A 1 2 3 4 and B B 2 3 5 6 所以我的公式 my amazing formula A A B B 应该返回 1 4 A 的元素不存在于 B 中 问
  • React 等价于 ng-repeat

    我是 React js 的新手 我正在尝试绑定数据数组 我正在寻找 ng repeat 的等效项 但我在文档中找不到它 e g var data red green blue 使用角度我会在我的html中做这样的事情 div i div 我
  • OpenGL 编译着色器已损坏

    我正在尝试在 OpenGL 3 2 中编译着色器程序 但遇到奇怪的链接错误 创建顶点和片段着色器并编译并附加它们后 我尝试将它们链接到程序中 但收到以下信息日志错误 ERROR Compiled vertex shader was corr