我知道,我挖了整个互联网,以找出问题是什么,到目前为止没有任何帮助.
我在Windows 7上,使用:
Qt 4.8.3: https://download.qt.io/archive/qt/4.8/4.8.3/qt-win-opensource-4.8.3-mingw.exe
MinGW32 4.4.0: http://nosymbolfound.blogspot.com/2012/12/since-until-now-qt-under-windows-is.html
Run Code Online (Sandbox Code Playgroud)
我分叉了一个名为QLC的项目,但是作者没有给我支持在Windows上编译.我按照他的指示,但我猜他们已经过时了.
我可以用Qt Creator编译任何Qt演示示例,所以我相信我的系统工作正常.
在尝试编译程序时,我遇到了众所周知的问题:
g++ -enable-auto-import -o libqlcengine.a object_script.libqlcengine.Debug -L".\lib" -L"c:\Qt\4.8.3\lib" -lwinmm -L../../hotplugmonitor/src -lhotplugmonitor -lQtScriptd4 -lQtXmld4 -lQtGuid4 -lQtCored4
c:/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../libmingw32.a(main.o):main.c:(.text+0x104): undefined reference to `WinMain@16'
Run Code Online (Sandbox Code Playgroud)
(object_script.libqlcengine.Debug是一个很长的.o文件列表)
现在,在构建它的时候,它试图链接一个静态.a库,所以我认为没有理由让MinGW寻找WinMain.我做了grep'WinMain'并且在整个源代码树上找不到任何结果.
如果要查看原始来源:
svn co https://qlc.svn.sourceforge.net/svnroot/qlc qlc
Run Code Online (Sandbox Code Playgroud)
或者我的分叉版本:
git clone git://git.code.sf.net/p/qlcplus/code qlcplus-code
Run Code Online (Sandbox Code Playgroud)
他们有相同的结果.
伙计们,我在这里失踪了什么?我尝试了一大堆C标志(-mwindows -lmingw32 -DQT_NEEDS_MAIN -lqtmain),但都没有.
有什么神奇的吗?
PS当然我可以在Linux上构建i386/amd64
我只需要将以下行添加到创建库的.pro文件中:
win32:QMAKE_LFLAGS += -shared
Run Code Online (Sandbox Code Playgroud) 我想在Qt 5.12中将0到255之间的整数矩阵可视化为灰度图像。首先,我构建了一个示例256x256 uchar数组,每行的值在0到255之间。然后我尝试以QImage和format_grayscale作为格式显示图像。但是令人困惑的是,生成的图像在最后一行中包含受干扰的像素。
结果图像

我还创建了一个灰度彩色图,并尝试使用format_indexed8,但结果相同。这是我的代码。
uchar imageArray[256][256];
for (int i = 0; i < 256; i++)
{
for (int j = 0; j < 256; j++)
{
imageArray[i][j] = uchar(j);
}
}
QImage image(&imageArray[0][0],
256,
256,
QImage::Format_Grayscale8);
Run Code Online (Sandbox Code Playgroud) 在我的开源项目中,我使用Qt3D设置了延迟渲染管道。到目前为止,一切都很好,但是现在我想通过增加聚光灯的投影体积来向前迈进。(例如,好像在现场冒烟)是这样的:
我正在使用的片段着色器在问题的结尾。我已经读过,对于每个片段,我都应该从光线位置进行光线行进,并找到与圆锥体的交点,但是我不知道如何将其转换为GLSL。我可以轻松地添加来自GBuffer的深度图(从摄影机的角度来看)的制服,但是我不知道这是否有帮助。
由于我的GLSL知识非常有限,请以实际代码答复,而不是冗长的数学解释,我无法理解/将其翻译为代码。请耐心等待我。
uniform sampler2D color;
uniform sampler2D position;
uniform sampler2D normal;
uniform vec2 winSize;
out vec4 fragColor;
const int MAX_LIGHTS = 102;
const int TYPE_POINT = 0;
const int TYPE_DIRECTIONAL = 1;
const int TYPE_SPOT = 2;
struct Light {
int type;
vec3 position;
vec3 color;
float intensity;
vec3 direction;
float constantAttenuation;
float linearAttenuation;
float quadraticAttenuation;
float cutOffAngle;
};
uniform Light lightsArray[MAX_LIGHTS];
uniform int lightsNumber;
void main()
{
vec2 texCoord = gl_FragCoord.xy / winSize;
vec4 col = …Run Code Online (Sandbox Code Playgroud)