OpenGL 我正在更改我的 z 值,但什么也没发生
OpenGL I'm changing my z value but nothing is happening
我有一个 2D 矩形,我正在将所有顶点的顶点着色器中的 z 分量更改相同的数量 k(这是我用箭头键控制的统一
(#version 330
layout (location = 0) in vec3 aPos; //vertex shader
layout (location = 1) in vec2 aTexCoord;
out vec3 OurColor;
out vec2 TexCoord;
uniform float k;
void main(){
gl_Position = vec4(aPos.x, aPos.y, aPos.z + k, 1.0f);
TexCoord = aTexCoord;
}
#version 330 core
out vec4 FragColor; //fragment shader
in vec2 TexCoord;
uniform sampler2D texture1;
uniform sampler2D texture2;
void main(){
FragColor = mix(texture(texture1, TexCoord), texture(texture2, TexCoord), 0.5);
}
什么也没发生,矩形似乎没有变远或更近,只有当我使 Z 分量大于 1.0 或小于 -1.0 时,它才会消失。我尝试更改第四个组件,它使对象变得越来越大,就像您期望的 Z 组件一样。
我试图在网上找到解释,但它们都使用预制的数学库,没有人处理底层数学。有人可以解释一下 Z 和 W 的行为方式吗?
顶点着色器(除其他事项外(应该执行ModelViewProjecting矩阵在固定函数管道中执行的操作:将几何图形转换为视图坐标并将其投影为投影坐标。这意味着您应该将投影(通常除以z
(合并到顶点着色器输出中。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 0-1背包代码中的错误.我的代码中有什么错误
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 无论我使用什么,我的输入都会被跳过
- 我的C++线程做错了什么?
- 我的逻辑反转字符串中的元音有什么问题?
- 比特集告诉我的名字是什么?
- 我的设备上的 C++ 编译器版本是什么
- 这个函数是什么意思(我的英语sry)
- 我应该在 main 函数中写什么来测试我的问题?
- 任何人都可以告诉我我的 C++ 代码出了什么问题?
- 什么时候可以使用常量装饰调用我的重载函数?
- 我的堆栈和库存清单程序的结构有什么问题?
- 这是什么类型的C++语法,我应该采取什么步骤来理解这一点
- 什么是非营利组织???我的问题是我不明白为什么有人会使用它
- 是什么导致我的循环在第一次迭代中运行得更慢
- 此CMAKE错误意味着什么?我的变量设置为未发现
- 将派生类对象分配给基类对象时会发生什么(我的意思是对象断言,而不是指针)
- **编译器错误** - getline() 函数不接受第一个参数"std:ifstream"是什么我的问题?
- 在我的神经网络程序中使用的最有效的数据结构是什么?我的程序需要动态分配吗?