osg 入门知识点

问题描述

osg第一天 – 认识osg

osg 坐标系

osg 坐标系运用的时 右手坐标系

osg坐标系系统分为三种:

  • 世界坐标
    世界坐标系为所有对象的位置提供一个绝对的参考标准;
    世界坐标系也被广泛地成为全局坐标系或宇宙坐标系;
  • 局部坐标
    物体坐标系是针对某一特定的物体而建立的独立坐标系;
    每一个物体都有自己的坐标系;
    物体坐标系对于描述特定的物体非常方便;
  • 相机坐标
    摄像机坐标系是和观察者密切相关的坐标系。摄像机坐标系和屏幕坐标系相似,差别在于摄像机坐标系处于3D空间中,而屏幕坐标系在2D平面里。摄像机坐标系可以被看作是一种特殊的物体坐标系,该物体坐标系就定义在摄像机的屏幕可视区域。

osg中点和向量

概念:
向量一般是指,一个带有方向和大小的量;
一般有二维向量、三维向量、三维向量等等, n维向量;
在osg中分别用 vec2、vec3、 vec4 来表示;

中点:
以三维向量为例: 向量(0,0,0)就是向量的中点;

向量的基本接口功能(点乘、叉乘、求模)

点乘:

公式n1[0] * n2[0] + n1[1] * n2[1] + n1[2] * n2[2]
( n1、n2 代表三维向量,下标123 分别代表 osg坐标的 x y z )
作用:计算角度、检测正交性

叉乘:

公式:
x = ay * bz - az * by
y = -( ax*bz - az * bx )
z = ax * by - ay * bx
( a、b 代表三维向量,x y z 分别代表 osg坐标的 x y z )
作用:计算角度、检测正交性

求模:

公式: n[0] * n[0] + n[1] * n[1] + n[2] * n[2] 的平方根
( n代表三维向量)

osg矩阵

左乘和右乘

左乘是从右向左乘
右乘时从左向右乘
Matrix 采用了左乘操作
OpenGL 采用了右乘操作

矩阵变换中的级联顺序

矩阵变换顺序执行 SRT 原则
(一般先缩小和旋转,最后平移)

四元数

四元数一般用在osg的旋转

osg第二天 – osg场景图

智能指针(osg::ref_ptr)

为 osg 执行内存管理

get() 和 release() 的区别

get()

  • 直接返回指针

release()

  • 使用栈区空间保存“堆区”指针,使函数结束时传递的数值成功被传递。
  • 避免值传递时返回野指针

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)