zoukankan      html  css  js  c++  java
  • 龙书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具体实现的区别?

                       

  • 相关阅读:
    activiti 清库脚本(转)
    T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
    Chrome firefox ie等浏览器空格( )兼容问题
    activiti5.22整合modeler时出错TypeError: Cannot read property 'split' of undefined
    activiti如何获取当前节点以及下一步路径或节点(转)
    Activiti5 添加/查询审批批注(审批意见)
    Django中多对多关系的orm表设计
    css背景雪碧图等
    Django图书管理系统(前端对有外键的数据表增删改查)
    Django图书管理系统(前端对数据库的增删改查)
  • 原文地址:https://www.cnblogs.com/dust-fly/p/4174940.html
Copyright © 2011-2022 走看看