opengl-4

    3热度

    2回答

    我想计算一个像素投影金字塔在glsl顶点着色器中当前顶点位置处的眼睛空间宽度,但我似乎无法得到正确的数学。这是一个明显不正确的例子: // GLSL VERTEX SHADER #version 410 compatibility uniform vec4 viewport; // same as glViewport​ in vec4 gl_Vertex; void main()

    3热度

    2回答

    RedBook中的NURBS章节已被弃用,包括实用程序库:“即使 某些功能是GLU库的一部分,但它依赖于已从核心OpenGL库中删除的 功能。” 这是否意味着OpenGL 4.2实际上缺少用于处理NURBS曲线和曲面的C++工具包?有一些商业的第三方工具包,但它们不是跨平台的(主要是窗口) ...?

    3热度

    1回答

    我试图实现"Octree-Based Sparse Voxelization for Real-Time Global Illumination"的一部分。 基本上只是体素化,我已经完成了。 而“体素片段列表”结构,其基本上是几个预先分配的体素位置和属性的缓冲区。 它很容易创建使用原子计数器,要么原子 - 压缩 - 交换或原子添加,以确保它只能由一个线程 layout(r32ui, binding

    1热度

    1回答

    我实现了一个简化的延迟着色(我没有计算点光源的边界),其中填充g-buffer后的 我只是使用全屏四元组计算照明。我在第二阶段使用 混合(glBlendFunc(GL_ONE,GL_ONE))来处理多个灯光。 然后,glClearColor中的rgb值应设置为0,以获得正确的结果。填充缓冲区 glClearColor可以是任何颜色(某些颜色可能只会改变最终图像中的背景颜色)。 现在我想知道我应该如

    0热度

    2回答

    我使用窗口来照相机中实现的每个片段的照明和光衰减变换: vec4 ndcPos; ndcPos.xy = ((gl_FragCoord.xy/windowSize.xy) * 2.0) - 1.0; ndcPos.z = (2.0 * gl_FragCoord.z - gl_DepthRange.near - gl_DepthRange.far)/(gl_DepthRange.far - gl

    3热度

    1回答

    在OpenGL中为了达到合适的透明度效果,我应该使用glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA),但是使用该混合函数,glClearColor中的alpha参数变得毫无意义。当我在glClearColor中更改一个alpha参数时,我仍然得到相同的效果。我何时可以在glClearColor中使用alpha参数?我能达到什么样的效果?

    2热度

    2回答

    我想要做的是从单通道数据数组中加载纹理到硬件中,并使用它的alpha通道将文本绘制到对象上。我使用的是opengl 4. 如果我尝试使用4通道RGBA纹理来做到这一点,它的工作原理非常好,但无论什么原因,当我尝试在单个通道中加载时,我只能看到一个乱码图像,而我无法找出原因。 我通过梳理纹理位图数据的一系列用下面的代码字形到一个单一的纹理创建纹理: int texture_height = max_

    5热度

    2回答

    可以说我有2种,如人类和小马。它们具有不同的骨骼系统,因此对于每个物种而言,统一的骨骼阵列必须是不同的。我是否必须实现两个独立的着色器程序,能够正确渲染每个骨骼数组,或者是否有办法动态声明统一数组并反复遍历该动态数组? 记住性能(有所有的着色器在决策分支四处流窜)。

    3热度

    1回答

    现在,我非常难以找到关于OpenGL头文件和扩展的信息以及如何访问最新功能。 OpenGL.org没有涉及任何这方面的内容,Mesa(更新2006年!)或任何人都没有 - 但我不认为我是唯一一个想要了解这一点的人。 我上的Archlinux发展同的Nvidia驱动程序 - 支持4.2 - 这显然不来与OpenGL的头(而非存储库的人反正)。这是问题和困惑开始的地方。我读到应该使用Mesa3D头文件

    3热度

    1回答

    如果我创建了一个双精度顶点缓冲,例如: GLuint vertBuffer, spanBuffer, spanCount, patchSize, program; // already setup glUseProgram (program); glEnableClientState (GL_VERTEX_ARRAY); glBindBuffer (GL_ARRAY_BUFFER, vert