首页 新闻 搜索 专区 学院

OpenGL纹理生成全黑的问题?

0
悬赏园豆:100 [待解决问题]

一.我正在做的任务

最近需要紧急用到OpenGL写一个作业,学习了一段时间,我现在想做的是通过纹理贴图的形式把已经生成的dicom图片(c++库没有编译好,所以用了dcm4che转化的)贴到图形上,然后z轴叠加,形成三维效果。

二.我遇到的问题

对于教程中的图片生成纹理没有问题,(使用stbi_load加载图片)可是当换成我自己的图片的时候,已经生成的图片如下:
纹理编程全黑了,我感觉这过程中可能有几步存在问题。

三.我已经尝试的方法

1.可能加载纹理函数(glTexImage2D)的参数问题

首先长宽都可以读出,nrChannels为1(可能是灰度图),尝试修改源数据类型为GL_LUMINANCE8,失败了

2.可能是路径或者生成图片格式的问题

路径问题好解决,查看一下就行,排除。生成图片的格式这个问题很迷,由于stbi_load返回错误no SOI,我想着是不是dcm4che生成的jpg和stbi_load要求的格式不一致,或者说不标准?我就尝试了生成png格式的图片,结果也是失败(而且对于两个png图片,都返回no SOI,但是只有我生成的图片是全黑。。)。

3.可能是dcm4che的问题,那我改成直接C++读取行吧

我于是尝试使用dcmtk直接读取dicom中的图像数据,然后把这个数据塞到glTexImage2D的data中,结果有点成效,如下图:

但是无论我怎末修改参数图片依旧这样(可能还有一些修改方式没想到?)

4.于是我打算换成c++生成图片并且作为纹理读取

打算使用cximage和dcmtk,但是很不幸,cximage编译失败。。。所有努力到此为止。

我有点迷,不知道哪里出现的问题,当然也不知道怎末解决,有没有大佬指出问题出在哪里或者帮我调试一下bug,留言或者qq(2279633462)均可,很急,感谢!

霍己的主页 霍己 | 初学一级 | 园豆:97
提问于:2020-08-14 17:50
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册