• 龙书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具体实现的区别?

                       

  • 相关阅读:
    推荐一本不错的书《Sencha Ext JS 5 Bootcamp in a Book》
    Libgdx 1.6.0发布,跨平台游戏开发框架
    《.NET最佳实践》与Ext JS/Touch的团队开发
    【翻译】Sencha Cmd中脚本压缩方法之比较
    【翻译】Ext JS 6早期访问版本发布
    【翻译】Ext JS 6有什么新东西?
    SpringBoot 使用 MyBatis 分页插件 PageHelper 进行分页查询
    Spring boot+Thymeleaf+easyui集成:js创建组件页面报错
    SpringBoot多模块搭建,依赖管理
    IDEA在同一窗口导入多个项目
  • 原文地址:https://www.cnblogs.com/dust-fly/p/4174940.html
Copyright © 2020-2023  润新知