用户登录
用户注册

分享至

opengl 视角

  • 作者: 你不爱我说白了你就是贱
  • 来源: 51数据库
  • 2020-09-29
1. 准备工作
  获取视点 eye
  获取观察方向点 look
  观察方向为 dir = look - eye
  其中eye觉定走路效果,而dir决定了向四周观察的效果。
  至于这两个参数如何取得,取决于你的程序与用户交互的方式。
  2 正交化观察向量
  dir 单位化 --------------------z
  上一次“向上“的向量叉乘dir,将结果单位化-------------------------x
  根据斯密特方法,随便乘个不共线的就OK,但是要考虑到观察的连续性问题。
  z叉乘x--------------------------y
  3 构造观察矩阵
  观察矩阵等于
  x.x y.x z.x 0
  x.y y.y z.y 0
  x.z y.z z.z 0
  0 0 0 1
  乘以
  1 0 0 -eye.x
  0 1 0 -eye.y
  0 0 1 -eye.z
  0 0 0 1 -----注意乘法顺序

  4 使用你的模型-世界变换矩阵右乘刚才得到的观察矩阵。
  5 将4中的矩阵转置之后,在ModelView设置时,用glLoadMatrix设置
  完成
  这是教科书式的方法,效果不一定很自然,但基本上可以实现CS一类游戏的行走观察效果。
  这种方式有个好处在于以基向量定义旋转,可以避免万象锁。



  很简单,把glulookat放在drawglscene里的开始的位置,清屏之后lookat.
软件
前端设计
程序设计
Java相关