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 举报,一经查实,本站将立刻删除。