glsl

    1热度

    2回答

    layout (set = 0, binding = 0) uniform sampler2D sampler; layout (set = 0, binding = 0) uniform Test{ mat4 m; } test; 此编译与glslang没有任何错误。我认为集合中的绑定必须是唯一的? 如果确实允许这样做,您将如何发送数据到sampler和test? typede

    -1热度

    1回答

    我正在尝试将纹理映射到二维到三角形。但是目前,我只能得到一个没有任何纹理的渐变色的三角形。这意味着,glsl中的纹理函数总是返回vec4(1,1,1,1),我的textCoords正在工作。我应该如何解决它?任何建议将有助于尝试! 顺便说一句,已经在这工作了3天。 构造: Texture::Texture(const std::string& fileName){ int width,

    0热度

    1回答

    WebGL不支持位操作。所以我把我的int制服转换成float。然后使用除法和mod来提取每个字节。 但是,由于精度问题,如果我的int太大,将int转换为float会失去一些精度。有没有优雅的解决方案来处理这个问题?目前我的想法是只在我的4字节int制服中存储3个字节。

    2热度

    1回答

    让M是一个可逆2x2矩阵。让C为以(0,0)为中心的半径1的圆。令E为椭圆M*C,其中半长轴s1和半短轴s2。 (然后s1 >= s2。)我需要找到sx,水平范围应用于C,M和sy,垂直范围应用于C,M。 我可以通过在M上执行奇异值分解来测量s1和s2。 (我使用的算法是基于Pedro Gimeno对Robust algorithm for 2x2 SVD的回答,s1是更大的奇异值,而s2是更小的

    1热度

    1回答

    目前我有处理GLSL着色器制服的问题。如果我在场景中只有一个物体,制服就如我所料。但是,对于多个对象,均匀性不是针对每个对象设置的,换句话说,最后一个均匀度用于表示所有场景对象。 我该如何处理这个问题?如下我的C++代码: void addSimpleObject(osg::ref_ptr<osg::Group> root, osg::Vec3 position, float radius, fl

    1热度

    2回答

    从着色器中可以忽略特定FBO颜色附件的所有颜色输出吗? 事情是这样的,例如: #version 330 layout (location = 0) out vec4 output_A; layout (location = 1) out vec4 output_B; uniform float isGlass; void main(void) { if (isGlass

    1热度

    2回答

    我正在研究必须呈现三维图形的应用程序。 节点由球体表示,在我的初稿中我只画了glLines作为边缘。 现在线条需要a)粗线和b),因为它是一个3d应用程序,它们基本上必须具有圆柱形形状(否则看起来很奇怪)。 在阅读了OpenGL中的粗线条后,我发现这是相对复杂的,尤其是考虑到3D需求中的附加圆柱形形状。 所以我想:“为什么不只是采取一个圆柱体模型,并将它转换/旋转/缩放以代表边缘”。 它对我来说工

    2热度

    1回答

    在我的顶点着色器,我有 in float data[6]; 这意味着,如果我有100个顶点,我想通过600间浮动。 glVertexAttribPointer只支持最大为4的尺寸。如果我使用尺寸1,那么它会自动拾取6个元素?

    0热度

    1回答

    我有一个项目,我正在写一个碎片着色器,我希望能够控制帧率。我很难得到这方面的信息 - 几乎我发现的所有内容都是关于优化60-90fps的帧速率,但我需要的实际上是将其降至20fps左右。

    1热度

    1回答

    我的最终目标是围绕纹理创建轮廓。要做到这一点,我必须从邻居片段获取数据,并且我正在通过使用texelFetch来解决这个问题。在我尝试使用texelFetch时,我只是试图从片段的颜色数据到每个片段的右侧,然后将片段的颜色变成白色,如果右侧的片段不透明。但是,这并不正常工作,这是我在片段着色器代码来测试texelFetch: varying vec4 v_color; varying vec2