问题标签 [devil]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - OpenGL,加载纹理 - 纹理上的额外噪声
在我们自己的 3d 应用程序中,我正在使用魔鬼库加载多个纹理。当尝试加载一个纹理时,我正在调用ilutRenderer( ILUT_OPENGL );
,它依次执行以下函数调用:
ilutRenderer( ILUT_OPENGL );
只需要调用一次(对于每个新创建的窗口),但是在试验时我已经多次调用了相同的函数。(每个加载的纹理调用一次)
如果多次调用相同的函数 - 加载的 openGl 纹理看起来质量比调用一次时更差。(我有多个纹理,但大多数质量较差,不确定第一张图片)。
我对此感到困惑-因为从我的角度来看,该电话没有做任何特别的事情-为什么它不能容忍多个类似的电话?
好吧,我已经开始过滤出哪些函数可以被多次调用,哪些不能——并得出结论认为是glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
它触发了奇怪的行为。所以包装函数是这样的:
之后ilutRenderer( ILUT_OPENGL )
可以根据需要多次调用。
我也尝试过像这样集中opengl初始化:
但是纹理仍然显示为“损坏”。也许窗口应该在开始加载纹理之前至少渲染一次,但我想知道 OpenGL 中的哪些函数反映了纹理损坏/看起来不错的状态。
我有“NVidia Quadro K2100M”,驱动程序版本 375.86。
这是显示驱动程序错误吗?您通常如何向 NVidia 报告错误?
jquery - Jquery 和 $(document).ready(function()
我已经阅读了很多关于 $(document).ready(function() 的东西很清楚它什么时候有用,所以通常我在里面写 $(document).ready(function()
但是,为什么是魔鬼,为什么在这么简单的情况下就被KO了?如果您只是推迟 le $(doc.... 它可以完美运行
代码 :
c++ - OpenCV:用 cv::imread 替换 ilLoadImage
我正在hessgpu
使用 GPU 有效地计算 hessian 仿射 SIFT 描述符。
在这个项目中,Devil用于读取图像:如果SiftGPU::RunSIFT(const char *imgpath)
被调用(在此处实现),则ilLoadImage
在GLTexImage.cpp中用于读取图像(作为 RGB 图像)。
但是,在我的项目中,我cv::imread
用来读取图像。该项目提供SiftGPU::RunSIFT(int width, int height, const void * data, unsigned int gl_format, unsigned int gl_type)
从用户直接提供的数据计算描述符。
所以我尝试了:
但这产生的关键点比sift.RunSIFT("image.jpg");
. 我尝试使用:
但这会产生 0 个关键点,所以会发生一些非常错误的事情。我认为:
iLoadImage
使用 RGB 图像,而到目前为止我发现的唯一工作方法cv::imread
仅适用于灰度图像。- 恶魔可能使用与 OpenCV 不同的过程来读取图像,尤其是对于 RGB 图像(因为使用第二种方法产生了 0 个关键点)。
我怎样才能做相当于ilLoadimage
using cv::imread
?
haskell - 写入文件,但如果存在 DevIL 和 REPA 则覆盖它
我正在使用 DevIL 库来读取和写入图像。问题是如果文件已经存在,我想覆盖它。
这是我的代码:
我怎样才能做到这一点?我可以这样做还是必须考虑其他方式?它是操作系统的东西吗?
我将该文件用作临时图像,直到用户决定保存它(经过一些更改,如旋转、扩展等)。
image - 哪个是最快的图像加载库?
我目前正在使用 stb_image 加载 3D 模型的纹理。对于“sponza”模型,需要加载 63 个纹理(包括漫反射颜色纹理、法线贴图、高度图等),这需要几秒钟。
我希望这些纹理加载得更快。
其他图像加载库是否比 stb_image 更快?FreeImage 怎么样?DevIL 呢?
以某种方式使用 stb_image 加载多线程图像是否有意义?
如果从硬盘到 RAM 的数据吞吐量是这里的限制因素,那将无济于事 - 但也许是加载算法?
图像文件均为 PNG 格式,每个文件大约 1MB。会不会是 PNG 格式的解压成本太高?在这种情况下,不同的图像加载库或多线程可能会有所帮助。
c++ - DevIL/OpenIL 没有加载 alpha 通道
我遇到了一个问题.png
,我想使用 DevIL 作为字节数组加载的图像没有 alpha 通道。
完整的黑色图像也显示为 Alpha 通道值为 0。
这是我的图像加载功能:
Image
我使用的对象如下:
这就是我现在打印图像数据的方式:
我也尝试使用将ilTexImage()
加载的图像格式化为RGBA
格式化,但这似乎也不起作用。当我将循环变量的最大值更改为图像中像素数的 4 倍时,打印循环开始读取垃圾值。
该图像也被确认具有 Alpha 通道。这里可能出了什么问题?
编辑:ilGetInteger(IL_IMAGE_BPP)
正在返回 3,这应该意味着 RGB 现在。当我使用ilTexImage()
强制 4 个通道,然后ilGetInteger(IL_IMAGE_BPP)
返回 4 但我仍然看到在 std 输出中弹出垃圾值
c++ - WIN 中的相同 DevIL 项目在 Ubuntu 中失败
通过在 Linux 中使用DevIL,函数ilCopyPixels()总是返回 false,而它在 Windows 中可以正常工作。我正在尝试使用库操作输入图像,它确实工作正常,但是当我尝试在 ubuntu 中使用 g++ 编译它时没有机会,例如:
g++ main.cpp PictureOperation.h PictureOperation.cpp StopWatch.h StopWatch.cpp -std=gnu++11 -lIL
我没有收到错误,因此它也可以正常编译,但在这种情况下,来自 DevIL 的函数 ilCopyPixels 返回 false。这是我的“PictureOperation”类的初始化函数:
所以最后看来我的g ++和devil配置效果不佳..希望有任何解决方案。
此外: