小编The*_*ake的帖子

OpenGL C++鼠标光线拾取glm:unproject

我目前正在研究C++游戏引擎,我想在应用程序中构建鼠标交互.我以前通过射线拾取完成了这个,但是当时我使用了固定的鼠标位置,现在我想不用它.我读到你可以使用glm :: unProject函数来做到这一点,但我的工作不起作用.coördinates这个功能给出了不对.我究竟做错了什么?

rscore_projection_matrix = glm::perspective(45.0f, (float)(windowWidth)/(float)(windowHeight), 0.1f, 1000.0f);
rscore_view_matrix = glm::lookAt(glm::vec3(lengthdir_x(16, rscam_direction)+rscam_x, rscam_z, lengthdir_y(16, rscam_direction)+rscam_y), glm::vec3(rscam_x, 0, rscam_y), glm::vec3(0,1,0));
rscore_model_matrix = glm::mat4(1.0f);
glm::vec3 screenPos = glm::vec3(rscore_mouse_x, rscore_mouse_y, 0.1f);
glm::vec4 viewport = glm::vec4(0.0f, 0.0f, windowWidth, windowHeight);
glm::vec3 worldPos = glm::unProject(screenPos, rscore_model_matrix, rscore_projection_matrix, viewport);
Run Code Online (Sandbox Code Playgroud)

我使用vec3 worldPos位置来绘制对象.

c++ opengl glm-math

3
推荐指数
1
解决办法
5712
查看次数

标签 统计

c++ ×1

glm-math ×1

opengl ×1