首页 文章
  • 10 votes
     answers
     views

    OpenGL究竟如何透视地校正线性插值?

    如果在OpenGL管道中的光栅化阶段发生线性插值,并且顶点已经转换为屏幕空间,那么用于透视正确插值的深度信息来自何处? 任何人都可以详细描述OpenGL如何从屏幕空间原语转换为具有正确插值的片段吗?
  • 1 votes
     answers
     views

    Metal或OpenGLES中Fragment着色器中的共享变量

    这可能不太可能,但有一个共享全局变量的概念,可以在Metal和OpenGLES中的片段着色器的每次传递中更新吗?我想在处理每个像素后更新一些统计数据 . 我假设每个片段着色器并行运行会出现很多并发问题 .
  • 0 votes
     answers
     views

    在金属着色器中混合两种纹理

    我有两个透明纹理 . 第一个是Source纹理,第二个是Mask Texture . 我想混合两个纹理 . 情景1 具有颜色的 源纹理和具有颜色和Alpha的Alpha蒙版纹理 结果颜色和alpha应该相乘 场景2 具有颜色和Alpha蒙版纹理alpha的 源纹理为零 结果颜色和alpha应为源纹理颜色和Alpha 场景3 具有Alpha零掩模纹理alpha的 源纹理具...
  • 4 votes
     answers
     views

    当我切换到仅alpha(A8)pixelFormat时,为什么我的片段着色器无法读取alpha信息?

    我正在创建一个使用OpenGL ES 2.0的iOS应用程序 . 我对OpenGL有些新意,所以这可能是一个微不足道的错误 . 我已经创建了一个简单的着色器来处理使用alpha通道将一个纹理与另一个纹理屏蔽 . 掩码纹理初始化如下: glGenTextures(1,&name); glBindTexture(GL_TEXTURE_2D,name); glTexParameterf(GL_TEXT...
  • 1 votes
     answers
     views

    仅深度FBO和片段着色器之间的关系

    我一直想知道在片段着色器部分绑定一个只有深度的FBO(只有 GL_DEPTH_ATTACHMENT 被附加并且 glDrawBuffer(GL_NONE) 被调用)时会发生什么 . 因为丢弃了任何颜色: OpenGL是否只是以常规方式处理顶点,调用光栅化器,将片段着色器应用于光栅化片段,但丢弃任何结果 还是它做了更聪明的事情,比如处理顶点直到可选的几何着色器,然后剪切片段着色器部分并使用虚...
  • 5 votes
     answers
     views

    是否可以在顶点着色器中访问多边形中的所有顶点?

    我正在尝试在Unity中创建线框顶点/片段着色器 . 根据this paper似乎有可能 . 一般的想法似乎是您将在顶点着色器中计算的距离向量传递给片段着色器中的每个片段,它可以用来根据多边形中的位置确定绘制线框线的亮度 . 但是,从我读过的其他内容来看,您似乎只能访问顶点着色器中的单个顶点 . 我需要访问多边形中的所有相邻顶点以获得ecah顶点 . 该论文似乎暗示几何着色器不是必需的,这很好,因...
  • 6 votes
     answers
     views

    将SCNGeometry渲染为线框

    我在iOS上使用SceneKit,我想要渲染为线框的几何体 . 所以基本上我只想绘制线条,所以没有纹理 . 我发现我可以使用 SCNMaterial 使用的 shaderModifiers 属性来完成此任务 . 着色器修改器的示例: material.shaderModifiers = [ SCNShaderModifierEntryPointFragment: "_output...
  • 1 votes
     answers
     views

    使用SkiaSharp自定义片段着色器

    我正在评估SkiaSharp用于允许在照片上渲染一些矢量元素的项目 . SkiaSharp看起来非常适合渲染矢量元素,但是我也想对图像应用变换 - 例如对比度或曝光等色调曲线调整 . 理想的情况是在渲染包含图像的矩形时执行自定义GLSL片段着色器代码的方法(例如,包含GLSL代码的SKColorFilter子类,在调用DrawBitmap时应用,或类似) . 将我现有的GLSL代码渲染到纹理也可...
  • 0 votes
     answers
     views

    OpenGL纹理覆盖材质颜色

    我想渲染一个场景并将材质颜色与纹理混合 . 我正在使用可编程管道和GLSL,当调用函数texture()时,网格的所有部分都希望没有纹理变得透明 . (即使我不在最终的fragColor中使用vec4) 看下面的screeshots,在第一个图像中我只有材质颜色,在第二个应用纹理,但只有材质颜色的面变得透明 . 在我的片段着色器中,我有类似的东西: vec4 tex = texture(texs...
  • 0 votes
     answers
     views

    OpenGL:如何通过通道,通过采样和渲染到相同的纹理来写入纹理通道

    场景是:我有一个纹理A.有3个循环 . 每个循环将一个通道写入纹理A.在3个循环之后,A中的所有3个通道都会更新 . 着色器如下: vec3 tmpVec3 = texture(inputTexture0, vUV).rgb; // inputTexture0 is texture A tmpVec3[channelIndex_P] = texture(inputTexture1, vUV).r;...
  • 4 votes
     answers
     views

    如何用一维纹理替换GLSL均匀数组

    我想让Ardor3D的地形系统在SM3.0硬件上运行 . 当前的GLSL片段着色器使用统一的vec2数组将xy坐标数组传递到片段着色器中 . 由于动态索引统一数组仅适用于SM4.0硬件,为了使其在SM3.0上运行,我需要用1D浮点纹理替换它 . 当前数组如下所示: uniform vec2 sliceOffset[8]; 并按如下方式访问: vec2 offset = sliceOffset[in...
  • 27 votes
     answers
     views

    为什么在Metal中不允许的片段着色器中写入缓冲区?

    如_1291529中所述: 片段函数不允许写入缓冲区或纹理 . 我明白这是事实,但我很好奇为什么 . 能够从片段着色器中写入缓冲区是非常有用的;我知道在硬件端可能更复杂的是不提前知道特定线程的内存写入的结束位置,这对于原始缓冲区写入并不总是知道,但这是在Metal计算中公开的一种能力着色器,为什么不在片段着色器中呢? 附录 我应该澄清为什么我认为来自片段函数的缓冲区写入是有用的 . 在光栅化管...
  • 0 votes
     answers
     views

    iOS Metal需要片段函数中的常量

    我正在尝试了解Apple的Metal并转换一些旧的opengl着色器 . 我陷入了一个只出现在一个项目而不是其他项目中的错误 . 我想询问是否存在编译器选项或类似的东西,我不知道并且可能导致此错误 . 所以...我有一个音乐播放器的音频可视化器,我之前在Android的ndk上使用opengl写的 . 我在一个空项目中将着色器转换为金属 . 片段方法签名是这样的: fragment float4 ...
  • -1 votes
     answers
     views

    关于glProgramUniform1i的Segfault [关闭]

    我试图通过统一变量将screenWidth和screenHeight放入我的片段着色器中 . 这是我的main.cpp,罪犯在哪里,我可以得到位置(非-1)但是当它实际上设置统一变量时,我是段错误 . #include <GL/glew.h> #include <GL/freeglut.h> #include <stdio.h> #include "...
  • 0 votes
     answers
     views

    片段着色器输出值

    我使用我的alpha通道作为8位整数索引,用于与混合无关的东西,所以我想仔细控制位值 . 特别是,我需要来自一个具有特定alpha值的FBO渲染纹理的所有像素,以匹配着色器中具有相同alpha值的所有像素 . 经验告诉我在比较浮点值时要小心...... 虽然使用浮点vec4设置颜色值可能不会引起我的问题,我的理解是即使半精度16位浮点数也能够区分所有8位整数(0-255)值 . 但我更喜欢在片段着...
  • 5 votes
     answers
     views

    glsl - 片段着色器(模糊) - >黑屏

    我一直试图让这个工作过去几天,我真的开始变得绝望了 . 我真的很感激你的建议 . 我一直在努力做的事情: 将场景渲染给FBO 使用glsl着色器模糊附加的纹理 将生成的纹理渲染到屏幕对齐的四边形 问题: 如果我启用片段着色器(水平模糊),我会得到一个模糊的图像渲染到我的四边形第一帧左右,之后它全部变黑 . 我怀疑我将纹理传递给着色器的方式有问题: horizontalBlurVer...

热门问题