COD4:Brush 刷子

A brush is kept in an entity, an example:

一个描述物体表面刷子被保存在一个实体内,举个例子“

 

 

 

 

 

iwmap 4
"000_Global" flags  active
"The Map" flags 
// entity 0
{
"classname" "worldspawn"
// brush 0
{
 ( 64 32 -8 ) (  0 32 -8 ) (  0  0 -8 ) me_woodplanks01 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0
 (  0  0  0 ) (  0 32  0 ) ( 64 32  0 ) me_woodplanks01 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0
 (  0  0 56 ) ( 64  0 56 ) ( 64  0 -8 ) me_woodplanks01 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0
 ( 64  0 56 ) ( 64 32 56 ) ( 64 32 -8 ) me_woodplanks01 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0
 ( 64 64 56 ) (  0 64 56 ) (  0 64 -8 ) me_woodplanks01 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0
 (  0 32 56 ) (  0  0 56 ) (  0  0 -8 ) me_woodplanks01 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0
}
}

 

这些数据定义了一个在地图编辑器中存在一个最简单的立方体

一个描述物体表面的刷子开始和结束于{}之内,换句话说,刷子的实际数据存在于{。。。。。。}之中,在{}之内我们才能看到实际的数据信息。在实例{}内的六行(其实分别描述立方体的六个表面)中,每行都含有相同表示类型的存储数据,所以我们只要讨论一行就能知道所有行所表示的意义:

 

注意这一行

( 64 32 -8 ) ( 0 32 -8 ) ( 0 0 -8 )me_woodplanks01 128 128 0 0 0 0 lightmap_gray 16384 16384 0 0 0 0

在这一行我们几乎看到了几乎所有的数据类型 整数,浮点数,正值,带符号的正值负值,三组数组( 64 32 -8 )( 0 32 -8 ) ( 0 0 -8 ),他们可能是描述几个坐标(其实就是描述顶点),每个组内的三个值分别描述X,Y,Z轴,而这三个顶点组成的三角形刚好可以定义描述一个空间的平面,然而这个平面确没有再细规定他的边界(任何实体的表面肯定都是有边界的,然而这里没有描述,为什么呢,以后会详述,因为如果在大括号中记录了多个平面无限延展相交的地方如果形成了封闭的图形,就不需要再用描述边界的方式去定义了)

 

me_woodplanks01很明显是一个描述材质的名称

 

 

以此类推,这六行数据中的六组顶点数据刚好描述了空间中的六个平面,而这六个平面相交形成了一个封闭的立体空间,这个立体空间就是它想要描述的实体本身,也可以简单理解成这六个面代表了想要描述立方体的六个面。

你可能感兴趣的:(COD4:Brush 刷子)