当前位置: 首页 > news >正文

大作设计网站官网登录wordpress注册邮箱验证

大作设计网站官网登录,wordpress注册邮箱验证,网站建设赣icp,手机软件页面设计网站9.2 OpenGL调用窗口,方向键和鼠标 9.2.1 opengl调用窗口 OpenGL调用窗口步骤: 第一步:初始化 GLFW,初始化OpenGL,初始化窗口,初始化上下文 第二步:设置窗口大小和位置,设置输入输出 第三步…
9.2 OpenGL调用窗口,方向键和鼠标
9.2.1 opengl调用窗口

OpenGL调用窗口步骤:

第一步:初始化 GLFW,初始化OpenGL,初始化窗口,初始化上下文

第二步:设置窗口大小和位置,设置输入输出

第三步:循环渲染

第四步:终止

示例代码:

#include <glew.h>
#include <glfw3.h>
#include <iostream>void processInput(GLFWwindow* window)
{if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)glfwSetWindowShouldClose(window, true);
}int main()
{//第一步:初始化glfw,glfwInit();//初始化glfw//glfwWindowHint初始化glfw的版本glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);//主版本glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);//次版本glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);//配置glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);//mac上使用//初始化窗口GLFWwindow* window = glfwCreateWindow(800, 600, "learnOpenGL", NULL, NULL);if (window == NULL){std::cout << "Failed to create GLFW window" << std::endl;glfwTerminate();return -1;}//初始化上下文glfwMakeContextCurrent(window); //将主线程设置为当前渲染环境//Init GLEWglewExperimental = true;if(glewInit() != GLEW_OK){printf("Init GLEW failed.");glfwTerminate();return -1;}//第二步:设置窗口大小和位置glViewport(0, 0, 800, 600);//前两个参数窗口左下角的位置。后两个渲染窗口的宽度和高度while (!glfwWindowShouldClose(window)){processInput(window); ///设置输入输出glClearColor(0.2f, 0.3f, 0.3f, 1.0f);//前面三个参数是RGB,后面一个参数是透明度glClear(GL_COLOR_BUFFER_BIT);glfwSwapBuffers(window);//函数在每次循环迭代开始时检查 GLFW 是否已被指示关闭glfwPollEvents();//函数检查是否触发了任何事件}glfwTerminate();//第四步:清理return 0;
}
9.2.2 opengl 调用方向键

调用方向键主要是考虑按键和移动速度,修改的办法是在上面调用窗口的设置函数processInput上进行修改;

void processInput(GLFWwindow *window)
{...const float cameraSpeed = 0.05f; // adjust accordinglyif (glfwGetKey(window, GLFW_KEY_W) == GLFW_PRESS)//按下W键cameraPos += cameraSpeed * cameraFront;//cameraFront相机超向if (glfwGetKey(window, GLFW_KEY_S) == GLFW_PRESS)//按下S键cameraPos -= cameraSpeed * cameraFront;if (glfwGetKey(window, GLFW_KEY_A) == GLFW_PRESS)//按下A键cameraPos -= glm::normalize(glm::cross(cameraFront, cameraUp)) * cameraSpeed;if (glfwGetKey(window, GLFW_KEY_D) == GLFW_PRESS)//按下D键cameraPos += glm::normalize(glm::cross(cameraFront, cameraUp)) * cameraSpeed;
}
9.2.3 opengl调用鼠标

OpenGL 调用鼠标主要考虑鼠标的移动和缩放,主要是使用下面3个函数:

glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED); //隐藏并捕获光标
void mouse_callback(GLFWwindow* window, double xpos, double ypos);//监听鼠标移动事件xpos和ypos代表当前鼠标位置
glfwSetCursorPosCallback(window, mouse_callback)

计算鼠标光标步骤:

  1. 计算鼠标自上一帧以来的偏移量。
  2. 将偏移值添加到相机的偏航和俯仰值中。
  3. 为最小/最大音高值添加一些约束。
  4. 计算方向向量。

代码:

void mouse_callback(GLFWwindow* window, double xpos, double ypos)
{if (firstMouse)// initially set to true,保证初次使用不会大幅度跳跃{lastX = xpos;lastY = ypos;firstMouse = false;}float xoffset = xpos - lastX;float yoffset = lastY - ypos; lastX = xpos;lastY = ypos;float sensitivity = 0.1f; //乘以灵敏度值,降低鼠标移动太剧烈xoffset *= sensitivity;yoffset *= sensitivity;yaw   += xoffset;//偏移值加入俯仰pitch += yoffset;//偏移值加入偏航if(pitch > 89.0f)///加入约束pitch = 89.0f;if(pitch < -89.0f)pitch = -89.0f;glm::vec3 direction;//计算实际方向向量direction.x = cos(glm::radians(yaw)) * cos(glm::radians(pitch));direction.y = sin(glm::radians(pitch));direction.z = sin(glm::radians(yaw)) * cos(glm::radians(pitch));cameraFront = glm::normalize(direction);
}  

(2)鼠标缩放

void scroll_callback(GLFWwindow* window, double xoffset, double yoffset)
{fov -= (float)yoffset;if (fov < 1.0f)fov = 1.0f;if (fov > 45.0f)fov = 45.0f; 
}projection = glm::perspective(glm::radians(fov), 800.0f / 600.0f, 0.1f, 100.0f);  
glfwSetScrollCallback(window, scroll_callback); 
http://www.yayakq.cn/news/150374/

相关文章:

  • 网站通常用什么编程做一个正规平台维护多久
  • 网站大连成都市公共资源交易服务中心
  • 邯郸建设网站的公司哪家好在线看mv视频网站入口软件下载
  • 比特币矿池网站怎么做电商怎么做营销推广
  • wordpress怎么去掉主题的搜索框专业seo网络推广
  • 哪里制作企业网站免费代运营
  • 广东网站备案查询系统俄罗斯最新消息军事
  • 办网站租服务器公司注册代理免费咨询
  • 云虚拟主机可以做多少个网站建筑模板价格规格大全
  • 那个网站做旅游规划好贸易公司注册多少钱
  • 网站建设待遇怎样如何编写app软件
  • 加盟做地方门户网站wordpress发布视频链接
  • 网站建设专家哪家好市政工程中标查询网
  • 外贸网站要先备案吗哪些网站做物流推广比较好
  • 酷炫网站推荐erp软件销售
  • 企业网站建设价格wordpress左右滑动页面
  • 上海网站推广排名公司谷歌seo和百度seo区别
  • 网站的栏目结构简图怎么做做网站接私活
  • 扬中企业网站优化哪家好济宁seo推广
  • 济南网站开发设计wordpress 中文 404
  • 网站基础建设ppt安卓手机下载app的软件
  • 百度沈阳分公司地址在哪里seo工具有哪些
  • discuz 科技网站模板网站空间和云服务器
  • 工程监理行业为什么做网站哪些网站可以做相册视频
  • 网站做微信支付宝支付品牌设计logo图片
  • 贵州省建设厅官方网站官网潍坊网站制作多少钱
  • 购物商城网站制作建设网站坪山
  • seo推广网站网站建设方案范文
  • 网站建设勹金手指下拉微营销
  • 视频点播网站开发网站打开速度太慢