龙书9 chapter10和11章 网格mesh

这两章主要说:1.通过代码数据创建mesh  2.由于1方法过于麻烦,读取现有模型文件,得到mesh数据  3.mesh的优化  4.ECT (edge collapse transformations) 边折叠变换 ,对网格简化。实现渐进网格。

我得到了什么:并没有了解到实现mesh优化和渐进mesh的具体方法,只是知道有这个东西,mesh优化的几个重要属性和类型设置。

 

mesh和优化:  1.首先ID3DXMesh和ID3DXPMesh都继承自ID3DXBaseMesh

                     2.一个mesh有多个subMesh组成,每个面片都有自己的属性ID,指定属于哪个subMesh,这些属性ID存储在attribute buffer内。每个三角面片又对应一个index;这样每个index有相应的subMesh 属性组

                     3.对mesh中的顶点和索引进行重组重组过程称为网格优化。重组后在索引缓存中每个面片的index信息可能会被移动

                     4.关键点:每个面片的邻接信息。

                     5.attribute table:属性表里有subsetID,vertex 数量,vertex start,face start,face 数量;

                        比如:Entry 2
                                 Subset ID:    2
                                 Face Start:   8
                                 Face Count:   4
                                 Vertex Start: 16
                                 Vertex Count: 8

                         建立表后,一次快速查找,就能得到vertexbuffer里属于该subset的全部面片。

                    

 

顶点法线的计算:光照是对每个顶点进行的。

                    chapter5中说明了计算vertex normal的两种方式

                    一种是等于面片法向量,利用向量的叉乘得到。另一种是取这个vertex共享面片法向量的均值。

从.x文件中读取,vertex可能没有包含vertex normal的信息。使用computerNormals之前,需要clone该mesh,并指定vertex的FVF包括normal

 

渐进网格的思路和纹理中多级渐进纹理mipmap类似,小而远的mesh不需要精细的数据来绘制。

每个顶点有相应的权值,

最后说了bounding volume,外接体,用来加速可见性(visibility test)和碰撞检测(collision test).

但AABB和OBB具体实现的区别?

 

 

 

 

 

                   

posted @ 2014-12-24 21:20  dust_fly  阅读(230)  评论(0编辑  收藏  举报