gpt4 book ai didi

c++ - 如何检查鼠标是否在 OpenGl 屏幕的一侧?

转载 作者:行者123 更新时间:2023-11-28 04:18:49 24 4
gpt4 key购买 nike

在 opengl 中,我如何检查鼠标指针是否在对象内。到目前为止,我只能使用 glutPassiveMotionFunc 检查它是否在屏幕内。

最佳答案

我猜您想检索鼠标下方或点击像素下方的对象。有一种方法称为 3d 拾取。它包括在专门为此目的创建的纹理上绘制场景。它必须与您的窗口具有相同的尺寸。您将使用特殊着色器绘制场景,该着色器将在纹理上绘制对象的 ID。之后你只需要读取鼠标所在的像素就可以知道选择了哪个对象。

这是我的片段着色器,它获取当前对象的 id:

#version 330 core

uniform uint id;

layout(location = 0) out uvec4 out_color;

void main()
{
uvec4 color;
color.x = (id & 0xff0000u) >> 16;
color.y = (id & 0x00ff00u) >> 8;
color.z = (id & 0x0000ffu) >> 0;
color.w = uint(255);

out_color = color;
return;
}

您也可以查看本教程:http://ogldev.atspace.co.uk/www/tutorial29/tutorial29.html

关于c++ - 如何检查鼠标是否在 OpenGl 屏幕的一侧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55939984/

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