gpt4 book ai didi

java - 投影矩阵 OpenGL/GLSL 问题

转载 作者:行者123 更新时间:2023-12-01 18:26:30 24 4
gpt4 key购买 nike

我在尝试将投影矩阵应用于 GLSL 中的对象时遇到问题。

这是 GLSL 代码:

#version 330

layout (location = 0) in vec3 pos;

uniform mat4 transformationMatrix;
uniform mat4 projectionMatrix;

out vec4 originalPos;
out vec4 transformedPos;
out vec4 col;

void main(){

col = vec4(pos, 1);
originalPos = (projectionMatrix / transformationMatrix) * vec4(pos, 1);

vec4 newPos = projectionMatrix * vec4(pos, 1);

transformedPos = newPos;
gl_Position = newPos;
}

它在 Windows 上运行得非常好: Rendering on Windows

但它在 Linux 上不起作用: Rendering on Linux

我确信存在某种与投影矩阵相关的问题,因为如果我省略矩阵应用程序,它就可以正常工作。

它是完全相同的代码和着色器。

使用 lwjgl 和 Java。

最佳答案

这个

originalPos = (projectionMatrix / transformationMatrix) * vec4(pos,1);

对于 vector 变换来说没有意义。当“/”运算符在 GLSL 中应用于矩阵时,会进行组件范围的除法。您可能想要的是反转,这是一个完全不同的操作。

关于java - 投影矩阵 OpenGL/GLSL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25979454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com