Qt3D:根据实体和cam之间的距离缩放实体大小

2024-05-13 21:57:40 发布

您现在位置:Python中文网/ 问答频道 /正文

在代码中调整实体的大小很容易:

self.transform = Qt3DCore.QTransform()
self.transform.setScale(1.5)

但我想动态地调整实体的大小。我希望我的实体放大时,我把相机远离它或缩小时,我接近我的相机。使用合适的着色器可以做到这一点吗?在


Tags: 代码self实体transform动态着色器qtransformqt3dcore
1条回答
网友
1楼 · 发布于 2024-05-13 21:57:40

我找到了这个link。在

其中是我添加到顶点着色器中的代码:

in vec3 vertexPosition;
uniform mat4 modelViewProjection;

void main()
{
    float reciprScaleOnscreen = 0.005;
    float w = (modelViewProjection * vec4(0.0, 0.0, 0.0, 1.0)).w;
    w *= reciprScaleOnscreen;

    gl_Position = modelViewProjection * vec4(vertexPosition.xyz * w , 1.0);
}

所以在程序中不需要缩放实体。使用着色器更简单。在

相关问题 更多 >