- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我以前使用过正交透视法,它能正确地绘制所有内容。我在初始化期间使用了以下代码:
glViewport(0, 0, WIDTH, HEIGHT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, WIDTH, HEIGHT, 0, 0, 1);
glMatrixMode(GL_MODELVIEW);
还有这个着色器:
vec3 actualPos = inPos + cubeVert * (inMass * scale);
gl_Position = vec4(actualPos, 1.0);
Mass = inMass;
UV = cubeVert.xy + vec2(0.5, 0.5);
我一直在尝试改用我的着色器中的 MVP 矩阵,但我的屏幕上没有任何输出,除了我用来清除它的颜色。
我构建它:
glm::mat4 model(1.f);
glm::mat4 projection(1.f);
projection = glm::perspective(glm::radians(30.f), (float)WIDTH / (float)HEIGHT, 0.1f, 100.f);
glm::mat4 view(1.f);
view = glm::lookAt(glm::vec3(-10.f, -10.f, -10.f), glm::vec3(0.f, 0.f, 0.f), glm::vec3(0.f, 1.f, 0.f));
glm::mat4 MVP = projection * view * model;
然后在删除旧代码后在初始化期间应用它:
glViewport(0, 0, WIDTH, HEIGHT);
glUniformMatrix4fv(glGetAttribLocation(program, "MVP"), 1, GL_FALSE, glm::value_ptr(MVP));
这是我当前的主要绘图循环:
glClearColor(0.01f, 0.10f, 0.15f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glUseProgram(program);
glUniformMatrix4fv(glGetAttribLocation(program, "MVP"), 1, GL_FALSE, glm::value_ptr(MVP));
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE0, texture);
glUniform1i(sampler, 0);
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, VBOcube);
glVertexAttribPointer(0, 3, GL_FLOAT, false, 0, (void*)0);
glEnableVertexAttribArray(1);
glEnableVertexAttribArray(2);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, AMOUNT * sizeof(Body), NULL, GL_STREAM_DRAW);
glBufferSubData(GL_ARRAY_BUFFER, 0, AMOUNT * sizeof(Body), bods);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(Body), (void*)0);
glVertexAttribPointer(2, 1, GL_FLOAT, GL_FALSE, sizeof(Body), (void*)sizeof(glm::vec3));
glVertexAttribDivisor(0, 0);
glVertexAttribDivisor(1, 1);
glVertexAttribDivisor(2, 1);
glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, AMOUNT);
glDisableVertexAttribArray(0);
glDisableVertexAttribArray(1);
glDisableVertexAttribArray(2);
我尝试四处移动、旋转相机,以防对象被绘制到 View 之外,但我不确定此时是否有任何东西被绘制。
最佳答案
"MVP"
是统一变量。要获取统一变量的位置索引,您必须使用 glGetUniformLocation
而不是 glGetAttribLocation
.
glLinkProgram(program);
GLint mvp_loc = glGetUniformLocation(program, "MVP"):
glUseProgram(program);
glUniformMatrix4fv(mvp_loc, 1, GL_FALSE, glm::value_ptr(MVP));
关于c++ - 在着色器中从 glOrtho 切换到 MVP 矩阵后没有绘制任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56941647/
我正在尝试从 opengles 文档中实现我自己的 glOtho 函数 http://www.khronos.org/opengles/documentation/opengles1_0/html/g
我最近开始使用 LWJGL,注意到 glOrtho 方法采用参数 left、right、bottom、top,但无法弄清楚这些参数对应的是什么。 当我注意到这一点时,我很困惑 glOrtho(1, 1
我正在尝试向我的游戏添加一些基本的 HUD,但是当我尝试更改视角时,我可以看到文本(我之前提到过 HUD),但是在黑屏上。问题出在哪里? gl.glMatrixMode(GL_PROJ
我在使用 GLM 库的 GLMDraw() 函数绘制 Google SketchUp 3D 图像的程序中使用 glOrtho 时遇到问题。我只想在投影模式下查看某些 z 值的图像,而 glOrtho(
/* OpenGL animation code goes here */ glClearColor (0.0f, 0.0f, 0.0f, 0.0f); glClear
目前我正在使用 glOrtho 来缩放和平移我正在渲染的 2D 图形。 我已将视口(viewport)设置为标准宽度和高度。然后我设置 glOrtho 以便我的平截头体使屏幕坐标与世界坐标匹配。 gl
我正在尝试使用本教程学习 LWJGL:http://www.java-gaming.org/topics/lwjgl-tutorial-series-a-simple-moving-rectangle
我正在尝试使用 LWJGL 将 ClickTeam Fusion 游戏移植到 Java。我决定简单地使用像素测量,因为这个游戏中的所有内容都是使用 PNG 文件完成的,甚至是动画(是的,确实如此)。我
鉴于我做了这样的事情: void glOrtho( GLdouble left, GLdouble right, GLdouble bottom, GLd
我创建了一个 OpenGL 应用程序,其中使用 glOrtho() 定义了一个查看体积。然后我使用 gluLookAt() 来转换所有点。问题是 - 一旦我这样做,所有点都会从裁剪平面中掉出来,因为它
我正在纹理上绘制,然后使用 GL_QUADS 将此纹理渲染到屏幕上。在屏幕上绘制纹理没有问题,但是在绘制纹理时,唯一有效果的操作是 glClear(GL_COLOR_BUFFER_BIT | GL_D
我是 OpenGl 的初学者,我在设置 glOrtho 相机以匹配窗口大小方面遇到了一些困难,以便我可以使用窗口的坐标绘制一条线。例如,如果我想从坐标 0,10 (x,y) 到 600,10 画一条线
我正在 OpenGL 中创建一个应用程序,我在其中使用 glOrtho(),原点位于左上角: glOrtho(0.0, width, height, 0.0, 0.0, 1.0); 直到我尝试渲染轮廓
我在使用 glOrtho 移动相机时遇到问题。我在中心有一个小四边形,我想尝试使用 glOrtho 移动相机,但它似乎不起作用。四边形根本不动,所以我猜相机也没有移动。也许我想念 glOrtho 的工
我需要在与 XOZ 平面平行(垂直于 OY)的平面上进行 opengl 投影。 你能解释一下我应该使用 glOrtho 进行投影的哪些参数吗? 谢谢, 最佳答案 你的问题的措辞对我来说不是很清楚,但如
我正在使用 OpenGL 创建 2D 游戏。每次我移动对象时,我都必须调用 glLoadIdentity,否则所有对象都会被移动,但是 glLoadIdentity 也会重置 glOrtho 调用,所
我在 (0,0) 处抽了一辆汽车,并设置了一些障碍,但现在我主要关心的是从 glPerspective 切换到 glOrtho,反之亦然。当我从透视切换到正射时,我得到的只是黑屏。 void myin
所以我有一个 3D 对象,我用以下光线绘制: GLfloat light_diffuse[] = {1.0, 1.0, 1.0, 0.9}; /* White light. */ GLflo
在 OpenGL 中我可以这样做: glOrtho(-10, 10, -10, 10, -1, 1) 建立一个坐标系,其中x的范围是-10到10,y的范围是-10到10。 有没有办法在 WPF 中更改
我不知道我的函数是否做错了什么(可能是 glOrtho 的参数错误),所以结果就是错误的,或者是否一切正常。 特别是我有这种情况: 我希望绿色矩形及其所有内部内容占据窗口的所有空间,而不仅仅是窗口的一
我是一名优秀的程序员,十分优秀!