06-世界坐标系的原点为什么是左下角而不是屏幕中心
2015-11-10 19:04
369 查看
OpenGL 默认的坐标原点是屏幕的正中心,而cocos2dx是如何将屏幕的左下角作为原点的呢?
猜测是设置了摄像机
结果猜测对了!
1.AppController.mm didFinishLaunchingWithOptions
2.Director.cpp setOpenGLView
3. Director::setGLDefaultValues
4. void Director::setProjection(Projection projection) 所有的一切都在这里面了
需要说明的是 参数 projection是 Projection::_3D 而不是想象中的 Projection::_2D 所以最终执行的代码
而最终决定显示的坐标原点在左下角的原因是
在这里摄像机的位置在
因为摄像机的位置在颈托屏幕正中心的Z轴上,而因为摄像机的目标点和投影的结合,决定了如图所示的视锥体结构,这样就保证了我们看到的一切都在屏幕上喽
而因为2D游戏的摄像机基本是不变的,所以此处提前 投影矩阵 * 摄像机矩阵,并将结果保存在了Director的
_projectionMatrixStack 中,
这样后续使用该矩阵 * 模型本身的矩阵(世界坐标系决定了位置,Model中的各个点需要渲染,就需要将各个点转变为世界坐标,而各个点基本都是相对于Model自己原点的坐标),再紧跟 * Model中的各个点,就可以方便的计算出来需要渲染的点的位置了,也就是完成了流程
model点 -> 经过模型矩阵 -> 转变为世界坐标系的点 -> 摄像机矩阵 -> 转变为了可见的视锥体内部可见要素 -> 投影矩阵 -> 将3D的内容渲染到2D的平面上了。
而最后两步操作 摄像机和投影矩阵的转变,在这里直接进行了合并,也就是说我们在使用的过程中,只需要掌控好模型自己在世界坐标系的相对关系就可以了(模型矩阵)。
猜测是设置了摄像机
结果猜测对了!
1.AppController.mm didFinishLaunchingWithOptions
2.Director.cpp setOpenGLView
3. Director::setGLDefaultValues
4. void Director::setProjection(Projection projection) 所有的一切都在这里面了
需要说明的是 参数 projection是 Projection::_3D 而不是想象中的 Projection::_2D 所以最终执行的代码
而最终决定显示的坐标原点在左下角的原因是
在这里摄像机的位置在
因为摄像机的位置在颈托屏幕正中心的Z轴上,而因为摄像机的目标点和投影的结合,决定了如图所示的视锥体结构,这样就保证了我们看到的一切都在屏幕上喽
而因为2D游戏的摄像机基本是不变的,所以此处提前 投影矩阵 * 摄像机矩阵,并将结果保存在了Director的
_projectionMatrixStack 中,
这样后续使用该矩阵 * 模型本身的矩阵(世界坐标系决定了位置,Model中的各个点需要渲染,就需要将各个点转变为世界坐标,而各个点基本都是相对于Model自己原点的坐标),再紧跟 * Model中的各个点,就可以方便的计算出来需要渲染的点的位置了,也就是完成了流程
model点 -> 经过模型矩阵 -> 转变为世界坐标系的点 -> 摄像机矩阵 -> 转变为了可见的视锥体内部可见要素 -> 投影矩阵 -> 将3D的内容渲染到2D的平面上了。
而最后两步操作 摄像机和投影矩阵的转变,在这里直接进行了合并,也就是说我们在使用的过程中,只需要掌控好模型自己在世界坐标系的相对关系就可以了(模型矩阵)。
相关文章推荐
- html select模拟readonly
- Come back!
- update-rc.d使用
- 大牛博客地址收集
- 协议0
- HDU 4081 Qin Shi Huang's National Road System
- curl 查看访问web站点的响应时间
- ScrollView中listview显示不全的问题
- JSP使用jstl取不到数据
- dp, dpi, ppi, sp, px 详细介绍
- 小技巧7-iOS 如何关闭所有断点、移除所有断点
- ios协议 与代理
- 【转】 ios开发证书CER文件、P12文件,mobileprovition许可文件的用途
- 日志字段解析
- 数据库建表语句怎么写
- VC MainFrame接收SendMessageToDescendants传进消息 CDockablePane 悬浮时接收不到
- poj 1200
- 2015 西雅图微软总部MVP峰会记录
- 【转】IOS 开发环境,证书和授权文件等详解
- 网络虚拟化服务之软件定义网络新机制 A New Mechanism for SDN Network Virtualization Service