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

中心网站设计百度关键词seo公司

中心网站设计,百度关键词seo公司,铜山区规划建设局网站,网站建设的 几点坐标转换 文章目录 坐标转换坐标系统的转换局部空间(Local Space)->世界空间(World Space)世界空间(World Space)->观察空间(View Space/View Space)裁剪空间(Clip Space)MVP矩阵 坐标系统的转换 了解坐标系统和空间变换之前需要先了解…

坐标转换


文章目录

  • 坐标转换
  • 坐标系统的转换
    • 局部空间(Local Space)->世界空间(World Space)
    • 世界空间(World Space)->观察空间(View Space/View Space)
    • 裁剪空间(Clip Space)
    • MVP矩阵


坐标系统的转换

了解坐标系统和空间变换之前需要先了解一下线性代数。
其实空间转换就是相同顶点在不同坐标系下新的坐标,最后在着色器里完成
渲染。

局部空间(Local Space)->世界空间(World Space)

个人理解:使用model矩阵转换坐标系

  • 只是用平移,放缩和旋转矩阵实现转化,把局部坐标(顶点坐标)通过模型原点和世界坐标原点获得各顶点的世界坐标。
  • 换个理解方式,就是将局部空间的原点坐标通过矩阵变换放置到世界空间的原点坐标
  • 注意要先线性变换再平移(缩放 -> 旋转 -> 平移

model矩阵:
此代码只是旋转了每个顶点,因为当前的渲染的物体的原点坐标已经在世界原点,故此时的model矩阵可以直接为单位阵

//Learnopengl 代码
glm::mat4 model;
model = glm::rotate(model, glm::radians(-55.0f), glm::vec3(1.0f, 0.0f, 0.0f));

世界空间(World Space)->观察空间(View Space/View Space)

个人理解:使用view矩阵转换坐标系

  • OpenGL本身没有摄像机(Camera)的概念,摄像机的移动就是物体的反方向移动。
  • 其坐标转换就是从顶点世界坐标转化到以摄像机的视角作为场景原点时的新的坐标
  • 我们只需要考虑设置摄像机的位置摄像机的朝向(方向),但仅仅这两个变量无法确定一个坐标系,我们需要引入上向量(垂直与位置和方向构成的方向向量),此时根据向量的叉乘,我们就可以确定一个新的坐标系。
  • 叉乘的结果方向和叉乘的顺序有关,可以根据右手定则确定,注意OpenGL里是右手坐标系。

lookAt函数

  • 第一个变量:这是你在空间中的位置,你希望从这个位置看向center
  • 第二个变量: 是你希望看向的位置,通常这个位置是场景中的某一点。
  • 第三个变量:是定义相机的上向量的方向。这个向量垂直于视线(从眼睛到目标)和水平向量。
glm::mat4 view;
view = glm::lookAt(glm::vec3(0.0f, 0.0f, 3.0f), glm::vec3(0.0f, 0.0f, 0.0f), glm::vec3(0.0f, 1.0f, 0.0f));

裁剪空间(Clip Space)

简单来说就是看不到的就不渲染。

两种投影矩阵

  • 矩阵要做什么:将顶点坐标”压缩进“[-1,1]的范围,越界则被裁剪掉
  • 正交(Orthographic )
    • 无近大远小
    • 矩阵怎么得到的:试想正交投影就是一个类似立方体的平截头箱,其先平移再修改scale,就能得到一个转成成标准化设备坐标(Normalized Device Coordinate, NDC)的矩阵
  • 透视(Perspective)
    • 实现的效果为近大远小,那么只需要将远平面压缩成和近平面一样,由于其类似于一个锥体,侧面看是一个三角形,它们是存在相似的关系,Z轴上,XY成比例,我们需要将每个坐标压缩,然后左乘正交矩阵就可以得到
    • projection = orthographicMatrix * projectiveMatrix * projection;

用glm库直接获取:

//正交,参数就是设置了一个立方体
glm::ortho(0.0f, 800.0f, 0.0f, 600.0f, 0.1f, 100.0f);
//透视
//注意不同版本的glm是否需要使用过glm::radians函数的问题
glm::mat4 proj = glm::perspective(glm::radians(45.0f), (float)width/(float)height, 0.1f, 100.0f);

MVP矩阵

在着色器里按顺序左乘各个矩阵即可

gl_Position = projection * view * model * aPos;
http://www.yidumall.com/news/28366.html

相关文章:

  • 在线设计平台canva南宁网络优化seo费用
  • 外贸公司英文网站建设百度地图导航网页版
  • 如何建一个网站多少钱北京百度推广客服电话多少
  • 福州公交集团网站建设百度营业执照怎么办理
  • java web网站开发流程如何推广宣传一个品牌
  • 网站建设论文 优帮云搜索引擎优化是指什么
  • ico交易网站怎么做网站友情链接的好处
  • 北京做环评备案的网站百度app客服电话
  • 最好最值得做的调查网站如何优化关键词排名到首页
  • 网站收费板块怎么做互联网营销模式
  • 做一个网上商城网站建设费用多少钱搜索关键词站长工具
  • 徐州做网站的公司招聘在线资源链接
  • win 2012 iis 默认网站宁波seo深度优化平台
  • 虚拟机可以做多个网站如何推广一个品牌
  • 网站宣传与推广想做电商怎么入手
  • 关于电商网站建设的论文宁波网络营销推广咨询报价
  • 汕尾住房和建设局网站首页宝鸡seo优化
  • 南昌seo网站营销策划精准营销
  • 网站建设方案范例seo博客写作
  • 哈尔滨可以做网站的公司sem竞价推广是什么
  • 住房城乡建设厅网站搜索引擎广告
  • 葫芦岛做网站公司百度一下你就知道移动首页
  • 中源建设有限公司网站谷歌广告推广
  • 公司网站系统如何免费推广自己的产品
  • 网站建设推广页富阳网站seo价格
  • 高校网站建设目的新闻头条今日要闻国内
  • 网站生成海报功能怎么做的网络舆情分析研判报告
  • 深圳市网站建设公司全网营销推广 好做吗
  • 87网站一起做网络营销推广方式
  • 人力资源加盟代理哪个好西安seo托管