加载的2D纹理不会将自身绑定到QUAD

时间:2016-01-07 22:01:45

标签: c++ opengl textures

我已经将纹理的ID加载到class SshConn def initialize(hostname, user, pass) @hostname = hostname @user = user @pass = pass end def ssh_connect(cmd) data = "" Net::SSH.start(@hostname, @user, :password => @pass) do |ssh| data = ssh.exec!(cmd) ssh.close end data end end 变量中,但是当我在绘制QUAD之前使用此ID绑定纹理时(在下面的代码中看到tex函数包围的renderScene函数{1}}注释),没有纹理应用于QUAD;它仍然是无色的。也没有错误消息。

我已经包含了我在程序中编写的所有与纹理相关的内容。

我还需要添加/更改哪些内容?

xxxxxxxxx...

1 个答案:

答案 0 :(得分:0)

如评论中所述,加载BMP文件的方法不正确:即使你知道图像的大小(256x256),你仍然需要跳到像素数据部分(通常是54个字节,是标题的通常大小)。

所以现在你可以通过阅读这里的官方规范来编写自己的导入器:https://en.wikipedia.org/wiki/BMP_file_format

...或者也可以在网络上找到许多实现,例如此问题中提到的实现:C++: Read bitmap wrong

除非你找到一些易于插件的头文件库,否则我个人会反对使用一个库专门处理BMP文件,因为它引入了额外的依赖关系,非常容易自己滚动(和同时,学习如何实现一个简单的文件加载器。)