gpt4 book ai didi

opengl - 根据 GL_POINT 到相机的距离确定 gl_PointSize

转载 作者:行者123 更新时间:2023-12-04 16:47:25 26 4
gpt4 key购买 nike

我正在绘制 GL_POINTS 使用glDrawArrays(GL_POINTS, 0, numberOfPoints)使用 gl_PointSize 在我的顶点着色器中设置每个点的大小。我从 glm::lookAt(origin, eye, up) 获取 View 矩阵 一个点的 xyz 位置是使用 gl_Position = view * proj * vec4(position, 1.0) 在顶点着色器中。我希望点的大小随着它到相机原点的距离的减小而增加,并且大小随着与相机原点的距离的增加而减小。就像正常的视角一样。如何根据点到相机的距离确定点的大小?

最佳答案

这是我最近创建的用于实现此目的的顶点着色器。

precision mediump float;
attribute vec3 position;

uniform mat4 model, view, projection;
uniform float pointsize;
uniform vec3 cameraeye;

void main(void) {
gl_Position = projection * view * model * vec4(position.xyz, 1.0);
gl_PointSize = pointsize - (distance(cameraeye, position.xyz) / pointsize);
}
  • pointsize 是点的初始大小和最大大小
  • cameraeye 是相机的 vec3 世界位置
  • 删除 model 矩阵可能没问题。我在我的实现中使用恒等值的单位矩阵。

关于opengl - 根据 GL_POINT 到相机的距离确定 gl_PointSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37753951/

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