glsl

    4热度

    1回答

    我正在处理顶点蒙皮着色器,出于某种原因,我的程序找不到统一的位置。 顶点着色器代码: #version 330 const int MAX_JOINTS = 30; const int MAX_WEIGHTS = 3; in vec3 position; in vec2 textureCoords; in vec3 normal; in ivec3 boneIndices; in

    -2热度

    1回答

    我目前正在尝试使用类似glTexImage3D的东西来学习3D纹理上的光线投射。我从一开始就关注着this tutorial。我的最终目标是产生一个程序,能像这样工作: 我的理解是,这是使用光线投影法绘制,模型导入为3D纹理。光线投射和纹理采样任务在片段着色器中执行。我希望我能复制这个计划作为一种实践。你能否回答我的问题? 应该使用什么文件格式导入3D纹理? 我应该使用哪种glsl函数来检测我的光

    1热度

    1回答

    在我的OpenGL程序中,我注意到黑色像素出现在正向渲染算法中光线混合在一起的地方。起初,我忽略它,直到我将Window API(SDL转换为GLFW)转换为视觉上有问题时为止。 当我禁用GL_DEPTH_TEST时,黑色的人工制品消失了,但事物变得对它们后面的灯光透明,所以它不是解决方案。 (这是我如何发现潜在的问题) 我不确定问题是什么,它可能是深度缓冲区,但切换窗口API增强工件,任何帮助?

    0热度

    1回答

    到目前为止,我的OpenGL ES程序中存在性能瓶颈。我认为它会运作良好 - 使用VBO,textureatlas,每次平局等少数绑定。但是,当同时使用许多精灵时,性能会下降很多。我发现瓶颈是CPU限制的(有点惊讶)。更确切地说 - 瓶颈可能是一种计算每个矩形四个顶点(x1,y1,x2,y2,x3,y3,x4,y4)的屏幕位置的方法。这用于碰撞检测。我在这个方法中做的是重复在着色器中做的事情,我认

    1热度

    1回答

    我想检查vec3值是否具有相同的组件。 int same = 0; vec3 v1 = vec3(1.0f, 0.0f, 0.0f); vec3 v2 = vec3(0.0f, 0.0f, 0.0f); if (v1 == v2) // <- this part { same = 1; } 是== vec3类型的正确关系运算符吗? 如果不是,我可以使用什么(操作符和函数

    0热度

    2回答

    我拥有纹理,可以在OpenGL中通过常规方式渲染任何问题。但是现在我想在GLSL中渲染纹理,这是我目前遇到的问题。我没有问题呈现一个常量矢量颜色,但它不检测我发送给GLSL的纹理。 下面是代码: GLunit wipeoutTexID; int main(int argc, char* args[]) { // Start up SDL and create window

    0热度

    1回答

    在GLSL中,outputColour = vec3(0, 0, 0.5)输出RGB值为(0, 0, 127)而不是(0, 0, 128)。由GL.ReadPixels()和Photoshop吸管工具确认。 目前我正在绕过outputColour.b += 0.001这个问题,但我确定会在以后再次出现。 有没有任何机构经历过这个,以及解决方案是什么?

    0热度

    1回答

    我正在加载从3ds max导出的OBJ文件。在.MAT文件中的材料具有奇特的环境价值(1,1,1): newmtl crome Ns 96.078423 Ni 1.500000 d 1.000000 Tf 1.000000 1.000000 1.000000 illum 2 Ka 1.000000 1.000000 1.000000 Kd 0.640000 0.640000 0.64

    1热度

    2回答

    是否有必要绑定制服,变化或属性必须在vulkan中连续? 假设我们有 layout (std140, set = 0, binding = 0) uniform ubo1 {} layout (std140, set = 0, binding = 3) uniform ubo2 {} 是否允许?相同的属性绑定。

    -1热度

    2回答

    我一直在尝试将一个16位浮点(半浮点)作为属性放到我的GLSL顶点着色器中。它不会让我编说: error C7506: OpenGL does not define the global type half 但我#version为410,所以它应该支持半?我错过了明显的东西吗?