问题标签 [stb-image]

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.

0 投票
0 回答
633 浏览

image - 哪个是最快的图像加载库?

我目前正在使用 stb_image 加载 3D 模型的纹理。对于“sponza”模型,需要加载 63 个纹理(包括漫反射颜色纹理、法线贴图、高度图等),这需要几秒钟。

我希望这些纹理加载得更快。

其他图像加载库是否比 stb_image 更快?FreeImage 怎么样?DevIL 呢?

以某种方式使用 stb_image 加载多线程图像是否有意义?

如果从硬盘到 RAM 的数据吞吐量是这里的限制因素,那将无济于事 - 但也许是加载算法?

图像文件均为 PNG 格式,每个文件大约 1MB。会不会是 PNG 格式的解压成本太高?在这种情况下,不同的图像加载库或多线程可能会有所帮助。

0 投票
2 回答
3209 浏览

c++ - stbi_load 不返回任何值

我正在尝试将一些带有 stb_image 的图像加载到unsigned char*. 代码如下:

、和变量在类buffer中声明。调用后,和为0。我确定文件路径是正确的,但即使我输入了错误的路径,也会出现相同的结果。我不知道如果发生错误,stbi_image 是否应该在控制台上打印一些东西,但那里没有打印任何文本。bppwidthheightTexturestbi_loadwidthheightbpp

[编辑] 有人真的知道如果 stb_image 无法读取图像会发生什么吗?

0 投票
1 回答
2697 浏览

java - 使用 stb_image 的 stbi_load

我正在使用 lwjgl 的端口stb_image来加载jpg图像。问题是,我总是得到一个nullByteBuffer因为什么都没有加载。这是代码:

我的纹理的位置:

在此处输入图像描述

我当然是这样尝试的:

同样的结果,没有加载。我究竟做错了什么?

0 投票
1 回答
1533 浏览

c++ - 使用 stb 加载图像时出错

我正在尝试加载以下图像:

在此处输入图像描述

作为斯坦福龙的纹理。然而结果如下: 在此处输入图像描述

我已经读到其他人遇到了这个问题,因为要么没有正确绑定纹理,要么在加载纹理时使用了错误数量的组件。我认为我没有这些问题,因为我既要检查图像的格式又要绑定纹理。我已经设法让其他图像正确加载,所以这似乎存在特定于该图像的问题(我并不是说图像已损坏,而是关于该图像的某些内容与我尝试过的其他图像略有不同) .

我用来初始化纹理的代码如下:

0 投票
1 回答
548 浏览

c++ - 纹理不绘制 OpenGL

尝试在 OpenGL 中绘制纹理时,我遇到了一些奇怪的行为。目前,这个程序对我所做的只是绘制背景颜色,而没有指示正在绘制纹理。我刚刚从 Visual Studio(此代码产生正确的输出)转移到在命令提示符下进行编译。此代码应为背景着色并在屏幕中央绘制一个纹理。

我担心我可能提供了不正确的库进行编译,因为就我而言,我所做的一切都是一样的。然而,不同的库总是说它们不兼容。

主要代码:

顶点着色器:

片段着色器:

设置此纹理:

创建广场:

0 投票
1 回答
329 浏览

c++ - 无法在 openGL 中渲染天空盒

我一直在使用本教程创建一个天空盒,但对纹理进行采样返回黑色。如果我使用我的纹理坐标作为颜色,那么我会得到合理的彩色天空盒,所以我认为问题出在纹理采样上!我的显卡或openGL版本有问题吗?

这是我的代码:

还有我的顶点着色器:

还有我的片段着色器:

0 投票
1 回答
161 浏览

c++ - 在 STB/Opengl 中渲染白盒纹理

程序编译良好。四边形打印。尝试插入 32 位 png,但它只打印一个白框。我究竟做错了什么?我花了几天时间试图弄清楚它做了无数的教程。我不想放弃。

这一切都是在类和函数中设置的,但我会尝试展示整个平局。

片段着色器。

顶点着色器。

0 投票
1 回答
513 浏览

c++ - freeimage 写入像素

我正在尝试使用 freeimage 在文件中写入一些顶点(但我也对使用 stb_image 的解决方案持开放态度)。

我正在尝试使用计算机图形学中的代码:原理与实践第 3 版,第 3 章,清单 3.6。

我不确定如何处理 freeimage 库。

即使我设置了红色背景颜色,我也会收到黑色。

此外,即使我正在使用 写入文件setpixelcolor,我仍然会收到一个黑色窗口。顶点应显示为绿点。

0 投票
1 回答
176 浏览

c++ - OpenGL/Glew C++ 纹理不适用

我正在尝试将纹理应用于opengl中的基本三角形。问题是我的纹理不起作用,它只会在三角形上应用一种奇怪的颜色......

我已经看过文档和一些 youtube 教程,但我真的无法让它工作。

以下是一些代码示例:

纹理构造函数 -

网格构造函数 -

着色器片段 -

着色器顶点 -

这是github上的代码,您可以自己查看:https ://github.com/Kosta-Git/Pong/tree/master/Pong

另外我还有另一个问题是我什至无法加载 texture.jpg 文件(bricks.jpg 有效),但我想这是因为它不是 512x512。

0 投票
1 回答
299 浏览

c++ - 无法渲染模型 - (glfw / assimp)

我在 learnopengl.com 上按照 LearnOpenGL 教程使用 assimp 加载模型并使用 glfw 渲染它。

不幸的是,我得到的只是一个空的黑色窗口......

在此处输入图像描述

我的代码与 Joey 的教程源代码相同:

https://learnopengl.com/code_viewer_gh.php?code=src/3.model_loading/1.model_loading/model_loading.cpp

最重要的是,我不知道如何调试这样的问题,看看它已经清楚地加载到网格数据中的模型:

在此处输入图像描述

我真的不期待这里的答案,但是如果有人可以就如何在我从编译器或记录器没有得到任何回报的情况下调试这样的问题提供建议......我将不胜感激!

**************** 更新 ***************

所以我抓住了 RenderDoc,网格输出什么也没显示:

在此处输入图像描述

但是“错误和警告”窗口是空白的......

我重新下载了 GLAD 以防我丢失了扩展,但那里没有成功。我还把 GLAD 换成了 GLEW,看看这是否会有所不同,没有喜悦。

此外,我在 YouTube 上找到了本教程的简化版本,并为此交换了所有 Mesh/Model/Main 代码……但没有任何效果,只是一个黑色窗口。

我不知道这会把我留在哪里......