游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2112|回复: 4

装载城市等大型.x文件的问题

[复制链接]

14

主题

43

帖子

84

积分

注册会员

Rank: 2

积分
84
发表于 2008-8-4 10:38:00 | 显示全部楼层 |阅读模式
大家好。

我是在看一本《C++ -Game  Programming RPGs With DirectX》的书,用了它上面的源代码,其中有个NodeTree引擎,就是将大型网格分成八叉树、四叉树的。

直接用它的源代码调用随书附带的.x模型文件是没问题的,但读取我自己就做的.x文件就不行,直接在DirectX Viewer看这个模型也没问题,但到了程序里就是模型被分解、没有贴图、缺一块少一块等等。

我装载一个只是一个立方体的模型就没问题,但如果装载一个组合图形(如两个立方体组成的一个楼)就不行了,是不是3DSMax导出有问题?要怎么导出呢?

初学D3D ,请指教。

谢谢。如果需要看NodeTree的代码,我可以贴出来。

2

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2008-8-4 18:45:00 | 显示全部楼层

Re: 装载城市等大型.x文件的问题

把你的  .X文件 发下

14

主题

43

帖子

84

积分

注册会员

Rank: 2

积分
84
 楼主| 发表于 2008-8-5 09:14:00 | 显示全部楼层

Re:装载城市等大型.x文件的问题

要发x文件啊。好。
这是一个楼房的模型,有两个立方体,一个是楼,一个是楼上挂的一个牌子
xof 0303txt 0032
template XSkinMeshHeader {
<3cf169ce-ff7c-44ab-93c0-f78f62d172e2>
WORD nMaxSkinWeightsPerVertex;
WORD nMaxSkinWeightsPerFace;
WORD nBones;
}

template VertexDuplicationIndices {
<b8d65549-d7c9-4995-89cf-53a9a8b031e3>
DWORD nIndices;
DWORD nOriginalVertices;
array DWORD indices[nIndices];
}

template SkinWeights {
<6f0d123b-bad2-4167-a0d0-80224f25fabb>
STRING transformNodeName;
DWORD nWeights;
array DWORD vertexIndices[nWeights];
array FLOAT weights[nWeights];
Matrix4x4 matrixOffset;
}

template FVFData {
<b6e70a0e-8ef9-4e83-94ad-ecc8b0c04897>
DWORD dwFVF;
DWORD nDWords;
array DWORD data[nDWords];
}

template EffectInstance {
<e331f7e4-0559-4cc2-8e99-1cec1657928f>
STRING EffectFilename;
[...]
}

template EffectParamFloats {
<3014b9a0-62f5-478c-9b86-e4ac9f4e418b>
STRING ParamName;
DWORD nFloats;
array FLOAT Floats[nFloats];
}

template EffectParamString {
<1dbc4c88-94c1-46ee-9076-2c28818c9481>
STRING ParamName;
STRING Value;
}

template EffectParamDWord {
<e13963bc-ae51-4c5d-b00f-cfa3a9d97ce5>
STRING ParamName;
DWORD Value;
}


Material PDX03_-_Default {
1.000000;1.000000;1.000000;1.000000;;
3.200000;
0.000000;0.000000;0.000000;;
0.000000;0.000000;0.000000;;

TextureFilename {
  "地砖.bmp";
}
}

Material PDX____ {
1.000000;1.000000;1.000000;1.000000;;
3.200000;
0.000000;0.000000;0.000000;;
0.000000;0.000000;0.000000;;

TextureFilename {
  "信控正面.bmp";
}
}

Material ____ {
1.000000;1.000000;1.000000;1.000000;;
3.200000;
0.000000;0.000000;0.000000;;
0.000000;0.000000;0.000000;;

TextureFilename {
  "信控侧面.bmp";
}
}

Material PDX05_-_Default {
1.000000;1.000000;1.000000;1.000000;;
3.200000;
0.000000;0.000000;0.000000;;
0.000000;0.000000;0.000000;;

TextureFilename {
  "gangcai.bmp";
}
}

Material PDX04_-_Default {
1.000000;1.000000;1.000000;1.000000;;
1.280000;
0.108000;0.108000;0.108000;;
0.000000;0.000000;0.000000;;

TextureFilename {
  "安达科技开发中心.bmp";
}
}

Mesh Box01 {
12;
-371.497589;400.000000;-105.314011;,
428.502411;400.000000;94.685989;,
428.502411;400.000000;-105.314011;,
428.502411;400.000000;94.685989;,
-371.497589;400.000000;-105.314011;,
-371.497589;400.000000;94.685989;,
428.502411;0.000000;94.685989;,
-371.497589;400.000000;94.685989;,
-371.497589;0.000000;94.685989;,
-371.497589;400.000000;94.685989;,
428.502411;0.000000;94.685989;,
428.502411;400.000000;94.685989;;
4;
3;0,1,2;,
3;3,4,5;,
3;6,7,8;,
3;9,10,11;;

MeshNormals  {
  12;
  0.000000;1.000000;0.000000;,
  0.000000;1.000000;0.000000;,
  0.000000;1.000000;0.000000;,
  0.000000;1.000000;0.000000;,
  0.000000;1.000000;0.000000;,
  0.000000;1.000000;0.000000;,
  0.000000;0.000000;1.000000;,
  0.000000;0.000000;1.000000;,
  0.000000;0.000000;1.000000;,
  0.000000;0.000000;1.000000;,
  0.000000;0.000000;1.000000;,
  0.000000;0.000000;1.000000;;
  4;
  3;0,1,2;,
  3;3,4,5;,
  3;6,7,8;,
  3;9,10,11;;
}

MeshMaterialList  {
  1;
  4;
  0,
  0,
  0,
  0;
  { PDX03_-_Default }
}

MeshTextureCoords  {
  12;
  -2.830003;1.326302;,
  3.830003;-0.326302;,
  3.830002;1.326303;,
  3.830003;-0.326302;,
  -2.830003;1.326302;,
  -2.830002;-0.326303;,
  -2.830003;4.067860;,
  3.830002;-3.067860;,
  3.830002;4.067860;,
  3.830002;-3.067860;,
  -2.830003;4.067860;,
  -2.830003;-3.067860;;
}
}

Mesh ____01 {
6;
-371.497589;0.000000;-105.314011;,
428.502411;400.000000;-105.314011;,
428.502411;0.000000;-105.314011;,
428.502411;400.000000;-105.314011;,
-371.497589;0.000000;-105.314011;,
-371.497589;400.000000;-105.314011;;
2;
3;0,1,2;,
3;3,4,5;;

MeshNormals  {
  6;
  0.000000;0.000000;-1.000000;,
  0.000000;0.000000;-1.000000;,
  0.000000;0.000000;-1.000000;,
  0.000000;0.000000;-1.000000;,
  0.000000;0.000000;-1.000000;,
  0.000000;0.000000;-1.000000;;
  2;
  3;0,1,2;,
  3;3,4,5;;
}

MeshMaterialList  {
  1;
  2;
  0,
  0;
  { PDX____ }
}

MeshTextureCoords  {
  6;
  0.000000;1.000000;,
  1.000000;0.000000;,
  1.000000;1.000000;,
  1.000000;0.000000;,
  0.000000;1.000000;,
  0.000000;0.000000;;
}
}

Mesh ____02 {
6;
-371.497589;0.000000;94.685989;,
-371.497589;400.000000;-105.314011;,
-371.497589;0.000000;-105.314011;,
-371.497589;400.000000;-105.314011;,
-371.497589;0.000000;94.685989;,
-371.497589;400.000000;94.685989;;
2;
3;0,1,2;,
3;3,4,5;;

MeshNormals  {
  6;
  -1.000000;0.000000;0.000000;,
  -1.000000;0.000000;0.000000;,
  -1.000000;0.000000;0.000000;,
  -1.000000;0.000000;0.000000;,
  -1.000000;0.000000;0.000000;,
  -1.000000;0.000000;0.000000;;
  2;
  3;0,1,2;,
  3;3,4,5;;
}

MeshMaterialList  {
  1;
  2;
  0,
  0;
  { ____ }
}

MeshTextureCoords  {
  6;
  0.000000;1.000000;,
  1.000000;0.000000;,
  1.000000;1.000000;,
  1.000000;0.000000;,
  0.000000;1.000000;,
  0.000000;0.000000;;
}
}

Mesh ____1 {
6;
428.502411;0.000000;-105.314011;,
428.502411;400.000000;94.685989;,
428.502411;0.000000;94.685989;,
428.502411;400.000000;94.685989;,
428.502411;0.000000;-105.314011;,
428.502411;400.000000;-105.314011;;
2;
3;0,1,2;,
3;3,4,5;;

MeshNormals  {
  6;
  1.000000;0.000000;0.000000;,
  1.000000;0.000000;0.000000;,
  1.000000;0.000000;0.000000;,
  1.000000;0.000000;0.000000;,
  1.000000;0.000000;0.000000;,
  1.000000;0.000000;0.000000;;
  2;
  3;0,1,2;,
  3;3,4,5;;
}

MeshMaterialList  {
  1;
  2;
  0,
  0;
  { ____ }
}

MeshTextureCoords  {
  6;
  0.000000;1.000000;,
  1.000000;0.000000;,
  1.000000;1.000000;,
  1.000000;0.000000;,
  0.000000;1.000000;,
  0.000000;0.000000;;
}
}

Mesh Box02 {
24;
-139.289185;91.493980;-142.500488;,
196.357300;91.493980;-105.314011;,
-139.289185;91.493980;-105.314011;,
196.357300;91.493980;-105.314011;,
-139.289185;91.493980;-142.500488;,
196.357300;91.493980;-142.500488;,
-139.289185;173.137726;-142.500488;,
196.357300;173.137726;-105.314011;,
196.357300;173.137726;-142.500488;,
196.357300;173.137726;-105.314011;,
-139.289185;173.137726;-142.500488;,
-139.289185;173.137726;-105.314011;,
196.357300;91.493980;-142.500488;,
196.357300;173.137726;-105.314011;,
196.357300;91.493980;-105.314011;,
196.357300;173.137726;-105.314011;,
196.357300;91.493980;-142.500488;,
196.357300;173.137726;-142.500488;,
-139.289185;91.493980;-105.314011;,
-139.289185;173.137726;-142.500488;,
-139.289185;91.493980;-142.500488;,
-139.289185;173.137726;-142.500488;,
-139.289185;91.493980;-105.314011;,
-139.289185;173.137726;-105.314011;;
8;
3;0,1,2;,
3;3,4,5;,
3;6,7,8;,
3;9,10,11;,
3;12,13,14;,
3;15,16,17;,
3;18,19,20;,
3;21,22,23;;

MeshNormals  {
  24;
  0.000000;-1.000000;0.000000;,
  0.000000;-1.000000;0.000000;,
  0.000000;-1.000000;0.000000;,
  0.000000;-1.000000;0.000000;,
  0.000000;-1.000000;0.000000;,
  0.000000;-1.000000;0.000000;,
  0.000000;1.000000;0.000000;,
  0.000000;1.000000;0.000000;,
  0.000000;1.000000;0.000000;,
  0.000000;1.000000;0.000000;,
  0.000000;1.000000;0.000000;,
  0.000000;1.000000;0.000000;,
  1.000000;0.000000;0.000000;,
  1.000000;0.000000;0.000000;,
  1.000000;0.000000;0.000000;,
  1.000000;0.000000;0.000000;,
  1.000000;0.000000;0.000000;,
  1.000000;0.000000;0.000000;,
  -1.000000;0.000000;0.000000;,
  -1.000000;0.000000;0.000000;,
  -1.000000;0.000000;0.000000;,
  -1.000000;0.000000;0.000000;,
  -1.000000;0.000000;0.000000;,
  -1.000000;0.000000;0.000000;;
  8;
  3;0,1,2;,
  3;3,4,5;,
  3;6,7,8;,
  3;9,10,11;,
  3;12,13,14;,
  3;15,16,17;,
  3;18,19,20;,
  3;21,22,23;;
}

MeshMaterialList  {
  1;
  8;
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0;
  { PDX05_-_Default }
}

MeshTextureCoords  {
  24;
  0.999500;0.999499;,
  0.000500;0.000501;,
  0.999500;0.000500;,
  0.000500;0.000501;,
  0.999500;0.999499;,
  0.000500;0.999501;,
  0.000500;0.999499;,
  0.999500;0.000501;,
  0.999500;0.999501;,
  0.999500;0.000501;,
  0.000500;0.999499;,
  0.000500;0.000500;,
  0.000500;0.999500;,
  0.999499;0.000500;,
  0.999499;0.999500;,
  0.999499;0.000500;,
  0.000500;0.999500;,
  0.000500;0.000500;,
  0.000500;0.999500;,
  0.999499;0.000500;,
  0.999499;0.999500;,
  0.999499;0.000500;,
  0.000500;0.999500;,
  0.000500;0.000500;;
}
}

Mesh ____03 {
6;
-139.289185;91.493980;-142.500488;,
196.357300;173.137726;-142.500488;,
196.357300;91.493980;-142.500488;,
196.357300;173.137726;-142.500488;,
-139.289185;91.493980;-142.500488;,
-139.289185;173.137726;-142.500488;;
2;
3;0,1,2;,
3;3,4,5;;

MeshNormals  {
  6;
  0.000000;0.000000;-1.000000;,
  0.000000;0.000000;-1.000000;,
  0.000000;0.000000;-1.000000;,
  0.000000;0.000000;-1.000000;,
  0.000000;0.000000;-1.000000;,
  0.000000;0.000000;-1.000000;;
  2;
  3;0,1,2;,
  3;3,4,5;;
}

MeshMaterialList  {
  1;
  2;
  0,
  0;
  { PDX04_-_Default }
}

MeshTextureCoords  {
  6;
  0.069396;1.031384;,
  0.930604;-0.031384;,
  0.930604;1.031384;,
  0.930604;-0.031384;,
  0.069396;1.031384;,
  0.069396;-0.031384;;
}
}

2

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2008-8-5 15:56:00 | 显示全部楼层

Re: Re:装载城市等大型.x文件的问题

sunjiahaoz: Re:装载城市等大型.x文件的问题

要发x文件啊。好。
这是一个楼房的模型,有两个立方体,一个是楼,一个是楼上挂的一个牌子
xof 0303txt 0...


设置一个恰当的摄像机位置就可以看到了~

14

主题

43

帖子

84

积分

注册会员

Rank: 2

积分
84
 楼主| 发表于 2008-8-5 19:54:00 | 显示全部楼层

Re:装载城市等大型.x文件的问题

我有移动摄像机,也有旋转模型的按键,都试了 都不行。
尤其是载入一个城市地皮后,他只显示一小块草坪,其他都不见了。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 19:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表