【问题标题】:Opengl & glsl (vec4 * vec4) redundantOpengl & glsl (vec4 * vec4) 冗余
【发布时间】:2020-08-06 11:17:33
【问题描述】:

我正在阅读 OpenGL 编程指南,第九版。

我遇到了麻烦:

#version 420 core
uniform mat4 model_matrix;
…
layout (location = 0) in vec4 position;
…
void main(void)
{
vec4 pos = (model_matrix * (position * vec4(1.0, 1.0, 1.0, 1.0)));
…
};

那么,将“位置”乘以 vec4(1.0, 1.0, 1.0, 1.0) 有什么意义?结果将是带有或不带有 vec4(1.0, 1.0, 1.0, 1.0) 的“位置”。

【问题讨论】:

  • IIRC vec4*vec4 是分段乘法,所以它只是缩放。是的,它是多余的,但可能会在后面(在教程或其他内容中)用于缩放......

标签: opengl glsl


【解决方案1】:

我在红皮书中查过,没有具体原因,那么它只是对顶点位置的缩放,以防向量与 Vector4.One 不同并且您想要进行缩放,但如果它只是一个单位向量,不需要这样做,你可以简单地去除冗余。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 2013-05-05
    相关资源
    最近更新 更多