gpt4 book ai didi

ios - 警告 : Output of vertex shader 'v_gradient' not read by fragment shader

转载 作者:IT王子 更新时间:2023-10-29 07:38:44 28 4
gpt4 key购买 nike

当我使用 xcode 8 在 ios 10 中运行我的应用程序时,我在调试控制台中收到以下消息,并且通过 UI 卡住,任何人都可以知道为什么会发生这种情况

 ERROR
/BuildRoot/Library/Caches/com.apple.xbs/Sources/VectorKit/VectorKit-1228.30.7.17.9/GeoGL/GeoGL/GLCoreContext.cpp
1763: InfoLog SolidRibbonShader: ERROR
/BuildRoot/Library/Caches/com.apple.xbs/Sources/VectorKit/VectorKit-1228.30.7.17.9/GeoGL/GeoGL/GLCoreContext.cpp
1764: WARNING: Output of vertex shader 'v_gradient' not read by
fragment shader

最佳答案

回答

您可能会在 Xcode 中收到此警告的情况之一是使用使用着色器的应用程序,例如带有 MKMapViewMaps 应用程序。您会发现 map View 在具有真实硬件/ native 操作系统的真实设备上没有警告的情况下按预期工作。

在 sim 中,SolidRibbonShader 片段着色器 无法读取 v_gradient 顶点着色器 的输出可能是因为它处于测试阶段,或者 Xcode 版本和 SIM 版本之间可能不兼容。然而,着色器在真实设备上被识别。

解释

这些着色器属于 OpenGL 渲染管道。渲染管线是 OpenGL 在渲染对象时采取的一系列步骤。

渲染管道负责应用纹理、将顶点转换为正确的坐标系以及在屏幕上显示角色等。

此管道中有六个阶段。

  1. 逐顶点操作
  2. 原始组装
  3. 原始处理
  4. 光栅化
  5. 片段处理
  6. 逐片段操作

最后,一张图片出现在您的设备屏幕上。这六个阶段称为 OpenGL 渲染管道,所有用于渲染的数据都必须经过它。

什么是着色器?

着色器是您在 GPU 中开发的一个小程序。着色器是用一种称为 OpenGL 着色语言 (GLSL) 的特殊图形语言编写的。

着色器取代了 OpenGL 渲染管道中的两个重要阶段:逐顶点处理逐片段处理 阶段。这两个阶段各有一个着色器。

顶点着色器 的最终目标是提供网格顶点到渲染管线的最终转换。 片段着色器的目标是为帧缓冲区的每个像素提供着色和纹理数据。

顶点着色器 将三角形的顶点从局部模型坐标系转换到屏幕位置。 片段着色器计算屏幕上栅格化的三角形内像素的颜色。

单独的着色器对象加速编译和链接

许多 OpenGL ES 应用程序使用多个顶点片段着色器,将相同的片段着色器与不同的重用通常很有用>顶点着色器,反之亦然。因为核心 OpenGL ES 规范要求在单个着色器程序中将 vertexfragment 着色器链接在一起,混合和匹配着色器会导致大量程序,增加初始化应用时的总着色器编译和链接时间。

关于ios - 警告 : Output of vertex shader 'v_gradient' not read by fragment shader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39608231/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com