3ds怎么运行3des文件管理器4.0旧版件

.3ds是什么文件 .3ds文件怎么打开
- 绿茶文章中心
&&&&&&&&&.3ds是什么文件 .3ds文件怎么打开
.3ds是什么文件 .3ds文件怎么打开
作者:佚名
来源:绿茶软件园
  .3ds是什么文件?相信很多网友对于.3ds格式文件还不是很清楚,更不知道打开方式了,那么.3ds文件怎么打开呢?下文小乐哥给大家介绍一下!
  .3ds文件怎么打开?
  3D Studio Max是著名的三维动画渲染和制作软件。3ds文件直接用3dmax打不开,要从文件--导入,就能把它引进MAX场景中,再选择保存,就变成了MAX文件了!
  具体的导入模型方法是:在file菜单栏中,选择import(导入),然后找到需要导入的3ds文件,双击它,弹出对话框的话什么都不用管,直接点OK就可以导进来了,.3dsmax低版本使用正常方法是不能打开高版本的文件的。
  如果实在是想用低版本开高版本的文件,就需要先用高版本的3dsmax,先将这个文件打开,在FILE菜单栏中,选择export(导出),保存成一个3ds格式的文件,接着再打开低版本的3dsmax,用我上面讲的方法,将3ds格式的文件导入进来,就可以正常打开了!
本类推荐本类排行
热门软件热门标签3ds存档位置在哪、3ds存档怎么导出_西西软件资讯
西西软件园多重安全检测下载网站、值得信赖的软件下载站!
→ 3ds存档位置在哪、3ds存档怎么导出
0.2b 官方最新版
类型:游戏其他大小:605KB语言:英文 评分:3.3
伴随着3ds破解的日益完善,玩家们之前也开始将自己使用的游戏存档分享给其它的玩家,不过有些刚刚接触的玩家就比较头痛究竟应该把3ds存档放哪,不知道该怎么用,下面就由我们k73来告诉各位3ds玩家吧!首先,到我们k73的3ds存档区下载你需要的3ds游戏存档,然后把你的3ds主机的SD卡拔出来连接到电脑上。打开这个SD卡,然后把以sav结尾的存档文件放到这里面就可以了(SD卡根目录)使用了。注意:不同版本(日、美、欧)游戏间的存档不通用,大家请留意备份存档。GateWay烧录卡在运行游戏时会将存档保存到3DS的内置SD卡上,这次我们找来的是日版《》游戏一张,下面来看看效果。先进入游戏运行一下,存档后按HOME键退出,拔掉3DS的内置SD卡,尝试用读卡器连接到电脑。可以看到一个一串ID开头的存档文件,这就是游戏的存档了。玩家可以把它备份到任何地方,也可以随时还原回去。当然文件名是不能改的,每个游戏都有不同的ID。此外之前我们还有另一篇关于3DS正版卡导出存档的教程,用DS BACKUP这个读卡带的USB设备就可以备份正版卡存档,那么正版卡存档是否能直接和烧录卡互换呢?这里也来测试一下。找来一张《苍翼默示录》的正版卡带,并用DS BACKUP导出它的存档试试。把导出的存档文件改为和烧录卡生成的一样的文件名并拷贝回去覆盖。然后插回到3DS上,进入游戏试试。直接报错提示游戏存档损坏,看来目前和正版卡直接导出的存档还是不能共通。在分享存档上,烧录卡还是有自己独到的优势。GateWay烧录卡会将原本保存在游戏卡带里面的存档转存在SD卡里。所以,玩家可以不用正版存档导出设备直接操作存档文件。导出的存档文件可以在不同的机器之间互相拷贝。烧录卡玩家之间分享存档完全可行。所以我们可以期待以后更多的烧录卡存档文件放出。
04-2804-2604-1604-1204-0203-1603-1002-2102-0101-24
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载[转载]3DS文件导入完结版[OpenGL实现&已更新代码下载地址]
更新:突然发现这篇很久以前写的博客仍然有不少人在看,而文章中所用的google
pages的地址抽风似的经常连不上,所以更新了一下代码的下载地址。原来那份代码我已经找不到了,这里上传了另外一份代码。仍然是使用3dsLoader实现的3ds文件读入,不过其中用到了我自己对Windows窗体的封装类的简单的类。实现原理和下面所说的略有区别。首先是以3ds文件名为参数创建一个3dsLoader实例,然后把它的指针作为参数传给CRayModel::AssignLoader()。这时CRayModel会把3dsLoader中的数据复制为自己的数据结构。最后在渲染循环中调用CRayModel::Draw()绘制模型。当然下面所说的东西仍然是正确的,只不过我已经找不到实现它的代码了。
更新2:都快3年了,这篇文章还有人在看啊。看来3ds格式一直都比较热门。不过我手头唯一的一份源代码就是上面说的3dsLoad.zip了。如果你真的想要自己研究3ds格式的话可以看看那个代码,但是如果你仅仅是想要读取3ds格式并且显示的话,建议使用更为成熟的开源3ds读取库。具体可以参考我另外一个blog中的
  前两天在看过了md2文件格式(quake2所使用的格式)以后回来再琢磨3DSLoader的结构,居然挺顺利地把图像画出来了。这里所说的3DSLoader就是我在之前的blog文章里面提到过的CSDN的Leon8086所写的3ds文件读取类。鉴于原作者(或者说是再创作作者?)对3ds文件已经说了相当多该说以及不该说的东西,并且我最3ds文件格式还不是特别明白,我就不再讨论那个泥潭般让人头疼的东西了。这里主要说一下怎么用3dsloader这个类把图像显示出来。今天晚上调试了老半天代码终于查出原先存在的bug了,目前看来运行得挺好的,还没发现有其他什么bug。
可以把3DSLoader的数据结构看成 object-&face-&
vertex/textutr coordinate
的三层结构。所以只要对一个三层循环就可以完成渲染了。但是3DSLoader在读取完文件以后有一步是把顶点按照对材质的使用进行排序,将使用相同材质的多边形排到一起,这样就不用对每一个多边形都设置一次材质了。因此实际上的循环是先对object进行遍历,再用3DSLoader.GetFaceMaterialBegin(objNum)获得某个材质在多边形列表中的起始和结束索引,由此进行循环即可。
  由于我用的是自己写的一套简单的OpenGL封装Framework,为了直接讨论重点我只拷贝了初始化和渲染的代码上来。
#include "3dsLoader.h"
#include "vector.h"
//Vector.h封装了我自己的CVector3类--注意,这里的vector和3dsloader作者所引
//用的GLVECTOR不是一个类
CGL3DSLoader *
unsigned int *
DWORD mtrNum,objN //材质总数和物体总数
int Render()
glClear(GL_COLOR_BUFFER_BIT |
GL_DEPTH_BUFFER_BIT);
glColor3f(1.0f,1.0f,1.0f);
glLoadIdentity();
gluLookAt(150,150,150,0,0,0,0,1,0);
for (int obj=0;obj&objNobj++)
//objNum是object的总数,可以由loader得到
faceMtrNum=loader-&GetFaceMaterialNum(obj);
const DWORD*
mtrBegin=loader-&GetFaceMaterialBegin(obj);
const DWORD*
mtrEnd=loader-&GetFaceMaterialEnd(obj);
const GLVERTEX3*
vector=loader-&GetVertexList(obj);
const MESHTRIANGLEINDEX*
mesh=loader-&GetFaceIndex(obj);
const DWORD*
mtrID=loader-&GetFaceMaterialID(obj);
const GLTEXCOORD*
texCoord=loader-&GetTexcoordList(obj);
for (int mtr=0;mtr&mtrNmtr++)
DWORD id=mtrID[mtr];
const GL3DSMATERIAL*
material=loader-&GetMaterial(id);
glBindTexture(GL_TEXTURE_2D,texture[material-&m_dwTexture]);
face=mtrBegin[mtr];face&=mtrEnd[mtr];face++)
r1(vector[mesh[face].dwVertexIndex1].x,vector[mesh[face].dwVertexIndex1].y,vector[mesh[face].dwVertexIndex1].z);
r2(vector[mesh[face].dwVertexIndex2].x,vector[mesh[face].dwVertexIndex2].y,vector[mesh[face].dwVertexIndex2].z);
r3(vector[mesh[face].dwVertexIndex3].x,vector[mesh[face].dwVertexIndex3].y,vector[mesh[face].dwVertexIndex3].z);
CVector n1,n2,normal
glBegin(GL_TRIANGLES);
//这里顺手计算了法向量,不过是很没效率的做法。如果要提高性能的话完全可以在
//文件读入的时候就计算好法向量,并把用顶点数组的方法提高祯数简化代码
n1=r2-r1; n2=r3-r1;
normal=-n2.CrossProduct(n1);
normal.Normalize();
glNormal3f(normal.x,normal.y,normal.z);
glTexCoord2f(texCoord[mesh[face].dwVertexIndex1].x,texCoord[mesh[face].dwVertexIndex1].y);
glVertex3f(vector[mesh[face].dwVertexIndex1].x,vector[mesh[face].dwVertexIndex1].y,vector[mesh[face].dwVertexIndex1].z);
n1=r3-r2; n2=r1-r2;
normal=-n2.CrossProduct(n1);
normal.Normalize();
glNormal3f(normal.x,normal.y,normal.z);
glTexCoord2f(texCoord[mesh[face].dwVertexIndex2].x,texCoord[mesh[face].dwVertexIndex2].y);
glVertex3f(vector[mesh[face].dwVertexIndex2].x,vector[mesh[face].dwVertexIndex2].y,vector[mesh[face].dwVertexIndex2].z);
n1=r1-r3; n2=r2-r3;
normal=-n2.CrossProduct(n1);
normal.Normalize();
glNormal3f(normal.x,normal.y,normal.z);
glTexCoord2f(texCoord[mesh[face].dwVertexIndex3].x,texCoord[mesh[face].dwVertexIndex3].y);
glVertex3f(vector[mesh[face].dwVertexIndex3].x,vector[mesh[face].dwVertexIndex3].y,vector[mesh[face].dwVertexIndex3].z);
glFlush();
return TRUE;
int Init()
loader=new
CGL3DSLoader("c:\data\meshs\e.3ds");
mtrNum=loader-&GetMaterialNum();
objNum=loader-&GetObjectNum();
GLfloat g_lightPos[4] = {50.0, 50.0,
50.0, 1.0};
GLfloat g_lightAmbient[4]={0.2,0.2,0.2,1.0};
GLfloat g_lightDiffuse[4]={0.6,0.7,0.8,1.0};
glShadeModel(GL_SMOOTH); // use smooth shading
glEnable(GL_DEPTH_TEST); // hidden surface removal
glEnable(GL_TEXTURE_2D);
glEnable(GL_LIGHTING);
glLightfv(GL_LIGHT0,GL_POSITION,g_lightPos);
glLightfv(GL_LIGHT0,GL_DIFFUSE,g_lightDiffuse);
glLightfv(GL_LIGHT0,GL_AMBIENT,g_lightAmbient);
glEnable(GL_LIGHT0);
//读取纹理
mtrNum=loader-&GetMaterialNum();
texture=new unsigned int(mtrNum);
while (mtrNum)
std::string
mtrName=loader-&GetTexture(mtrNum-1);
int l=mtrName.length();
char temp[255]="c:\data\";
//从3ds文件中似乎只能得到纹理文件的文件名,好在3ds模型都是自己做的,
//自然也就保存了所有模型所用到的纹理。所以虽然只知道文件名也能读取出来
//你说要是没有纹理怎么办? 基本上...这个...我也不知道
for (int i=0;i&l;i++)
temp[i+8]=mtrName[i];
(!LoadGLTexture(temp,&texture[mtrNum],true))
MessageBox(NULL,"ERROR!","ERROR!",MB_OK);
return TRUE;
在我再次编辑这篇文章的时候sina博客系统把小于号"&"识别成了HTML标记,导致中间有的语句有错。虽然我手工检查并修改过,但是新的代码并没有经过调试,所以可能会存在bug。
文章引用自:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。&>&&>&&>&正文
作者:baolijie来源:巴士论坛()
  也不知道别人发过这个教程没有,因为今天new3ds刚刚到,本来还想换壳的,发现底部螺丝贴了个贴纸,保修7天,还是等7天后再拧螺丝吧。于是问题就来了,微电影、图片怎么传到new3ds机身里去呢?
  一、首先我们把NEW3DS连接到wifi
  二、在“本体设定”—“管理”—“SD管理”
下一页精彩继续
提示:支持键盘“← →”键翻页3ds文件是3D Max的一种二进制存储格式,用来存储3D模型场景。关于这种格式官方的资料很少,从二进制角度解析文件很困难,幸好有个开源的项目已经提供了解析的库。
[lib3ds]http://code.google.com/p/lib3ds/
用ANSI-C编写
支持的框架:
GNU build tools (autoconf, automake, libtool)
Microsoft Visual C++ 8.0
支持小端和大端字节序的cpu
载入和保存:
Atmosphere settings
背景设置 (Background settings)
阴影贴图设置 (Shadow map settings)
视口设置&(Viewport setting)
材质 (Materials)
摄像机 (Cameras)
灯光 (Lights)
网格 (Meshes)
层次结构 (Hierarchy)
关键祯 (Keyframes)
计算动画(关键祯)数据
简单容易操作的数据结构
矢量数学模块
四元数数学模块
矩阵数学模块
与OpenGL无缝集成
(1) 坐标系
在3ds文件中使用的坐标系是左手坐标系,从左到右,x递增;从下到上,z递增;从近到远,y递增。
在lib3ds库中,经过解析,把3ds文件中的数据转换成了OpenGL采用的右手坐标系,从左到右,x递增,从下到上y递增,从远到近,z递增。
(2)&数学模块
矢量数学函数
1 extern LIB3DSAPI void lib3ds_vector_make(
float c[3],
Sets all components of a vector to zero.
The Pointer to the vector.
12 extern LIB3DSAPI void lib3ds_vector_zero(
float c[3]);
Copies all components of a vector to another vector.
\param dst
[out] The destination vector.
\param src
[in] The source vector.
22 extern LIB3DSAPI void lib3ds_vector_copy(
float dst[3],
float src[3]);
Negates all components of a vector.
The Pointer to the vector.
31 extern LIB3DSAPI void lib3ds_vector_neg(
float c[3]);
34 extern LIB3DSAPI void lib3ds_vector_make(float c[3], float x, float y, float z);
35 extern LIB3DSAPI void lib3ds_vector_zero(float c[3]);
36 extern LIB3DSAPI void lib3ds_vector_add(float c[3], float a[3], float b[3]);
37 extern LIB3DSAPI void lib3ds_vector_sub(float c[3], float a[3], float b[3]);
38 extern LIB3DSAPI void lib3ds_vector_scalar_mul(float c[3], float a[3], float k);
39 extern LIB3DSAPI void lib3ds_vector_cross(float c[3], float a[3], float b[3]);
40 extern LIB3DSAPI float lib3ds_vector_dot(float a[3], float b[3]);
41 extern LIB3DSAPI float lib3ds_vector_length(float c[3]);
42 extern LIB3DSAPI void lib3ds_vector_normalize(float c[3]);
43 extern LIB3DSAPI void lib3ds_vector_normal(float n[3], float a[3], float b[3], float c[3]);
44 extern LIB3DSAPI void lib3ds_vector_min(float c[3], float a[3]);
45 extern LIB3DSAPI void lib3ds_vector_max(float c[3], float a[3]);
46 extern LIB3DSAPI void lib3ds_vector_transform(float c[3], float m[4][4], float a[3]);
48 extern LIB3DSAPI void lib3ds_quat_identity(float c[4]);
49 extern LIB3DSAPI void lib3ds_quat_copy(float dest[4], float src[4]);
50 extern LIB3DSAPI void lib3ds_quat_axis_angle(float c[4], float axis[3], float angle);
51 extern LIB3DSAPI void lib3ds_quat_neg(float c[4]);
52 extern LIB3DSAPI void lib3ds_quat_cnj(float c[4]);
53 extern LIB3DSAPI void lib3ds_quat_mul(float c[4], float a[4], float b[4]);
54 extern LIB3DSAPI void lib3ds_quat_scalar(float c[4], float k);
55 extern LIB3DSAPI void lib3ds_quat_normalize(float c[4]);
56 extern LIB3DSAPI void lib3ds_quat_inv(float c[4]);
57 extern LIB3DSAPI float lib3ds_quat_dot(float a[4], float b[4]);
58 extern LIB3DSAPI float lib3ds_quat_norm(float c[4]);
59 extern LIB3DSAPI void lib3ds_quat_ln(float c[4]);
60 extern LIB3DSAPI void lib3ds_quat_ln_dif(float c[4], float a[4], float b[4]);
61 extern LIB3DSAPI void lib3ds_quat_exp(float c[4]);
62 extern LIB3DSAPI void lib3ds_quat_slerp(float c[4], float a[4], float b[4], float t);
63 extern LIB3DSAPI void lib3ds_quat_squad(float c[4], float a[4], float p[4], float q[4], float b[4], float t);
64 extern LIB3DSAPI void lib3ds_quat_tangent(float c[4], float p[4], float q[4], float n[4]);
四元数数学函数
1 extern LIB3DSAPI void lib3ds_quat_identity(float c[4]);
2 extern LIB3DSAPI void lib3ds_quat_copy(float dest[4], float src[4]);
3 extern LIB3DSAPI void lib3ds_quat_axis_angle(float c[4], float axis[3], float angle);
4 extern LIB3DSAPI void lib3ds_quat_neg(float c[4]);
5 extern LIB3DSAPI void lib3ds_quat_cnj(float c[4]);
6 extern LIB3DSAPI void lib3ds_quat_mul(float c[4], float a[4], float b[4]);
7 extern LIB3DSAPI void lib3ds_quat_scalar(float c[4], float k);
8 extern LIB3DSAPI void lib3ds_quat_normalize(float c[4]);
9 extern LIB3DSAPI void lib3ds_quat_inv(float c[4]);
10 extern LIB3DSAPI float lib3ds_quat_dot(float a[4], float b[4]);
11 extern LIB3DSAPI float lib3ds_quat_norm(float c[4]);
12 extern LIB3DSAPI void lib3ds_quat_ln(float c[4]);
13 extern LIB3DSAPI void lib3ds_quat_ln_dif(float c[4], float a[4], float b[4]);
14 extern LIB3DSAPI void lib3ds_quat_exp(float c[4]);
15 extern LIB3DSAPI void lib3ds_quat_slerp(float c[4], float a[4], float b[4], float t);
16 extern LIB3DSAPI void lib3ds_quat_squad(float c[4], float a[4], float p[4], float q[4], float b[4], float t);
17 extern LIB3DSAPI void lib3ds_quat_tangent(float c[4], float p[4], float q[4], float n[4]);
矩阵数学函数
1 extern LIB3DSAPI void lib3ds_matrix_zero(float m[4][4]);
2 extern LIB3DSAPI void lib3ds_matrix_identity(float
3 extern LIB3DSAPI void lib3ds_matrix_copy(float dest[4][4], float src[4][4]);
4 extern LIB3DSAPI void lib3ds_matrix_neg(float m[4][4]);
5 extern LIB3DSAPI void lib3ds_matrix_transpose(float m[4][4]);
6 extern LIB3DSAPI void lib3ds_matrix_add(float m[4][4], float a[4][4], float b[4][4]);
7 extern LIB3DSAPI void lib3ds_matrix_sub(float m[4][4], float a[4][4], float b[4][4]);
8 extern LIB3DSAPI void lib3ds_matrix_mult(float m[4][4], float a[4][4], float b[4][4]);
9 extern LIB3DSAPI void lib3ds_matrix_scalar(float m[4][4], float k);
10 extern LIB3DSAPI float lib3ds_matrix_det(float m[4][4]);
11 extern LIB3DSAPI int lib3ds_matrix_inv(float m[4][4]);
12 extern LIB3DSAPI void lib3ds_matrix_translate(float m[4][4], float x, float y, float z);
13 extern LIB3DSAPI void lib3ds_matrix_scale(float m[4][4], float x, float y, float z);
14 extern LIB3DSAPI void lib3ds_matrix_rotate_quat(float m[4][4], float q[4]);
15 extern LIB3DSAPI void lib3ds_matrix_rotate(float m[4][4], float angle, float ax, float ay, float az);
16 extern LIB3DSAPI void lib3ds_matrix_camera(float m[4][4], float pos[3], float tgt[3], float roll);
&关于3D数学基础知识,大家可以参考下这本书---《3D数学基础:图形与游戏开发》。
(3) 3DS文件数据结构
Lib3dsFile
1 typedef struct Lib3dsFile {
name[12+1];
construction_plane[3];
ambient[3];
Lib3dsBack
Lib3dsAtmo
Lib3dsViewport
materials_
Lib3dsMaterial**
Lib3dsCamera**
Lib3dsLight**
Lib3dsMesh**
Lib3dsNode*
32 } Lib3dsF
34 extern LIB3DSAPI Lib3dsFile* lib3ds_file_open(const char *filename);
35 extern LIB3DSAPI int lib3ds_file_save(Lib3dsFile *file, const char *filename);
36 extern LIB3DSAPI Lib3dsFile* lib3ds_file_new();
37 extern LIB3DSAPI void lib3ds_file_free(Lib3dsFile *file);
通过lib3ds_file_open函数打开3ds文件后,Lib3dsFile结构包含了解析完成的所有3d数据。
阅读(...) 评论()
&&&[在线词典
&[划词翻译
]&&[流量统计

我要回帖

更多关于 es文件管理器3.2.3.1 的文章

 

随机推荐