顶点从模型空间转换到世界坐标空间只需要乘以世界转换矩阵即可,但是顶点的法向量却不能通过直接乘以这个矩阵将其变换到世界空间。一个顶点的世界转换矩阵为m,则该顶点的法向量转换矩阵为m的逆矩阵然后转置Vec3 localVertex, localNormal;Vec3 worldVertex=localV...
分类:
其他好文 时间:
2014-10-28 15:15:30
阅读次数:
150
class MyNodeVisitor:public osg::NodeVisitor{pulic: MyNodeVisitor():osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN) {} void apply(osg::Geo...
分类:
其他好文 时间:
2014-10-28 15:12:36
阅读次数:
442
光照
1. 首先需要定义这样的顶点结构
struct CUSTOMVERTEX
{
D3DXVECTOR3position; // 顶点
D3DXVECTOR3normal; // 法向量
};
// Custom flexible vertex format (FVF).
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ...
分类:
其他好文 时间:
2014-09-29 19:13:41
阅读次数:
179
三维图形中经常会用到立体的包围盒,如何简单求取呢?下面以求取立体在指定方向上的范围为例简单说明。已知指定方向U、V和参考点P。1)取立体的边界线(直线段、曲线)。2)计算立体投影的平面:UV面。平面法向量:UxV平面上一点:P3)立体边界线在UV面上投影,得到UV面上的边线。4)UV面上的边线向V、...
分类:
其他好文 时间:
2014-09-09 22:48:59
阅读次数:
262
自学龙书,目前进度为第五章,这次完成的是三个三角锥,目的是测试三种光源类型的区别,其中局部坐标,以及法向量,均直接复制第五章的示例。材质则分别设置为反射白色光、反射蓝色光和反射绿色光。
分类:
其他好文 时间:
2014-08-25 01:03:23
阅读次数:
436
求的是凸包有多少个面。注意,求的是面。这就需要把同一个面的三角形合并。只需判断两个三角形的法向量是否同向平行。/*增量法求凸包。选取一个四面体,同时把它各面的方向向量向外,增加一个点时,若该点与凸包上的某些面的方向向量在同一侧,则去掉那些面,并使某些边与新增点一起连成新的凸包上的面。 */ #inc...
分类:
其他好文 时间:
2014-08-10 18:08:30
阅读次数:
234
题目多读几次就明白了。主要是求异面直线的距离,然后用距离和两圆半径之和作比较。空间直线的距离d=|AB*n| / |n| (AB表示异面直线任意2点的连线,n表示法向量,法向量为两条异面直线方向向量的叉积,|n|表示模。#include #include #include #include #inc...
分类:
其他好文 时间:
2014-08-08 23:43:06
阅读次数:
317
【求反射向量】 给定入射光线向量I和平面法向量N,求反射向量R,如下图。为了方便计算,这里假定I和N都是单位向量(模为1,编程时可先将I和N单位化)。 设入射光线向量I和反射平面的法向量N之间的夹角为theta。连接I的始端和R的末端,则有 R = 2P - I (1) 现在...
分类:
其他好文 时间:
2014-08-03 12:32:05
阅读次数:
179