shader

    6热度

    1回答

    我想向我的旧的OpenGL程序添加一些着色器,绘制大量GL_POINTS和一些GL_LINES。 我创建了这两个着色器: 顶点着色器: void main() { vec4 v = vec4(gl_Vertex); v.z = v.z + sin(v.x*v.x + v.y*v.y)/10.0; gl_Position = gl_ModelViewProjectio

    0热度

    1回答

    我目前正在将几何体的位置写入到gl_FragColor的RGB通道中,如果片段是几何体的一部分,我希望将1.0写入Alpha通道,如果为零,则写入1.0。 有没有简单的方法来判断片段是否是几何?也许通过gl_FragCoord.z? 感谢

    2热度

    1回答

    我正在滚动延迟着色器管道,并且由于需要保持统一格式的G缓冲区,因此需要压缩属性。我很遗憾地无法找到一些关于如何实际完成的很好的信息。 我有一个G-buffer格式,每个组件使用16位定点格式。遗憾的是,当我瞄准着色器模型3硬件时,我不能使用位操作符。所以,基本上,如何将0..1范围内的2个8位值打包到一个单一的16位通道中,也是在0..1范围内?最好适用于CG或HLSL。

    1热度

    1回答

    我在写一个GPGPU Fluid simulation,它使用C++/OpenGL/Cg运行。目前,该库要求用户指定着色器的路径,然后将其读取。 我发现它非常烦人,不得不在我自己的项目和测试中指定,所以我想让着色器内容与其他内容链接。 理想情况下,我的.cg文件仍然可以单独浏览,但后期构建步骤或预处理器指令会在需要时将其包含在源代码中。 为了让事情变得更加恼人,我有一个“utils”着色器文件,其

    0热度

    3回答

    我遇到着色器,我不断收到这个奇怪的编译错误,这让我疯狂! 以下像素着色器代码段: DirectionVector = normalize(f3LightPosition[i] - PixelPos); LightVec = PixelNormal - DirectionVector; // Get the light strenght factor

    0热度

    3回答

    我正在使用Trinigy 3d引擎,它报告的模型在渲染过程中的三角形数量比在模型显示中的数量要多一倍(假设4000而不是2000)。如果我使用额外的轮廓着色器渲染模型,它会报告6000个三角形,所以它不是简单的重复。可能是什么问题呢?

    1热度

    1回答

    我需要一个与正常深度缓冲区大小相同的数据结构,我需要能够在着色器中读取和写入它。这是可能的,这个数据结构是什么样的?

    3热度

    2回答

    我知道Silverlight不直接支持WPF位图效果,但我也知道Silverlight 3支持HLSL着色器。写一个斜角效果是否相对简单,如果是这样,可以有人推荐一个好的资源来学习如何做到这一点?

    1热度

    1回答

    我想知道是否有办法优化这个顶点着色器。 如果顶点着色器位于阴影中,则该顶点着色器将投影(在光照方向上)到远平面的顶点。 该着色器的目的是创建一个阴影体对象,该对象包含对象本身的阴影。 void main(void) { vec3 lightDir = (gl_ModelViewMatrix * gl_Vertex - gl_LightSource[0].position

    19热度

    2回答

    我想有两个像素着色器;第一个做一件事,然后下一个做别的事。这是可能的,还是我必须将所有内容都打包到一个着色器中?