几何数学
ProgramRookie
go go go
展开
-
线形变换专题(1)
首先,我们要明确,一个变换( 也可以理解为一个对向量进行处理并返回处理后的向量的函数 )能够被称为线形变换,需要满足的条件是: L( cU + V ) = cL( U ) + L( V ) ----- 为什么是这样恐怕要查下线形代数的相关资料了 其中cU + V叫做两个向量的线形组合, 其中L()就是所谓的线形变换. 旋转变换:M 在DX中,U =原创 2009-05-27 19:47:00 · 965 阅读 · 0 评论 -
光模拟基础(1) 基本光照模型
1.基本光照模型:sufaceColor = emissive + ambient + diffuse + specular以下是公式各个项的解析: (1)emissive放射光 它是独立于所有光源的,是单纯由物体材质产生的光(说句废话,不能作为光源照亮其他物体,其实在shader实现里很明确) emissive = Ke; 这个公式明显可以看出,光照原创 2009-05-19 20:38:00 · 2518 阅读 · 0 评论 -
如何高效的对可移动物体进行四叉树管理
首先,我要假设你已经对一个空间完成了四叉树划分,并得到一棵树( root ),那么对于静态物体,很明显你只需要在预处理阶段一次性插入即可,并且在游戏运行阶段你都无须去关心它们( 除非你用一颗炸弹把它们炸飞,不过那时侯你只要调用树的删除方法就可以了 ). 但是,对于动态物体,你就必须时刻关心它们的动向,因为一旦它们离开了原本所依附的空间节点的区域,而在树中却没有即使的更新,那么就会得到错误原创 2009-05-16 14:51:00 · 2469 阅读 · 2 评论 -
在Octree场景下的多层次node包围盒问题
这两天遇到了一个问题(毕竟接触ogre不久,可能问题比较弱智哈),由于我把模型用OSMLoader的演示方法导入,它具体是通过一个场景(.osm文件)导入后,将其中的子模型分别用一个node保存,如果你提供了一个node(暂订叫rootNode),那么所有的子模型node都会添加rootNode下. 这样本来也很没有问题,毕竟如果我用.osm导入一个大场景,为了处理碰撞,我肯定要把各个子原创 2009-09-18 17:12:00 · 1584 阅读 · 0 评论 -
光模拟基础(2) 光源
在基本光照模型基础上,今天探讨一下如何建立各种光源模型. (1)方向光(或称平行光) 方向光可以看作太阳光,为什么会有白天黑夜呢,就是因为太阳只能照向地球的一个面( dir ),也即一个方向,而且即使地球绕太阳转动时距离会变化,太阳光也没有衰减(no pos, no attenuation 当然,这里是近似的). dirLight = emissive + ambi原创 2009-05-20 19:44:00 · 1064 阅读 · 0 评论 -
向量的叉乘
叉乘,其实首先在笛卡而空间中认识它,假设C = cross( A, B ), 而A = ( x0 , y0, z0 ), B = ( x1, y1, z1 ),那么A,B的叉乘就是等于C = ( y0 * z1 - y1 * z0, x1 * z0 - x0 * z1, x0 * y1 - y0 * x1 ),我们要清楚,此时的叉乘是独立于任何坐标系的. 为什么呢?我们把坐标系表示成原创 2009-05-26 19:19:00 · 20064 阅读 · 2 评论