问题标签 [soil]

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 投票
1 回答
525 浏览

opengl - 使用土壤加载 .png 纹理,问题

嘿伙计们,我是 OpenGL 的新手,在尝试显示纹理时遇到了问题。我尝试以 .png 格式显示的每个纹理都只是赋予了它的颜色,例如,如果我尝试显示一个红砖,它只是出现红色,只有颜色。我使用的代码如下。我应该在哪里绑定纹理或代码有什么问题?我无法理解。

0 投票
1 回答
279 浏览

c++ - Opengl glBindTexture 使用最后加载的纹理

opengl 只使用最后加载的纹理,我不知道为什么。这是我的代码:

}

}

纹理被加载到一个 c++ 向量类数组中,然后传递给 drawObject 函数。绘制对象时只使用最后加载的纹理,我不知道为什么。是的,每次 SOIL 加载纹理时,它都会分配一个新的 GLuint,是的,纹理在使用之前就已加载。

0 投票
1 回答
594 浏览

c++ - 在 std::thread 中使用 SOIL 加载 OpenGL 纹理会引发“整数除以零”

我可以正常在 SOIL/OpenGL 中加载纹理。没有错误,一切正常:

但是,使用相同的代码并从 std::thread 调用它,在该行image = SOIL_load_OGL_texture我得到未处理的异常Integer Division by Zero

这是我的 Texture 类中的一些相关代码:

它恰好在 处引发异常image = SOIL_load_OGL_texture,当我进入调试器时,我看到类似w = -816294792and的内容w = -816294792,但我想这只是意味着它尚未设置,因为它还在调试器中显示了用于加载其他纹理的内容。

此外,代码的 SOIL_load_OGL_texture 部分在 Texture 类之外,即使在 std::thread 中也可以正常工作。

知道这里发生了什么吗?

0 投票
1 回答
1383 浏览

c - 将纹理设置为具有 glut 的实体球体

我正在尝试将纹理加载到由 glutSolidSphere 和 soil.lib 创建的球体中

这就是我正在尝试的:

我认为我正在失去一些东西,但我没有什么。

谢谢。

0 投票
1 回答
1521 浏览

opengl - OpenGL渲染全屏图像

我正在尝试创建一个应用程序,它所做的只是全屏显示图像,然后快速(144hz)快速闪过一系列图像。我刚刚开始研究 OpenGL,已经完成了一些教程,但无法弄清楚我在这里做错了什么。我被卡住的部分实际上是将图像渲染到显示器上,因为它只显示为一个白色方块。我已经为此解决了其他堆栈溢出问题,但没有一个建议对我有用。

我在 Visual Studio 2015 中使用 win32 应用程序执行此操作并安装了 NupenGL 包。出于测试目的,我使用的是 256x256 位图图像,并通过我构建并静态链接的 SOIL 库加载它。

我最初认为我没有正确构建/链接 SOIL 库,所以一些时髦的东西正在尝试加载图像。我创建了一个不起作用的自定义 BMP 加载器,并且我还尝试了其他人的 BMP 加载器堆栈溢出但无济于事。我现在相信这不是纹理的加载,而是我在实际尝试渲染它时搞砸了一些东西。同样在我下面的代码中,如果纹理无效但它总是返回良好,我会输出。

输出(全屏): 在此处输入图像描述

输出(窗口): 在此处输入图像描述

我的代码:

0 投票
1 回答
562 浏览

c++ - 在 Ubuntu 14.04 中使用 SOIL

我在 Ubuntu 14.04 中使用 SOIL 时遇到了一些实际问题。我已经设法让 SOIL 在 Windows 环境中工作,并将代码从 Windows 移植到 ubuntu。

我确信我已经设法让 SOIL 安装在我的 Ubuntu 机器上。我有 libSOIL.a 和 libSOIL.so 文件以及 SOIL.h

然而,当我开始使用我的代码时,一切都出错了。这是我逐步构建的代码,因此在继续添加其他功能之前,我已经测试了代码片段。

我正在开发的代码非常简单(实际上,这只是一个检查,以尝试获得适用于许多平台的东西),它只是渲染一个围绕其中心旋转并具有纹理贴图的 3D 立方体。我希望使用 SOIL 来加载纹理。以前我已经使用我自己的例程加载纹理检查了这一切,这很好。一旦我将加载纹理的行更改为 SOIL 函数,它现在就会失败。

我正在使用的代码是

这是自此代码的上一个版本以来所做的唯一更改。

我通过简单的 'fopen' 和 'if{}else{}' 检查确保这个文件是可打开的,我什至安装了 Code::Blocks 以便我有一个可以逐行执行的调试器。当我的调试器进入 SOIL 函数并尝试单步执行该函数时,程序返回分段错误并退出,甚至没有将我发送到 SOIL 函数。

如果有人有任何想法,我将不胜感激,因为我已经为这个问题苦苦挣扎了好几个星期了!

干杯

*********编辑***********

让我们看看我现在是否可以在这里获得所有必需的信息(我不得不将机器移到我的 ubuntu 上以获得源代码)

首先我的代码是 C++(但我认为 SOIL 是用 C 编写的? - 因此有两个标签)

失败的源文件如下:

我在终端中运行的编译命令是:

返回的警告是几个type qualifiers ignoredunused parameters。但是没有任何涉及 SOIL 函数调用或任何暗示在此之前可能会停止 SOIL 工作的问题(我知道)。

其他可能有帮助的源文件是 init_GLUT 和 init_GLEW 文件,如下所示:

初始化过剩:

init_GLEW:

最后我的 SOIL.h 文件的内容如下:

我已经libSOIL.a存储在/usr/lib

我也尝试过libSOIL.a存储usr/local/lib,但这似乎无济于事。

SOIL.husr/local/include

希望现在这些信息足以让某人发现我的(菜鸟)错误。

为大量代码道歉。

还必须归功于 www.in2gpu.com,我一直在关注其教程以使我走到这一步。

干杯

0 投票
1 回答
2170 浏览

c++ - 使用 C++ 的 SOIL 库链接器错误问题

(您好,这是我的第一篇文章,我使用的是 Dev C++ IDE 5.11)
我包含了头文件 SOIL.h 和链接器:-lSOIL。
该程序编译没有问题并且运行正确,但是当我从 SOIL 库中将任何函数添加到我的代码中时,我收到一个链接器错误。
'目标 'Project1.exe' 的配方失败'
这是来自 SOIL 的导致链接器错误的代码:

(这可能有一个简单的解释和答案,但我到处搜索,因为我找不到它。)
注意:我正在关注网站 learnopengl 的教程
这是我的 makefile.win:

编译日志:

0 投票
1 回答
600 浏览

c++ - 使用 SOIL 的 OpenGL 纹理

我正在努力在 openGL 中构建篮球游戏,但是我正在采取婴儿步骤并将我的工作分成几个部分。我目前专注于纹理,尝试使用 SOIL 库建造房屋。

我对这一切都非常陌生,所以我可能设置错了,但我的主要问题是纹理的行为就像它们被夹在我所看到的边缘一样。

目前该项目是一堵用砖块纹理化的奇异墙,这是我得到的输出图像: Texture Fail

这是源代码:

任何帮助将不胜感激,谢谢!

0 投票
0 回答
501 浏览

c++ - OpenGL、土壤、纹理和透明背景

我似乎无法将图像上的透明背景加载为透明。相反,它总是白色的。我对 OpenGL/SOIL 还很陌生,所以如果我做了一些愚蠢的事情,请不要生气:/这是否与我在负载上的标志是 RGB 而不是 RGBA 有关?

0 投票
1 回答
360 浏览

c - OpenGL SOIL 链接到 Visual Studio

我在将 SOIL 链接到我的 OpenGL 项目时遇到问题,所以我问你是否可以告诉我如何正确链接它。