opengl在窗口左下角绘制坐标轴

irontemp8 2010-09-08 05:36:41
就是maya或3dsmax里坐标轴那种效果,会跟随旋转,但大小不会随视点的移动而改变
我试过根据视点的位置调整坐标轴的长度,但效果不好,如果摄像机不是对准坐标轴的原点,整个坐标轴都是歪的。所以我想肯定不是这种方法,大家帮帮忙。
...全文
1013 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaderor 2010-11-13
  • 打赏
  • 举报
回复
可以像天空盒那样,保证箭头(这里应为坐标系中心)与摄像机距离恒定即可实现,也就是与摄像机绑定
heidie2005 2010-10-23
  • 打赏
  • 举报
回复
我也遇到了楼主那样的问题,我正在做个3D网格编辑器,我想在我点击中一个顶点之后,以该顶点为中心绘制三个方向箭头,就是Maya移动模式下的那三个方向箭头,这三个方向箭头要求在摄像机的位置改变之后,在屏幕上看到的大小不会发生变化(就好像是使用正交投影绘制出来的效果一样),但我的场景是透视投影下渲染的,请问各位高手有没有办法实现这样的效果呢?
irontemp8 2010-10-14
  • 打赏
  • 举报
回复
恩 就是设置viewport解决的
shaderor 2010-09-15
  • 打赏
  • 举报
回复
把坐标轴与摄像机绑定也可以搞定
shaderor 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 irontemp8 的回复:]
这个搞定了 不过还有一个大问题
maya或3dsmax里选中物体后,移动时物体中心也会有一个坐标轴,这个坐标轴不管视图怎么缩放、旋转,它的大小始终不变,请问这个是怎么弄得,我试了很久效果都不太理想。
另旋转视图出了用轨迹球原理还有其他好用的方法吗,我看maya里鼠标从左往右拖动视图可以转动好几圈,而如果用轨迹球原理只能转180度?
[/Quote]
不知道是通过哪种方式搞定的,是通过设置ViewPort?希望能听一下你的解决方法
旋转可以通过设置camera距离观察点长度distance,向量direction,和绕Y轴与XZ平面的角度搞定
向立天 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 claudebell 的回复:]
只要在不同的视图矩阵下绘制就可以了.
举个例子:
先绘制三维场景,然后push模视矩阵,之后重置矩阵,在此矩阵下绘制三维坐标,再pop模视矩阵.
这样三维环境和坐标就是在不同的坐标下,是相互独立的.
旋转时,这两个矩阵都乘以相同的旋转矩阵.
缩放时,坐标的矩阵不接受变化.
这样就可以了.
[/Quote]
对呀
不同物体的坐标系统是可以相互独立的
claudebell 2010-09-13
  • 打赏
  • 举报
回复
只要在不同的视图矩阵下绘制就可以了.
举个例子:
先绘制三维场景,然后push模视矩阵,之后重置矩阵,在此矩阵下绘制三维坐标,再pop模视矩阵.
这样三维环境和坐标就是在不同的坐标下,是相互独立的.
旋转时,这两个矩阵都乘以相同的旋转矩阵.
缩放时,坐标的矩阵不接受变化.
这样就可以了.
gamemagic 2010-09-13
  • 打赏
  • 举报
回复
其实这些都是2D屏幕元素,不存在于3D场景的,当然不受3D影响
irontemp8 2010-09-12
  • 打赏
  • 举报
回复
这个搞定了 不过还有一个大问题
maya或3dsmax里选中物体后,移动时物体中心也会有一个坐标轴,这个坐标轴不管视图怎么缩放、旋转,它的大小始终不变,请问这个是怎么弄得,我试了很久效果都不太理想。
另旋转视图出了用轨迹球原理还有其他好用的方法吗,我看maya里鼠标从左往右拖动视图可以转动好几圈,而如果用轨迹球原理只能转180度?
zmkkobe 2010-09-10
  • 打赏
  • 举报
回复
多看看opengl的资料吧
irontemp8 2010-09-08
  • 打赏
  • 举报
回复
就是他就固定在屏幕上某个位置了,不像场景中的物体会随摄像机移动而改变,他只是用来反映坐标轴的旋转
hilevel 2010-09-08
  • 打赏
  • 举报
回复
如果跟着旋转却不改变大小,我感觉会更怪异

没用过3dsmax,不大明白你说的效果

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧