x2100网易轻博客

网易轻博客  时间:2021-01-13  阅读:()
3DStudioFileFormat(3ds).
AutodeskLtd.
DocumentRevision0.
93-January19973D-StudioFileFormat(.
3ds)AutodeskLtd.
DocumentRevision0.
93-January1997RewrittenbyMartinvanVelsen(email:vvelsen@ronix.
ptf.
hro.
nl)andRobinFercoq(3ds-bin+mli)(email:robin@msrwww.
fc-net.
fr)BasedondocumentationbyJimPitts(email:jim@micronetics.
com)Sourceupdateprovidedby:AlbertSzilvasy(email:szilvasy@almos.
vein.
hu)AlotofthechunksarestillundocumentedifyouknowwhattheydopleaseemailmeMartinvanVelsen,RobinFeroqorJimmPitts.
AsIgetmoreinformationonthefileformat,Iwilldocumentitforeveryonetosee.
Iwillpostthisregurlarlytoalt.
3dandalt.
3d-studioandIcanbecontactedthereifmyemaildoesnotwork.
(Alsoseethe3d-studiomaterial.
mlidocumentationbyRobinFeroq.
)Disclaimer.
Thisdocumentdescribesthefileformatofthe3dsfilesgeneratedby3d-studiobyAutodesk.
Byusingtheinformationcontainedwithin,youagreenottoholdanyoftheauthorsliableif,fromitsuse,youf^Hmucksomethingup.
OKAutodeskhasatnotyetreleasedtheofficalspecificationsofthe3d-studioformats.
YouwillthereforreceiveNOsupportfromAutodeskoranycompanyrelatedtoAutodeskconcerningthenatureandcontentsofthe3d-studiobinary.
3dsand.
mliformats.
Awarningbeforehand.
Thisdocsdescribestheformatof3dsfilesproducedbyversion3.
0andhigherof3d-studio.
Youcanfindthisversioninformationatbyte29inthebinaryfile.
Thisdocumentcanbefoundontheregularnewsgroups:alt.
3dandalt.
3d-studioItcanalsobefoundat:"http://www.
mediatel.
lu"Contents1.
Introduction2.
Chunksanyone3.
3DEditorchunks4.
Keyframerchunks5.
CODE1.
IntroductionThe3dsfileformatismadeupofchunks.
Theydescribewhatinformationistofollowandwhatitismadeupof,it'sIDandthelocationofthenextblock.
Ifyoudon'tunderstandachunkyoucanquitesimplyskipit.
Thenextchunkpointerisrelativetothestartofthecurrentchunkandinbytes.
Thebinaryinformationinthe3dsfileiswritteninaspecialkindofway.
Namelythelestsignificantbytecomesfirstinanint.
Forexample:4A5C(2bytesinhex)wouldbe5Chighbyteand4Alowbyte.
Inalongitis:4A5C3B8Fwhere5C4Aisthelowwordand8F3Bisthehighword.
Andnowforthechunks.
Achunkisdefinedas:startendsizename012ChunkID254PointertonextchunkrelativetotheplacewhereChunkIDis,inotherwordsthelengthofthechunkChunkshaveahierarchyimposedonthemthatisidentifiedbytit'sID.
A3dsfilehasthePrimarychunkID4D4Dh.
Thisisalwaysthefirstchunkofthefile.
Withintheprimarychunkarethemainchunks.
togiveyouapreviewandareferencetothehierarchyofchunks,belowisadiagramtoshowthediffrentchunkID'sandtheirplaceinthefile.
Thechunksaregivenanamebecausebelowthediagramisalistwhichdefinesthenamestotheactualchunkid's.
Thismakesiteasiertoputitinsomesourcecode(howconvenientthatsomesamplecodeisincluded)MAIN3DS(0x4D4D)|+--EDIT3DS(0x3D3D)|||+--EDIT_MATERIAL(0xAFFF)|||||+--MAT_NAME01(0xA000)(SeemliDoc)|||+--EDIT_CONFIG1(0x0100)|+--EDIT_CONFIG2(0x3E3D)|+--EDIT_VIEW_P1(0x7012)|||||+--TOP(0x0001)||+--BOTTOM(0x0002)||+--LEFT(0x0003)||+--RIGHT(0x0004)||+--FRONT(0x0005)||+--BACK(0x0006)||+--USER(0x0007)||+--CAMERA(0xFFFF)||+--LIGHT(0x0009)||+--DISABLED(0x0010)||+--BOGUS(0x0011)|||+--EDIT_VIEW_P2(0x7011)|||||+--TOP(0x0001)||+--BOTTOM(0x0002)||+--LEFT(0x0003)||+--RIGHT(0x0004)||+--FRONT(0x0005)||+--BACK(0x0006)||+--USER(0x0007)||+--CAMERA(0xFFFF)||+--LIGHT(0x0009)||+--DISABLED(0x0010)||+--BOGUS(0x0011)|||+--EDIT_VIEW_P3(0x7020)|+--EDIT_VIEW1(0x7001)|+--EDIT_BACKGR(0x1200)|+--EDIT_AMBIENT(0x2100)|+--EDIT_OBJECT(0x4000)|||||+--OBJ_TRIMESH(0x4100)||||TRI_VERTEXL(0x4110)TRI_VERTEXOPTIONS(0x4111)TRI_MAPPINGCOORS(0x4140)TRI_MAPPINGSTANDARD(0x4170)TRI_FACEL1(0x4120)TRI_SMOOTH(0x4150)TRI_MATERIAL(0x4130)||||TRI_LOCAL(0x4160)TRI_VISIBLE(0x4165)|||||+--OBJ_LIGHT(0x4600)||||LIT_OFF(0x4620)LIT_SPOT(0x4610)LIT_UNKNWN01(0x465A)|||||+--OBJ_CAMERA(0x4700)||||CAM_UNKNWN01(0x4710)CAM_UNKNWN02(0x4720)|||||+--OBJ_UNKNWN01(0x4710)||+--OBJ_UNKNWN02(0x4720)|||+--EDIT_UNKNW01(0x1100)|+--EDIT_UNKNW02(0x1201)|+--EDIT_UNKNW03(0x1300)|+--EDIT_UNKNW04(0x1400)|+--EDIT_UNKNW05(0x1420)|+--EDIT_UNKNW06(0x1450)|+--EDIT_UNKNW07(0x1500)|+--EDIT_UNKNW08(0x2200)|+--EDIT_UNKNW09(0x2201)|+--EDIT_UNKNW10(0x2210)|+--EDIT_UNKNW11(0x2300)|+--EDIT_UNKNW12(0x2302)|+--EDIT_UNKNW13(0x2000)|+--EDIT_UNKNW14(0xAFFF)|+--KEYF3DS(0xB000)|+--KEYF_UNKNWN01(0xB00A)0x7001)(viewport,sameaseditor)+--KEYF_FRAMES(0xB008)+--KEYF_UNKNWN02(0xB009)+--KEYF_OBJDES(0xB002)|+--KEYF_OBJHIERARCH(0xB010)+--KEYF_OBJDUMMYNAME(0xB011)+--KEYF_OBJUNKNWN01(0xB013)+--KEYF_OBJUNKNWN02(0xB014)+--KEYF_OBJUNKNWN03(0xB015)+--KEYF_OBJPIVOT(0xB020)+--KEYF_OBJUNKNWN04(0xB021)+--KEYF_OBJUNKNWN05(0xB022)Achunktypewhichyoucanfindallthroughthefilearethecolorchunkswhicharecalled:COL_RGBCOL_TRUCOL_UNK2.
ChunksanyoneNowfortheactualnumbers,asyouwillseeIusedthedefine,becauseIrippedthatpartrightoutofmycode.
BecarefullhoweverbecausetherearealotofnewchunktypeswhichwerenotdocumentedintheoriginalpaperbyJimPitts.
Primarychunk#defineMAIN3DS0x4D4DMainChunks#defineEDIT3DS0x3D3D//thisisthestartoftheeditorconfig#defineKEYF3DS0xB000//thisisthestartofthekeyframerconfigsubdefinesofEDIT3DS#defineEDIT_MATERIAL0xAFFF#defineEDIT_CONFIG10x0100#defineEDIT_CONFIG20x3E3D#defineEDIT_VIEW_P10x7012#defineEDIT_VIEW_P20x7011#defineEDIT_VIEW_P30x7020#defineEDIT_VIEW10x7001#defineEDIT_BACKGR0x1200#defineEDIT_AMBIENT0x2100#defineEDIT_OBJECT0x4000#defineEDIT_UNKNW010x1100#defineEDIT_UNKNW020x1201#defineEDIT_UNKNW030x1300#defineEDIT_UNKNW040x1400#defineEDIT_UNKNW050x1420#defineEDIT_UNKNW060x1450#defineEDIT_UNKNW070x1500#defineEDIT_UNKNW080x2200#defineEDIT_UNKNW090x2201#defineEDIT_UNKNW100x2210#defineEDIT_UNKNW110x2300#defineEDIT_UNKNW120x2302#defineEDIT_UNKNW130x3000#defineEDIT_UNKNW140xAFFFsubdefinesofEDIT_OBJECT#defineOBJ_TRIMESH0x4100#defineOBJ_LIGHT0x4600#defineOBJ_CAMERA0x4700#defineOBJ_UNKNWN010x4010#defineOBJ_UNKNWN020x4012//----CouldbeshadowsubdefinesofOBJ_CAMERA#defineCAM_UNKNWN010x4710#defineCAM_UNKNWN020x4720subdefinesofOBJ_LIGHT#defineLIT_OFF0x4620#defineLIT_SPOT0x4610#defineLIT_UNKNWN010x465AsubdefinesofOBJ_TRIMESH#defineTRI_VERTEXL0x4110#defineTRI_FACEL20x4111#defineTRI_FACEL10x4120#defineTRI_SMOOTH0x4150#defineTRI_LOCAL0x4160#defineTRI_VISIBLE0x4165subdefsofKEYF3DS#defineKEYF_UNKNWN010xB009#defineKEYF_UNKNWN020xB00A#defineKEYF_FRAMES0xB008#defineKEYF_OBJDES0xB002thesedefinethedifferentcolorchunktypes#defineCOL_RGB0x0010#defineCOL_TRU0x0011#defineCOL_UNK0x0013definesforviewportchunks#defineTOP0x0001#defineBOTTOM0x0002#defineLEFT0x0003#defineRIGHT0x0004#defineFRONT0x0005#defineBACK0x0006#defineUSER0x0007#defineCAMERA0x0008//0xFFFFistheactualcodereadfromfile#defineLIGHT0x0009#defineDISABLED0x0010#defineBOGUS0x00113.
3DEditorChunksSofarforthequickstuffnowthemoredetailedinfo.
*MainchunksThemainchunk(theprimarychunkof0x4D4Dthatis)isactuallythecompletefile.
Sothesizeofthischunkisthesizeofthefileminusthemainchunkheader.
Therearetwomoremainchunks,the3d-editorchunkandthekeyframerchunk:id3D3DStartofEditordata(thisisalsotheplacewheretheobjectsare)B000StartofKeyframerdataDirectlyafteraMainchunkisanotherchunk.
Thiscouldbeanyothertypeofchunkallowablewithinitsmainchunksscope.
(seediagram)*Subchunksof3D3DidDescription0100Partofconfiguration1100unknown1200BackgroundColor1201unknown1300unknown1400unknown1420unknown1450unknown1500unknown2100AmbientColorBlock2200fog2201fog2210fog2300unknown3000unknown3D3EEditorconfigurationmainblock4000DefinitionofanObjectAFFFStartofmateriallist*SubchunksofAFFF-Startofmateriallist*A000-materialname-ThischunkcontainsthenameofthematerialwhichisanASCIIZstring(Morematerialchunksareexplainedinthedocabout3d-studio.
mlifiles.
Thechunktypesmentionedinthatdocareexactlythesameasinthe.
3dsfile)*Subchunksof3D3E-EditorconfigurationidDescription7001Startofviewportindicator7011Viewportdefinition(type2)7012Viewportdefinition(type1)7020Viewportdefinition(type3)The3D3Echunkisacuriousonebecauseitcontainsalotofredundantdata.
(orsoitseems)Themostimportantchunkis7020.
thischunkdescribesthe4viewportswichareactiveintheeditor.
IassumethatUareusingthe4normalviewportlayout,becauseIhavenottesteditwithotherconfigurations.
Theeditorconfidwillcontain5xchunk7020and5xchunk7011.
onlythefirst47020chunksareimportantforhowtheviewportslooklike.
Iguessthattheotherchunksonlygiveadditionalinfo,butIamnotsure.
Thethingsyouarelookingforinthesechunksisatbyte:6&7(asoffsetfromthefirst6byteschunkheaderandpointer)thesebytes(unsignedint)containtheinfoattowhatviewisused,withthefollowingid's:idDescription0001Top0002Bottom0003Left0004Right0005Front0006Back0007UserFFFFCamera0009Light0010Disabled*Subchunksof4000-ObjectdescriptionBlock-firstitemofSubchunk4000isanASCIIZstringoftheobjectsname.
ASCIIZmeansastringofcharaktersendedbyazero.
RememberanObjectcanbeaCameraaLightorameshidDescription4010unknown4012shadow4100TriangularPolygonList(Containsonlysubchunks)4600Light4700Camera(Mapping:Thesechunksareoptional.
Theystandjustafterthevertexlistwhentheobjectismapped.
)*Subchunksof4100-TriangularPolygonListidDescription4110VertexList4111VertexOptions4120FaceList4130FaceMaterial4140MappingCoordinates4150Facesmoothinggroup4160TranslationMatrix4165Objectvisible/invisble4170StandardMapping*4110-VertexListstartendsizetypename012unsignedintTotalverticesinobject254floatX-value694floatY-value10134floatZ-valuebytes2.
.
13arerepeatedtimesthetotalamountofverticesintheobject*4111-VertexOptionsFirst2bytes:numberofvertices.
Thenashortintforeachvertex:bit0-70bit8-10xbit11-120bit13vertexselectedinselection3bit14vertexselectedinselection2bit15vertexselectedinselection1bit8-10arejustlikerandom.
Fromasavetoanotherofthesamesceneitmaychange.
Otherbits(0-7and11-12)haveeffectsonvisibilityofvertex.
The4111chunkcanbedeletedwithoutmuchinfluence,3dswillstillloadthefileallright.
*4120-Faceliststartendsizetypename012unsignedinttotalpolygonsinobject(numpoly)232unsignedintnumberofvertexA452unsignedintnumberofvertexB672unsignedintnumberofvertexC892unsignedintfaceinfo(*)repeats'numpoly'timesforeachpolygon.
Thefirstthreeintsarethethreeverticesoftheface.
0standsforthefirstvertexdefinedinthevertexlist.
Theorderhasapurpose:togivethedirectionforthenormalofeachface.
Ifyouturnascrew(standardscrew)inthewaytheverticesindicateyouwillfindthenormal.
IfverticesgiveninorderareABC:C^|A-----BThismeansunscrewing=thenormalpointsoutofthescreen.
(*)thisnumberisisabinarynumberwhichexpandsto3values.
forexample0x0006wouldexpandto110binary.
Thevalueshouldbereadas110.
Thisvaluecanbefoundin3d-studioasciifilesasAB:1BC:1AC:0.
Whichprobablyindicatedtheorderofthevertices.
ForexampleAB:1wouldbeanormallinefromAtoB.
ButAB:0wouldmeanalinefromBtoA.
bit0ACvisibilitybit1BCvisibilitybit2ABvisibilitybit3Mapping(ifthereismappingforthisface)bit4-80(notused)bit9-10x(chaotic)bit11-120(notused)bit13faceselectedinselection3bit14faceselectedinselection2bit15faceselectedinselection1*4130-FaceMaterialChunkIftheobjectisalldefaultmaterialthereisno4130chunk.
Infact,thereisone4130chunkforeachmaterialpresentontheobject.
Each4130facematerialchunksbeginswithanasciizofamaterial,thenafterthenullcharacterisashortintthatgivesthenumberoffacesoftheobjectconcernedbythismaterial,thenthereisthelistitselfofthesefaces.
0000meansthefirstfaceofthe(4120)facelist.
ReadtheDoconMLIfilesformoreinfoonMappingandMaterials*4140Mappingcoordinates.
First2bytes:numberofvertices.
Then,foreachvertex2floatsthatgivethemappingcoordinates.
Thatis,ifapointisatthecenterofthemapitwillhave0.
50.
5asmappingcoordinates.
*4150-FaceSmoothingGroupnfaces*4bytesIfreadaslongint,thenthbitindicateifthefacebelongsornottothenthsmoothinggroup.
*4160LocalaxisLocalaxisinfo.
Thethreefirstblocksofthreefloatsarethedefinition(intheabsoluteaxis)ofthelocalaxisXYZoftheobject.
Andthelastblockofthreefloatsisthelocalcenteroftheobject.
*4170StandardmappingFirst2bytes:typeofmapping0=plannarorspecific(inthiscase,likemappingfromthelofter,theinformationofthischunkisirrelevant)1=cylindrical2=sphericalthencome21floatsthatdescribethemapping.
*4600-Lightstartendsizetypename034floatLightposX474floatLightposY8114floatLightposZafterthisstructurecheckformorechunks.
idDescription(fulldescriptionlater)0010RGBcolor001124bitcolor4610LightisaSpotlight4620Lightisoff/on(Boolean)*4610-SpotLightstartendsizetypename034floatTargetposX474floatTargetposX8114floatTargetposX12154floatHotspot16194floatFalloff*0010-RGBColorstartendsizetypename034floatRed474floatGreen8114floatBlue*0011-RGBColor-24bitstartendsizetypename011byteRed111byteGreen221byteBlue*4700-CameraDescribesthedetailsofthecamerainthescenestartendsizetypename034floatCameraposX474floatCameraposY8114floatCameraposZ12154floatCameratargetX16194floatCameratargetX20234floatCameratargetX24274floatCamerabank(rotationangle)28314floatCameralens4.
KeyframerChunks*KeyframerchunkidDescriptionB00Aunknown7001SeefirstdescriptionofthischunkB008FramesB009unknownB002Startobjectdescription*B008-Frameinformationsimplestructuredescribingframeinfostartendsizetypename034unsignedlongstartframe474unsignedlongendframe*B002-StartofObjectinfoSubhunksidDescriptionB010Name&HierarchyB011*NameDummyObjectB013unknownB014*unknownB015unknownB020ObjectspivotpointB021unknownB022unknown*B010-Name&Hierarchydescriptorstartendsizetypename0ASCIIZObjectname2unsignedintunknown2unsignedintunknown2unsignedintHierarchyofObjectTheobjecthierarchyisabitcomplexbutworkslikethis.
EachObjectinthesceneisgivenanumbertoidentifyitsorderinthetree.
Alsoeachobjectisordderedinthe3dsfileasitwouldappearinthetree.
Therootobjectisgiventhenumber-1(FFFF).
Asthefileisreadacounteroftheobjectnumberiskept.
Isthecounterincrementstheobjectsarechildrenofthepreviousobjects.
Butwhenthepatternisbrokenbyanumberwhatwillbelessthanthecurrentcounterthehierarchyreturnstothatlevel.
forexample.
objecthierarchynameA-1B0ThisexampleistakenC1from50pman.
3dsD2E1IwouldreallyreccomendF4havingalookatoneoftheG5exampleswiththehierarchyH1numberstohelpworkitout.
I7J8K0L10M11N0O13P14ABKNCEHLODFIMP||GJStillnotdonewiththischunkyet!
Iftheobjectnameis$$$DUMMYthenitisadummyobjectandthereforeyoushouldexpectafewextrachunks.
*B011-Dummyobjectsname.
Namesadummyobject.
ASCIIZstring.
*B020-PivotPointTheObjectspivotpoint.
Notquitesurewhatthefirstfivefloatsdoyet(ideas).
startendsizetypename034floatunknown474floatunknown8114floatunknown12164floatunknown16194floatunknown20234floatunknown24274floatPivotY28324floatPivotX5.
CODEThesourcecodeisnotUP-TO-DATEitiswrittenafterrev0.
9ofthisDocItwillbeupdatedwhenIcanfindthetime(ormaybeYOUcan)Ifthecodelookslikeithasbeenwrittenbyaatwelveyearold,thenlooksdodecieve,Ilikeverysimpleandeasytoreadsourcecode.
Allthatmattersisthatitdoesthetrick.
88-Thisisalibwhichreads3d-studiobinaryfilesfromversion3.
0andhigher(v1.
05)author:MartinvanVelsen(andsomegreathelpbyGertvanderSpoel)email:vvelsen@ronix.
ptf.
hro.
nlIfyouhappentocomeacrosssomevariableswithstrangenames,thenthatwillpossiblebeDutchnames,sorryforthat:){}8-Thisisalibwhichreads3d-studiobinaryfilesfromversion3.
0andhigher(v1.
05)author:MartinvanVelsen(andsomegreathelpbyGertvanderSpoel)email:vvelsen@ronix.
ptf.
hro.
nlIfyouhappentocomeacrosssomevariableswithstrangenames,thenthatwillpossiblebeDutchnames,sorryforthat:){}{}{}{}{}{}{{}}{{}}{}{}{}{}{}{{{}}}{{{}{}}}{{}}{{}}{{}}{{}}{{{}}}{{}{{}}}{{{}}}{{{}}}{}{{}{}{}}{{{}}}{{}}{{{}}}{{{}}}{{{}}}{{{}}}{{{}}}{}vararrBaiduCproConfig=newArray();arrBaiduCproConfig['uid']=43125;arrBaiduCproConfig['n']='williamlongcpr';arrBaiduCproConfig['tm']=20;arrBaiduCproConfig['cm']=76;arrBaiduCproConfig['um']=26;arrBaiduCproConfig['rad']=1;arrBaiduCproConfig['w']=728;arrBaiduCproConfig['h']=90;arrBaiduCproConfig['bd']='#24581B';arrBaiduCproConfig['bg']='#E1FDE8';arrBaiduCproConfig['tt']='#0000CC';arrBaiduCproConfig['ct']='#006600';arrBaiduCproConfig['url']='#666666';arrBaiduCproConfig['bdl']='#ffffff';arrBaiduCproConfig['wn']=4;arrBaiduCproConfig['hn']=1;arrBaiduCproConfig['ta']='right';arrBaiduCproConfig['tl']='bottom';arrBaiduCproConfig['bu']=0;

Dataideas:$1.5/月KVM-1GB/10G SSD/无限流量/休斯顿(德州)_主机域名

Dataideas是一家2019年成立的国外VPS主机商,提供基于KVM架构的VPS主机,数据中心在美国得克萨斯州休斯敦,主机分为三个系列:AMD Ryzen系列、Intel Xeon系列、大硬盘系列,同时每个系列又分为共享CPU和独立CPU系列,最低每月1.5美元起。不过需要注意,这家没有主页,你直接访问根域名是空白页的,还好他们的所有套餐支持月付,相对风险较低。下面以Intel Xeon系列共...

Budgetvm12核心 16G 500 GB SSD 或者 2 TB SATA 10GB  20 TB  99美金

Budgetvm(原EZ机房),2005年成立的美国老品牌机房,主打美国4个机房(洛杉矶、芝加哥、达拉斯、迈阿密)和日本东京机房的独立服务器和VPS业务,而且不限制流量,默认提供免费的1800G DDoS防御服务,支持IPv6和IPMI,多种免费中文操作系统可供选择,独立服务器主打大硬盘,多硬盘,大内存,用户可以在后台自行安装系统等管理操作!内存可定制升级到1536G,多块硬盘随时加,14TBSA...

特网云57元,香港云主机 1核 1G 10M宽带1G(防御)

特网云官網特网云服务器在硬件级别上实现云主机之间的完全隔离;采用高端服务器进行部署,同时采用集中的管理与监控,确保业务稳定可靠,搭建纯SSD架构的高性能企业级云服务器,同时采用Intel Haswell CPU、高频DDR4内存、高速Sas3 SSD闪存作为底层硬件配置,分钟级响应速度,特网云采用自带硬防节点,部分节点享免费20G防御,可实现300G防御峰值,有效防御DDoS、CC等恶意攻击,保障...

网易轻博客为你推荐
独立ip主机独立IP主机和CDN主机的详细区别?asp主机空间asp空间是什么域名购买在网上购买域名 会受骗吗网站空间商个人网站备案如何从空间商到备案网站空间价格1M网站空间是多少钱网站空间申请网站空间申请手机网站空间QQ空间技巧的手机网站啊?虚拟主机软件问虚拟主机用什么版本的软件比较好上海虚拟主机帮忙推荐一下哪里的虚拟主机比较好?上海虚拟主机上海虚拟主机哪家好啊?
plesk 赵容 韩国电信 鲜果阅读 服务器日志分析 12306抢票助手 gg广告 天互数据 100m独享 1美金 万网空间购买 优酷黄金会员账号共享 东莞idc 网站加速软件 独立主机 中国电信测速网站 lamp什么意思 学生服务器 网页加速 空间服务器 更多