在中心位置渲染模型不显示(已修改)
Render model at center position not displaying (revised)
目前,我可以从DAE文件加载一个没有纹理的地球模型,只是为了显示屏幕上有什么东西。为此,我使用了GLU
但现在我正在尝试使用GLM和着色器来加载带有纹理的模型。我遇到的问题是正确地让他们两个一起工作来显示模型。
修订
在有人指出我需要VAO来渲染场景后,我决定使用ogldev的教程32中关于顶点阵列对象的前面提到的例子我编译了教程,它正常工作,但它是GLUT因此,我提取了与加载模型相关的重要部分,并将它们实现到我的项目中。经过一些调试,我已经设法比前面描述的更进一步,但仍然没有任何结果。在反复思考我可能错过了什么之后,我无法确定确切的问题。我确保程序正在读取值并进行适当的检查,以表明该过程是有效的,没有任何问题,但由于某种原因,我无法显示任何内容。我已经改变了背景颜色,以检查是否只有地球模型的剪影,但屏幕上仍然没有任何东西。
我所做的是提供了我所做事情的副本。一切都显示出适当的价值。如果你将教程与我的教程进行比较,你会发现这是一样的,除了我对相机位置和目标进行硬编码以指向模型所在的位置之外,真的没有什么不同。但我不知道在这个过程中我可能遗漏了什么。
(不过期)
game.cpp
OnInit()中的所有内容都通过。但当谈到OnRender()
时,有些地方是不对的。
PipeLine.cpp与教程没有什么不同。
模型.cpp除了类名,与教程没有什么不同。
技术.h&cpp着色器和着色器程序。与教程没有什么不同。
照明.h&cpp技术班的孩子。获取制服等。
主要问题似乎出现在您的片段定义中:
fragData = color * texture(tex, TexCoord);
其中颜色被定义为均匀。在主程序中,您没有为它分配任何值,因此,它被初始化为零,这使得任何片段都是黑色的。与帧缓冲区背景颜色相同。
尽管如此,您的代码仍存在其他问题。首先,您使用了许多不推荐使用的函数,这些函数在核心配置文件(v3.3)中没有效果
其次,您需要分配一个VAO(顶点阵列对象)才能看到任何东西。
最后,有些功能似乎没有任何效果,例如:
glm::translate(view, glm::vec3(0.f, 0.f, -20.f)); // <-----------
// Draw model
m_model.Render();
如果您提供render
函数的实现,将更容易帮助您。
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 继承期间显示未知行为的子类
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 程序崩溃并显示"std::out_of_range"错误
- 独立读取-修改-写入顺序
- 当系统的卷被修改时,如何修改WASAPI环回捕获卷
- 修改函数中的指针(将另一个指针作为参数传递)
- 为什么我可以通过引用修改常量返回
- 当我要修改指针到常量整数时,为什么我的编译器不显示错误
- 修改和显示在QAbstractVideoSurface中获得的QVideoFrames
- Qt5:如何修改下载速度以显示 1.xx MB/s 而不是 1.xxxxx MB/s
- 我如何修改我的C 程序以显示用户输入的单词,并使用堆栈向后
- libstdc++-v3中的GCC源代码修改未显示
- 使用 QQmlListProperty 在 Qml 中显示和修改 QList
- 尝试修改和显示 2D 阵列时出错
- 有人可以帮我修改此代码吗?我正在尝试显示C++QT的棋盘格
- 在中心位置渲染模型不显示(已修改)