opengl-3相关内容
我已经在我的opengl/glsl应用程序中实现了一个统一的挡路,用于管理网格材质数据(环境光、漫反射和镜面反射的照明和光泽度)。 第一次尝试,我实现了以下统一的挡路语法: uniform MaterialBlock { vec3 Ka, Kd, Ks; float Shininess; }; 客户端代码如下: scene::MaterialPtr pMateri
..
OpenGL 或 SDL 在到达类中的第一个语句时会出现段错误.我不知道是什么原因造成的. 类渲染引擎 {GLuint vertexArrayId;GLfloat[] vertexBufferData = [-1.0f,-1.0f,0.0f,1.0f,-1.0f,0.0f,0.0f, 1.0f, 0.0f];GLuint vertexBufferId;公开这个(){glGenVertexArra
..
我面临一个我认为依赖于 VAO 的问题,但我不确定.. 我不确定 VAO 的正确用法,我过去在 GL 初始化期间所做的很简单 glGenVertexArrays(1,&vao) 后面跟着一个 glBindVertexArray(vao) 后来,在我的绘图管道中,我只是调用了glBindBuffer()、glVertexAttribPointer()、glEnableVertexAtt
..
我正在使用 glReadPixels 来获取所选像素的深度值,但我总是得到 1,我该如何解决?这是代码: glEnable(GL_DEPTH_TEST);..glReadPixels(x, viewport[3] - y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, z); 我有什么想念的吗?我的渲染部分如下所示.我使用不同的着色器来绘制场景的不同部分,那么我应该
..
我有点失落,真的迷失了. 我正在尝试旋转一个立方体(现在只是围绕 y 轴),这是(丑陋和错误的)结果: 这是旋转矩阵的代码: def rotate(axis: Vector3, angle: Float): Unit ={val cosAngle: Float = Math.cos(angle).toFloatval sinAngle: Float = Math.sin(angle)
..
我正在尝试在 openGL3.3 中创建一些简单的多边形.我有两种具有以下属性的对象: 对象 1 - 10 个顶点(按顺序在下面列出)存储在 GL_ARRAY_BUFFER 中并使用 GL_TRIANGLE_FAN v x y z w0.0 0.0 1.0 1.00.0 1.0 0.1 1.00.71 0.71 0.1 1.01.0 0.0 0.1 1.0v 0.71 -0.71 0.1
..
我正在尝试在 openGL3.3 中创建一些简单的多边形.我有两种具有以下属性的对象: 对象 1 - 10 个顶点(按顺序在下面列出)存储在 GL_ARRAY_BUFFER 中并使用 GL_TRIANGLE_FAN v x y z w0.0 0.0 1.0 1.00.0 1.0 0.1 1.00.71 0.71 0.1 1.01.0 0.0 0.1 1.0v 0.71 -0.71 0.1
..
我知道 OpenGL 4 和 3 非常相似,尤其是 3.1 和 4.1.由于两者基本上是一起发布的,因此很难理解 OpenGL 4.0/4.1 的基本原理. 在以前的 OpenGL 版本中,次要版本向上递增,直到实质性更改累积到新的主要版本中.OpenGL 3.x 和 4.x 引入了向后不兼容的 API 更改,然后据说 OpenGL 3.2 和 3.3 是 3 系列的特定分支,不向前兼容,而
..
我正在尝试使用 FreeGLUT 编译一个非常简单的“Hello world"OpenGL 3.3 程序.在我找到的所有教程中,它们都包含一个标题“gl3.h".问题是,我没有这样的头文件. $ ls -l/usr/include/GL/总计 2164-rw-r--r-- 1 根 8797 1 月 20 日.17:44 freeglut_ext.h-rw-r--r-- 1 根根 681 20 j
..
我正在运行该配置: Ubuntu 12.04 英特尔高清显卡 4000 glxinfo 给我那个参数: OpenGL 渲染器字符串:Mesa X11OpenGL 版本字符串:2.1 Mesa 8.0.4OpenGL 着色语言版本字符串:1.20OpenGL 扩展: 我的目标是运行 OpenGL 3.3(以及 GLSL 3.3).如果我很容易解决开发问题,那么我就会迷失在硬件和驱动
..
在 OpenGL 参考页面中,一些函数被标记使用统一位置,而其他函数被标记为使用统一指数.这些是同一回事吗? 与顶点属性类似,一些函数被标记为使用顶点属性索引,而 other 函数被标记为使用顶点属性位置.这些都一样吗? 解决方案 在你的第一种情况下,Uniform 的 location 与 index 不同>glGetActiveUniform(). 对于 glGetActi
..
我编写了大量着色器,但我偶然发现了一些我以前从未意识到的东西. 我需要一个带有简单正交投影的顶点 + 片段着色器,没有深度测试. 相机与原点对齐. 我禁用了 GL_DEPTH_TEST,并屏蔽了深度写入.事实如此简单,以至于我决定我什至不需要投影矩阵.以我完全的无知和独创性,我认为对于任何三角形顶点,顶点着色器只会将 x,y(,z = ,w = 1) 传递给片段着色器. 我
..
我正在使用 glBindFragDataLocationIndexed() 并在片段着色器中写入两种颜色.以下是我的代码: glBindFragDataLocationIndexed(shader_data.psId, 0, 0, "Frag_Out_Color0");glBindFragDataLocationIndexed(shader_data.psId, 0, 1, "Frag_Out_
..
我的OpenGL版本是4.0.我想通过纬度和经度来画一个球.我使用这种方法: x = ρsinϕcosθy = ρsinϕsinθz = ρcosϕ 这是我的代码的一部分: glm :: vec3缓冲区[1000];glm :: vec3外部;buffercount = 1000;浮动部分= 10.0f;GLfloat alpha,beta;int索引= 0;对于(alpha = 0.
..
何时将STD140用于OpenGL中的统一块? 尽管我不确定100%,但是我相信有另一种方法可以实现相同的目标,称为“共享". 这仅仅是对编码者的偏爱吗?还是有理由在一个之上使用另一个? 解决方案 统一缓冲区对象在 http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt 可以声明统一块的数据存储
..
在针对OpenGL 3+的一些OpenGL教程之后,马上就出现了一些差异,这是我设法获得的代码,但是马上,我得到了这么多的错误,没有一个错误指出找不到标题,而仅仅是标题没有定义核心功能. #include#include#include#include#includeint
..
我正在使用以下OpenGL命令上传35 x 100 16bpp纹理: glTexImage2D(GL_TEXTURE_2D,0,GL_RG8,35,100,0,GL_RG,GL_UNSIGNED_BYTE,pixelData); 但是随着y的增加(在绘制时以及在gpu内存中进行检查时),最终生成的纹理向左倾斜了一个像素: o o x o o o o x oo o x o o o o o
..
我有一个非常基本的片段着色器,我想将'gl_PrimitiveID'输出到我定义的片段缓冲区对象(FBO)中.下面是我的片段着色器: #version 150 uniform vec4 colorConst; out vec4 fragColor; out uvec4 triID; void main(void) { fragColor = colorConst; tri
..
我在OSX上使用OpenGL3.2 Core Profile. 而且我想进行实例化绘图(glDrawArraysInstanced),在其中为每个实例传递一个矩阵. 我的顶点着色器构建良好: #version 150 in mediump vec4 position; in mediump mat4 trf; in lowp vec4 rgb; out lowp vec4 colour
..
所以这是个傻瓜; 我有一个相当大的OpenGL解决方案,在Windows 7中以3.2版内核和GLSL 1.5编写.我正在使用GLEW和GLM作为帮助程序库.创建窗口时,使用的是以下几行: // Initialize main window glewExperimental = GL_TRUE; glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3
..